/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction: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-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--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-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-lg:.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--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{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{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-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}: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}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::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{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-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]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:where(:root),:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}}:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=dark]:checked),[data-theme=dark]{color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root{--page-scroll-lock:initial;--page-overflow:var(--page-scroll-lock) hidden}:root:not(span){overflow:var(--page-overflow)}:root{--fx-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E")}:root,[data-theme]{background-color:var(--root-bg);color:var(--color-base-content)}:root{background-color:var(--page-scroll-bg,var(--root-bg))}:where(:root,[data-theme]){--root-bg:var(--color-base-100)}@property --radialprogress{syntax:"<percentage>";inherits:true;initial-value:0%}@property --aura-angle{syntax:"<angle>";inherits:false;initial-value:0deg}:root{scrollbar-color:currentColor #0000}@supports (color:color-mix(in lab, red, red)){:root{scrollbar-color:color-mix(in oklch, currentColor 35%, #0000) #0000}}:root{--page-has-backdrop:var(--page-scroll-lock) 1;--page-scroll-bg:var(--page-scroll-lock) var(--root-bg,#0000)}@supports (color:color-mix(in lab, red, red)){:root{--page-scroll-bg:var(--page-scroll-lock) color-mix(in srgb, var(--root-bg,#0000), oklch(0% 0 0) calc(var(--page-has-backdrop,0) * 40%))}}:root{background-image:var(--page-scroll-lock) linear-gradient(var(--root-bg,#0000), var(--root-bg,#0000));transition:var(--page-scroll-lock) background-color .3s ease-out;animation:var(--page-scroll-lock) set-page-has-scroll forwards;animation-timeline:var(--page-scroll-lock) scroll();--page-has-scroll:initial;scrollbar-gutter:var(--page-has-scroll) var(--page-scroll-lock) stable}@keyframes set-page-has-scroll{0%,to{--page-has-scroll: }}}@layer components;@layer utilities{@layer daisyui.l1.l2{.diff{webkit-user-select:none;-webkit-user-select:none;user-select:none;direction:ltr;grid-template-rows:1fr 1.8rem 1fr;grid-template-columns:auto 1fr;align-items:normal;width:100%;display:grid;position:relative;overflow:hidden;container-type:inline-size}.diff:focus-visible,.diff:has(.diff-item-1:focus-visible),.diff:focus-visible{outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px;outline-color:var(--color-base-content)}.diff:focus-visible .diff-resizer{min-width:95cqi;max-width:95cqi}.diff:has(.diff-item-1:focus-visible){outline-style:var(--tw-outline-style);outline-offset:1px;outline-width:2px}.diff:has(.diff-item-1:focus-visible) .diff-resizer{min-width:5cqi;max-width:5cqi}.diff:hover .diff-item-2:after{height:2.4rem}@supports (-webkit-overflow-scrolling:touch) and (overflow:-webkit-paged-x){.diff:focus .diff-resizer{min-width:5cqi;max-width:5cqi}.diff:has(.diff-item-1:focus) .diff-resizer{min-width:95cqi;max-width:95cqi}}.modal.modal-open{pointer-events:auto;visibility:visible;opacity:1;transition:visibility 0s allow-discrete, background-color .3s ease-out, opacity .1s ease-out;background-color:oklch(0% 0 0/.4)}.modal.modal-open>.modal-box{opacity:1;translate:0;scale:1}:root:has(.modal.modal-open){--page-scroll-lock: }@starting-style{.modal.modal-open{opacity:0}}.modal[open]{pointer-events:auto;visibility:visible;opacity:1;transition:visibility 0s allow-discrete, background-color .3s ease-out, opacity .1s ease-out;background-color:oklch(0% 0 0/.4)}.modal[open]>.modal-box{opacity:1;translate:0;scale:1}:root:has(.modal[open]){--page-scroll-lock: }@starting-style{.modal[open]{opacity:0}}.modal:popover-open{pointer-events:auto;visibility:visible;opacity:1;transition:visibility 0s allow-discrete, background-color .3s ease-out, opacity .1s ease-out;background-color:oklch(0% 0 0/.4)}.modal:popover-open>.modal-box{opacity:1;translate:0;scale:1}:root:has(.modal:popover-open){--page-scroll-lock: }@starting-style{.modal:popover-open{opacity:0}}.modal:target{pointer-events:auto;visibility:visible;opacity:1;transition:visibility 0s allow-discrete, background-color .3s ease-out, opacity .1s ease-out;background-color:oklch(0% 0 0/.4)}.modal:target>.modal-box{opacity:1;translate:0;scale:1}:root:has(.modal:target){--page-scroll-lock: }@starting-style{.modal:target{opacity:0}}.modal-toggle:checked+.modal{pointer-events:auto;visibility:visible;opacity:1;transition:visibility 0s allow-discrete, background-color .3s ease-out, opacity .1s ease-out;background-color:oklch(0% 0 0/.4)}.modal-toggle:checked+.modal>.modal-box{opacity:1;translate:0;scale:1}:root:has(.modal-toggle:checked+.modal){--page-scroll-lock: }@starting-style{.modal-toggle:checked+.modal{opacity:0}}.drawer-open>.drawer-side{overflow-y:auto}:where(.drawer-toggle:checked~.drawer-side){pointer-events:auto;visibility:visible;opacity:1;overflow-y:auto}:where(.drawer-toggle:checked~.drawer-side)>:not(.drawer-overlay){translate:0%}.drawer-end>.drawer-toggle~.drawer-side{grid-column-start:2;justify-items:end}.drawer-end>.drawer-toggle~.drawer-side>:not(.drawer-overlay){translate:100%}[dir=rtl] :is(.drawer-end>.drawer-toggle~.drawer-side>:not(.drawer-overlay)){translate:-100%}.drawer-end>.drawer-toggle:checked~.drawer-side>:not(.drawer-overlay){translate:0%}.drawer-open>.drawer-toggle{display:none}.drawer-open>.drawer-toggle~.drawer-side{pointer-events:auto;visibility:visible;overscroll-behavior:auto;opacity:1;width:auto;display:block;position:sticky}.drawer-open>.drawer-toggle~.drawer-side>.drawer-overlay{cursor:default;background-color:#0000}.drawer-open>.drawer-toggle:checked~.drawer-side{pointer-events:auto;visibility:visible}.tabs-lift>.tab{--tab-border:0 0 var(--border) 0;--tab-radius-ss:var(--tab-radius-limit);--tab-radius-se:var(--tab-radius-limit);--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border) var(--tab-p) 0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color) #0000;--tab-corner-width:calc(100% + var(--tab-radius-limit) * 2);--tab-corner-height:var(--tab-radius-limit);--tab-corner-position:top left, top right;border-width:var(--tab-border);padding:var(--tab-paddings);border-color:var(--tab-border-colors);border-start-start-radius:var(--tab-radius-ss);border-start-end-radius:var(--tab-radius-se);border-end-end-radius:var(--tab-radius-ee);border-end-start-radius:var(--tab-radius-es)}.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked)){--tab-border:var(--border) var(--border) 0 var(--border);--tab-border-colors:var(--tab-border-color) var(--tab-border-color) #0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border)) var(--border) calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--radius-start:radial-gradient(circle at top left, var(--tab-radius-grad));--radius-end:radial-gradient(circle at top right, var(--tab-radius-grad));background-color:var(--tab-bg)}:is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):before{z-index:1;content:"";width:var(--tab-corner-width);height:var(--tab-corner-height);background-position:var(--tab-corner-position);background-image:var(--radius-start), var(--radius-end);background-size:var(--tab-radius-limit) var(--tab-radius-limit);inset:var(--tab-inset);background-repeat:no-repeat;display:block;position:absolute}:is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):first-child:before{--radius-start:none}[dir=rtl] :is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):first-child:before{transform:rotateY(180deg)}:is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):last-child:before{--radius-end:none}[dir=rtl] :is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):last-child:before{transform:rotateY(180deg)}.tabs-lift:has(>.tab-content)>.tab:first-child:not(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){--tab-border-colors:var(--tab-border-color) var(--tab-border-color) #0000 var(--tab-border-color)}.tabs-top>.tab{--tab-order:0;--tab-border:0 0 var(--border) 0;--tab-radius-ss:var(--tab-radius-limit);--tab-radius-se:var(--tab-radius-limit);--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border) var(--tab-p) 0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color) #0000;--tab-corner-width:calc(100% + var(--tab-radius-limit) * 2);--tab-corner-height:var(--tab-radius-limit);--tab-corner-position:top left, top right}.tabs-top>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-top>.tab:is(input:checked),.tabs-top>.tab:is(label:has(:checked)){--tab-border:var(--border) var(--border) 0 var(--border);--tab-border-colors:var(--tab-border-color) var(--tab-border-color) #0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border)) var(--border) calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--radius-start:radial-gradient(circle at top left, var(--tab-radius-grad));--radius-end:radial-gradient(circle at top right, var(--tab-radius-grad))}.tabs-top:has(>.tab-content)>.tab:first-child:not(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){--tab-border-colors:var(--tab-border-color) var(--tab-border-color) #0000 var(--tab-border-color)}.tabs-bottom>.tab{--tab-order:1;--tab-border:var(--border) 0 0 0;--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:var(--tab-radius-limit);--tab-radius-ee:var(--tab-radius-limit);--tab-border-colors:var(--tab-border-color) #0000 #0000 #0000;--tab-paddings:0 var(--tab-p) var(--border) var(--tab-p);--tab-corner-width:calc(100% + var(--tab-radius-limit) * 2);--tab-corner-height:var(--tab-radius-limit);--tab-corner-position:top left, top right}.tabs-bottom>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-bottom>.tab:is(input:checked),.tabs-bottom>.tab:is(label:has(:checked)){--tab-border:0 var(--border) var(--border) var(--border);--tab-border-colors:#0000 var(--tab-border-color) var(--tab-border-color) var(--tab-border-color);--tab-paddings:var(--border) calc(var(--tab-p) - var(--border)) 0 calc(var(--tab-p) - var(--border));--tab-inset:0 auto auto auto;--radius-start:radial-gradient(circle at bottom left, var(--tab-radius-grad));--radius-end:radial-gradient(circle at bottom right, var(--tab-radius-grad))}.tabs-bottom:has(>.tab-content)>.tab:first-child:not(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){--tab-border-colors:#0000 var(--tab-border-color) var(--tab-border-color) var(--tab-border-color)}.tabs-box>.tab{border-radius:var(--radius-field);border-style:none}.tabs-box>.tab:focus-visible,.tabs-box>.tab:is(label:has(:checked:focus-visible)){outline-offset:2px}.tabs-box>.tab:focus-visible{z-index:1}.tabs-xs>.tab{--tab-p:.375rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.75rem}.tabs-sm>.tab{--tab-p:.5rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.875rem}.tabs-md>.tab{--tab-p:.75rem;--tab-radius-min:calc(.75rem - var(--border));font-size:.875rem}.tabs-lg>.tab{--tab-p:1rem;--tab-radius-min:calc(1.5rem - var(--border));font-size:1.125rem}.tabs-xl>.tab{--tab-p:1.25rem;--tab-radius-min:calc(2rem - var(--border));font-size:1.125rem}:is(.tooltip,.tooltip-top)>.tooltip-content,:is(.tooltip,.tooltip-top)[data-tip]:before{transform:translateX(var(--tt-trans,-50%)) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off) 50%}:is(.tooltip,.tooltip-top):after{transform:translateX(var(--tt-trans,-50%)) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail) 50%}.list .list-row:has(.list-col-grow:first-child){--list-grid-cols:1fr}.list .list-row:has(.list-col-grow:nth-child(2)){--list-grid-cols:minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(3)){--list-grid-cols:minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(4)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(5)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(6)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row>*{grid-row-start:1}.dropdown-start :where(.dropdown-content){inset-inline-end:auto;translate:0}[dir=rtl] :is(.dropdown-start :where(.dropdown-content)){translate:0}.dropdown-center :where(.dropdown-content){inset-inline-end:50%;translate:50%}[dir=rtl] :is(.dropdown-center :where(.dropdown-content)){translate:-50%}.dropdown-left .dropdown-content{transform-origin:100%;inset-inline-end:100%;top:0;bottom:auto}.dropdown-right .dropdown-content{transform-origin:0;inset-inline-start:100%;top:0;bottom:auto}.dropdown-bottom .dropdown-content{transform-origin:top;top:100%;bottom:auto}.dropdown-top .dropdown-content{transform-origin:bottom;top:auto;bottom:100%}.steps-horizontal .step{text-align:center;grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid}.steps-horizontal .step:before{width:100%;height:.5rem;margin-inline-start:-100%;translate:0}[dir=rtl] :is(.steps-horizontal .step):before{translate:0}.steps-vertical .step{grid-template-rows:auto;grid-template-columns:40px 1fr;justify-items:start;gap:.5rem;min-height:4rem;display:grid}.steps-vertical .step:before{width:.5rem;height:100%;margin-inline-start:50%;translate:-50% -50%}[dir=rtl] :is(.steps-vertical .step):before{translate:50% -50%}.steps .step-neutral+.step-neutral:before,.steps .step-neutral:after,.steps .step-neutral>.step-icon{--step-bg:var(--color-neutral);--step-fg:var(--color-neutral-content)}.steps .step-primary+.step-primary:before,.steps .step-primary:after,.steps .step-primary>.step-icon{--step-bg:var(--color-primary);--step-fg:var(--color-primary-content)}.steps .step-secondary+.step-secondary:before,.steps .step-secondary:after,.steps .step-secondary>.step-icon{--step-bg:var(--color-secondary);--step-fg:var(--color-secondary-content)}.steps .step-accent+.step-accent:before,.steps .step-accent:after,.steps .step-accent>.step-icon{--step-bg:var(--color-accent);--step-fg:var(--color-accent-content)}.steps .step-info+.step-info:before,.steps .step-info:after,.steps .step-info>.step-icon{--step-bg:var(--color-info);--step-fg:var(--color-info-content)}.steps .step-success+.step-success:before,.steps .step-success:after,.steps .step-success>.step-icon{--step-bg:var(--color-success);--step-fg:var(--color-success-content)}.steps .step-warning+.step-warning:before,.steps .step-warning:after,.steps .step-warning>.step-icon{--step-bg:var(--color-warning);--step-fg:var(--color-warning-content)}.steps .step-error+.step-error:before,.steps .step-error:after,.steps .step-error>.step-icon{--step-bg:var(--color-error);--step-fg:var(--color-error-content)}.tabs-border>.tab{--tab-border-color:#0000 #0000 var(--tab-border-color) #0000;border-radius:var(--radius-field);position:relative}.tabs-border>.tab:before{content:"";background-color:var(--tab-border-color);width:calc(100% - var(--tab-p) * 2);border-radius:var(--radius-field);height:3px;bottom:0;left:var(--tab-p);transition:background-color .2s;position:absolute}:is(.tabs-border>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-border>.tab:is(input:checked),.tabs-border>.tab:is(label:has(:checked))):before{--tab-border-color:currentColor;border-top:3px solid}.swap{cursor:pointer;vertical-align:middle;webkit-user-select:none;-webkit-user-select:none;user-select:none;place-content:center;display:inline-grid;position:relative}.swap input{appearance:none;border:none}.swap>*{grid-row-start:1;grid-column-start:1}@media (prefers-reduced-motion:no-preference){.swap>*{transition-property:transform,rotate,opacity;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}}.swap .swap-on,.swap .swap-indeterminate,.swap input:indeterminate~.swap-on,.swap input:is(:checked,:indeterminate)~.swap-off{opacity:0}.swap input:checked~.swap-on,.swap input:indeterminate~.swap-indeterminate{opacity:1;backface-visibility:visible}.checkbox:disabled,.radio:disabled{cursor:not-allowed;opacity:.2}.image-full>.card-body{color:var(--color-neutral-content);position:relative}.card-xs .card-body{--card-p:.5rem;--card-fs:.6875rem}.card-sm .card-body{--card-p:1rem;--card-fs:.75rem}.card-md .card-body{--card-p:1.5rem;--card-fs:.875rem}.card-lg .card-body{--card-p:2rem;--card-fs:1rem}.card-xl .card-body{--card-p:2.5rem;--card-fs:1.125rem}.dropdown-end{--anchor-h:span-left}.dropdown-end :where(.dropdown-content){inset-inline-end:0;translate:0}[dir=rtl] :is(.dropdown-end :where(.dropdown-content)){translate:0}.dropdown-end.dropdown-left{--anchor-h:left;--anchor-v:span-top}.dropdown-end.dropdown-left .dropdown-content{top:auto;bottom:0}.dropdown-end.dropdown-right{--anchor-h:right;--anchor-v:span-top}.dropdown-end.dropdown-right .dropdown-content{top:auto;bottom:0}:is(.stack,.stack.stack-bottom)>*{grid-area:3/3/6/4}:is(.stack,.stack.stack-bottom)>:nth-child(2){grid-area:2/2/5/5}:is(.stack,.stack.stack-bottom)>:first-child{grid-area:1/1/4/6}.stack.stack-top>*{grid-area:1/3/4/4}.stack.stack-top>:nth-child(2){grid-area:2/2/5/5}.stack.stack-top>:first-child{grid-area:3/1/6/6}.stack.stack-start>*{grid-area:3/1/4/4}.stack.stack-start>:nth-child(2){grid-area:2/2/5/5}.stack.stack-start>:first-child{grid-area:1/3/6/6}.stack.stack-end>*{grid-area:3/3/4/6}.stack.stack-end>:nth-child(2){grid-area:2/2/5/5}.stack.stack-end>:first-child{grid-area:1/1/6/4}.modal-top>.modal-box{--modal-tl:0;--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 -100%;scale:1}.modal-middle>.modal-box{--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:91.6667%;max-width:32rem;height:auto;max-height:calc(100vh - 5em);translate:0 2%;scale:.98}.modal-start>.modal-box{--modal-tl:0;--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:var(--radius-box);width:auto;max-width:none;height:100vh;max-height:none;translate:-100%;scale:1}[dir=rtl] :is(.modal-start>.modal-box){--modal-tl:var(--radius-box);--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:0;translate:100%}.modal-end>.modal-box{--modal-tl:var(--radius-box);--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:0;width:auto;max-width:none;height:100vh;max-height:none;translate:100%;scale:1}[dir=rtl] :is(.modal-end>.modal-box){--modal-tl:0;--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:var(--radius-box);translate:-100%}.drawer-toggle:focus-visible~.drawer-content label.drawer-button{outline-offset:2px;outline:2px solid}.drawer-end>.drawer-toggle~.drawer-content{grid-column-start:1}.divider-horizontal.divider{flex-direction:column;width:1rem;height:auto}.divider-horizontal.divider:before,.divider-horizontal.divider:after{width:.125rem;height:100%}.divider-vertical.divider{flex-direction:row;width:auto;height:1rem}.divider-vertical.divider:before,.divider-vertical.divider:after{width:100%;height:.125rem}.stats-horizontal .stat:not(:last-child){border-inline-end:var(--border) dashed currentColor}@supports (color:color-mix(in lab, red, red)){.stats-horizontal .stat:not(:last-child){border-inline-end:var(--border) dashed color-mix(in oklab, currentColor 10%, #0000)}}.stats-horizontal .stat:not(:last-child){border-block-end:none}.stats-vertical .stat:not(:last-child){border-inline-end:none;border-block-end:var(--border) dashed currentColor}@supports (color:color-mix(in lab, red, red)){.stats-vertical .stat:not(:last-child){border-block-end:var(--border) dashed color-mix(in oklab, currentColor 10%, #0000)}}.modal-bottom{place-items:end}.modal-bottom>.modal-box{--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:0;width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 100%;scale:1}.btn-circle{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}.btn-square{width:var(--size);height:var(--size);padding-inline:0}.loading-lg{width:calc(var(--size-selector,.25rem) * 7)}.loading-sm{width:calc(var(--size-selector,.25rem) * 5)}.loading-xs{width:calc(var(--size-selector,.25rem) * 4)}.badge-ghost{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}.badge-soft{color:var(--badge-color,var(--color-base-content));background-color:var(--badge-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.badge-soft{background-color:color-mix(in oklab, var(--badge-color,var(--color-base-content)) 8%, var(--color-base-100))}}.badge-soft{border-color:var(--badge-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.badge-soft{border-color:color-mix(in oklab, var(--badge-color,var(--color-base-content)) 10%, var(--color-base-100))}}.badge-soft{background-image:none}.badge-outline{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}:is(.tabs-lift :checked,.tabs-lift label:has(:checked),.tabs-lift :is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content:first-child,:is(.tabs-lift :checked,.tabs-lift label:has(:checked),.tabs-lift :is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content:nth-child(n+3),:is(.tabs-top :checked,.tabs-top label:has(:checked),.tabs-top :is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content:first-child,:is(.tabs-top :checked,.tabs-top label:has(:checked),.tabs-top :is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}:is(.tabs-bottom>:checked,.tabs-bottom>:is(label:has(:checked)),.tabs-bottom>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content:not(:nth-child(2)){--tabcontent-radius-es:var(--radius-box)}.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]){background-color:var(--tab-bg,var(--color-base-100));box-shadow:0 1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px 1px -1px var(--color-neutral), 0 1px 6px -4px var(--color-neutral)}@supports (color:color-mix(in lab, red, red)){.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]){box-shadow:0 1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px 1px -1px color-mix(in oklab, var(--color-neutral) calc(var(--depth) * 50%), #0000), 0 1px 6px -4px color-mix(in oklab, var(--color-neutral) calc(var(--depth) * 100%), #0000)}}@media (forced-colors:active){.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]){border:1px solid}}.loading-spinner{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='8s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='8s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")}@media (prefers-reduced-motion:no-preference){.loading-spinner{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")}}.checkbox-sm{--size:calc(var(--size-selector,.25rem) * 5);padding:.1875rem}.checkbox-xs{--size:calc(var(--size-selector,.25rem) * 4);padding:.125rem}.radio-sm{padding:.1875rem}.radio-sm[type=radio]{--size:calc(var(--size-selector,.25rem) * 5)}.menu-xs .menu-title{padding-block:.25rem;padding-inline:.5rem}.menu-sm .menu-title,.menu-md .menu-title{padding-block:.5rem;padding-inline:.75rem}.menu-lg .menu-title,.menu-xl .menu-title{padding-block:.75rem;padding-inline:1.5rem}.table-sm :not(thead,tfoot) tr{font-size:.75rem}.table-sm :where(th,td){padding-block:.5rem;padding-inline:.75rem}.file-input-sm{--size:calc(var(--size-field,.25rem) * 8);font-size:.75rem;line-height:1.5rem}.file-input-sm::file-selector-button{font-size:.75rem}.badge-lg{--size:calc(var(--size-selector,.25rem) * 7);font-size:1rem}.badge-md{--size:calc(var(--size-selector,.25rem) * 6);font-size:.875rem}.badge-sm{--size:calc(var(--size-selector,.25rem) * 5);font-size:.75rem}.badge-xs{--size:calc(var(--size-selector,.25rem) * 4);font-size:.625rem}.alert-error{color:var(--color-error-content);--alert-border-color:var(--color-error);--alert-color:var(--color-error)}.alert-info{color:var(--color-info-content);--alert-border-color:var(--color-info);--alert-color:var(--color-info)}.alert-success{color:var(--color-success-content);--alert-border-color:var(--color-success);--alert-color:var(--color-success)}.alert-warning{color:var(--color-warning-content);--alert-border-color:var(--color-warning);--alert-color:var(--color-warning)}.checkbox-error{color:var(--color-error-content);--input-color:var(--color-error)}.checkbox-primary{color:var(--color-primary-content);--input-color:var(--color-primary)}@media (hover:hover){.link-primary:hover{color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.link-primary:hover{color:color-mix(in oklab, var(--color-primary) 80%, #000)}}}.link-primary{color:var(--color-primary)}.progress-success{color:var(--color-success)}.progress-warning{color:var(--color-warning)}.link-hover{text-decoration-line:none}@media (hover:hover){.link-hover:hover{text-decoration-line:underline}}.input-sm{--in-size-mul:8;--font-size-min:.75rem;--spin-my:-2}.floating-label:has(.input-sm){--top-mul:4;--font-size:.75rem}.input-xs{--in-size-mul:6;--font-size-min:.6875rem;--spin-my:-1}.floating-label:has(.input-xs){--top-mul:3;--font-size:.6875rem}.select-sm{--sl-size-mul:8;--font-size-min:.75rem;--option-px:2.5}.floating-label:has(.select-sm){--top-mul:4;--font-size:.75rem}.select-xs{--sl-size-mul:6;--font-size-min:.6875rem;--option-px:2}.floating-label:has(.select-xs){--top-mul:3;--font-size:.6875rem}.btn-neutral{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content);--btn-soft-bg:var(--color-neutral-content) 80%;--btn-rest-fg:initial}.btn-error{--btn-color:var(--color-error);--btn-fg:var(--color-error-content);--btn-soft-bg:initial}.btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);--btn-soft-bg:initial}.btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem) * 8)}.btn-success{--btn-color:var(--color-success);--btn-fg:var(--color-success-content);--btn-soft-bg:initial}.btn-warning{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content);--btn-soft-bg:initial}.btn-xs{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem) * 6)}.textarea-sm{--font-size-min:.75rem}.floating-label:has(.textarea-sm){--top-mul:4;--font-size:.75rem}.badge-error{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}.badge-info{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}.badge-primary{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}.badge-success{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}.badge-warning{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.radio-error{--input-color:var(--color-error)}.radio-success{--input-color:var(--color-success)}@media (prefers-reduced-motion:no-preference){.collapse:not(td,tr,colgroup)[open].collapse-arrow>.collapse-title:after,.collapse:not(td,tr,colgroup).collapse-open.collapse-arrow>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}.collapse:not(td,tr,colgroup).collapse-open.collapse-plus>.collapse-title:after{--tw-content:"−";content:var(--tw-content)}:is(.collapse:not(td,tr,colgroup)[tabindex].collapse-arrow:focus:not(.collapse-close),.collapse:not(td,tr,colgroup).collapse-arrow[tabindex]:focus-within:not(.collapse-close))>.collapse-title:after,.collapse:not(td,tr,colgroup).collapse-arrow:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{transform:translateY(-50%)rotate(225deg)}.collapse:not(td,tr,colgroup)[open].collapse-plus>.collapse-title:after,.collapse:not(td,tr,colgroup)[tabindex].collapse-plus:focus:not(.collapse-close)>.collapse-title:after,.collapse:not(td,tr,colgroup).collapse-plus:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{--tw-content:"−";content:var(--tw-content)}}@layer daisyui.l1.l2.l3{.modal{pointer-events:none;visibility:hidden;width:100%;max-width:none;height:100%;max-height:none;color:inherit;transition:overlay .3s allow-discrete, visibility .3s allow-discrete, background-color .3s ease-out, opacity .1s ease-out;overscroll-behavior:contain;z-index:999;scrollbar-gutter:auto;background-color:#0000;place-items:center;margin:0;padding:0;display:grid;position:fixed;inset:0;overflow:clip}.modal::backdrop{display:none}.modal[popover]{color:inherit;background:0 0;border:0;max-width:none;max-height:none;margin:0;padding:0;inset:0}.modal[popover]::backdrop{background-color:oklch(0% 0 0/.4);transition:background-color .3s ease-out}:where(.drawer-side){overflow:hidden}.drawer-side{pointer-events:none;visibility:hidden;z-index:10;overscroll-behavior:contain;opacity:0;width:100%;transition:opacity .2s ease-out .1s allow-discrete, visibility .3s ease-out .1s allow-discrete;inset-inline-start:0;background-color:#0000;grid-template-rows:repeat(1,minmax(0,1fr));grid-template-columns:repeat(1,minmax(0,1fr));grid-row-start:1;grid-column-start:1;place-items:flex-start start;height:100dvh;display:grid;position:fixed;top:0}.drawer-side>*{grid-row-start:1;grid-column-start:1}.drawer-side>:not(.drawer-overlay){will-change:transform;transition:translate .3s ease-out,width .2s ease-out;translate:-100%}[dir=rtl] :is(.drawer-side>:not(.drawer-overlay)){translate:100%}@supports (color:color-mix(in lab, red, red)){:where(.drawer-toggle:checked~.drawer-side){scrollbar-color:color-mix(in oklch, currentColor 35%, #0000) oklch(0 0 0 / calc(var(--page-has-backdrop,0) * .4))}}.drawer-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed}:where(.drawer-toggle:checked~.drawer-side){scrollbar-color:currentColor oklch(0 0 0 / calc(var(--page-has-backdrop,0) * .4))}@supports (color:color-mix(in lab, red, red)){:where(.drawer-toggle:checked~.drawer-side){scrollbar-color:color-mix(in oklch, currentColor 35%, #0000) oklch(0 0 0 / calc(var(--page-has-backdrop,0) * .4))}}:where(.drawer-toggle:checked~.drawer-side)>:not(.drawer-overlay){will-change:auto;transform:none}:where(:root:has(.drawer-toggle:checked)){--page-scroll-lock: }.drawer-open>.drawer-toggle:checked~.drawer-side{scrollbar-color:revert-layer}:root:has(.drawer-open>.drawer-toggle:checked){--page-scroll-lock:revert-layer}@media (hover:hover){.tab:is(.tabs>.tab):hover{color:var(--color-base-content)}}@supports (color:color-mix(in lab, red, red)){.tab:is(.tabs>.tab):not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:color-mix(in oklab, var(--color-base-content) 50%, transparent)}}@media (forced-colors:active){.tab:is(.tabs>.tab):focus{outline-offset:2px;outline:2px solid #0000}}@media (hover:hover){.tab:is(.tabs>.tab):hover{color:var(--color-base-content)}}@supports (color:color-mix(in lab, red, red)){.tab:is(.tabs>.tab):not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:color-mix(in oklab, var(--color-base-content) 50%, transparent)}}@media (forced-colors:active){.tab:is(.tabs>.tab):focus{outline-offset:2px;outline:2px solid #0000}}.tooltip{--tt-bg:var(--color-neutral);--tt-off:calc(100% + .5rem);--tt-tail:calc(100% + 1px + .25rem);--tt-tail-off:.5rem;display:inline-block;position:relative}.tooltip>.tooltip-content,.tooltip[data-tip]:before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;position:absolute}.tooltip:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;-webkit-mask-position:-1px 0;mask-position:-1px 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--mask-tooltip);-webkit-mask-image:var(--mask-tooltip);mask-image:var(--mask-tooltip);display:block;position:absolute}@media (prefers-reduced-motion:no-preference){.tooltip>.tooltip-content,.tooltip[data-tip]:before,.tooltip:after{transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms}:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content{opacity:1;--tt-pos:0rem}@media (prefers-reduced-motion:no-preference){:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before{opacity:1;--tt-pos:0rem}@media (prefers-reduced-motion:no-preference){:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{opacity:1;--tt-pos:0rem}@media (prefers-reduced-motion:no-preference){:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}.tabs{--tabs-height:auto;--tabs-direction:row;--tab-height:calc(var(--size-field,.25rem) * 10);height:var(--tabs-height);flex-wrap:wrap;flex-direction:var(--tabs-direction);display:flex}.tab:is(.tabs>.tab){cursor:pointer;appearance:none;text-align:center;webkit-user-select:none;-webkit-user-select:none;user-select:none;flex-wrap:wrap;justify-content:center;align-items:center;display:inline-flex;position:relative}@media (hover:hover){.tab:is(.tabs>.tab):hover{color:var(--color-base-content)}}.tab:is(.tabs>.tab){--tab-p:.75rem;--tab-bg:var(--color-base-100);--tab-border-color:var(--color-base-300);--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:0;--tab-radius-ee:0;--tab-order:0;--tab-radius-min:calc(.75rem - var(--border));--tab-radius-limit:min(var(--radius-field), var(--tab-radius-min));--tab-radius-grad:#0000 calc(69% - var(--border)), var(--tab-border-color) calc(69% - var(--border) + .25px), var(--tab-border-color) 69%, var(--tab-bg) calc(69% + .25px);order:var(--tab-order);height:var(--tab-height);padding-inline:var(--tab-p);border-color:#0000;font-size:.875rem}.tab:is(.tabs>.tab):is(input[type=radio]){min-width:fit-content}.tab:is(.tabs>.tab):is(input[type=radio]):after{--tw-content:attr(aria-label);content:var(--tw-content)}.tab:is(.tabs>.tab):is(label){position:relative}.tab:is(.tabs>.tab):is(label) input{cursor:pointer;appearance:none;opacity:0;position:absolute;inset:0}:is(.tab:is(.tabs>.tab):checked,.tab:is(.tabs>.tab):is(label:has(:checked)),.tab:is(.tabs>.tab):is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content{display:block}.tab:is(.tabs>.tab):not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.tab:is(.tabs>.tab):not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:color-mix(in oklab, var(--color-base-content) 50%, transparent)}}.tab:is(.tabs>.tab):not(input):empty{cursor:default;flex-grow:1}.tab:is(.tabs>.tab):focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.tab:is(.tabs>.tab):focus{outline-offset:2px;outline:2px solid #0000}}.tab:is(.tabs>.tab):focus-visible,.tab:is(.tabs>.tab):is(label:has(:checked:focus-visible)){outline-offset:-5px;outline:2px solid}.tab:is(.tabs>.tab)[disabled]{pointer-events:none;opacity:.4}.menu{--menu-active-fg:var(--color-neutral-content);--menu-active-bg:var(--color-neutral);flex-flow:column wrap;width:fit-content;padding:.5rem;font-size:.875rem;display:flex}.menu :where(li ul,li menu){white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem;position:relative}.menu :where(li ul,li menu):before{background-color:var(--color-base-content);opacity:.1;width:var(--border);content:"";inset-inline-start:0;position:absolute;top:.75rem;bottom:.75rem}.menu :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}.menu :where(li:not(.menu-title)>:not(ul,menu,details,.menu-title,.btn)),.menu :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);text-align:start;-webkit-user-select:none;user-select:none;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:grid}.menu :where(li>details>summary){--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li>details>summary){outline-offset:2px;outline:2px solid #0000}}.menu :where(li>details>summary)::-webkit-details-marker{display:none}:is(.menu :where(li>details>summary),.menu :where(li>.menu-dropdown-toggle)):after{content:"";transform-origin:50%;pointer-events:none;justify-self:flex-end;width:.375rem;height:.375rem;transition-property:rotate,translate;transition-duration:.2s;display:block;translate:0 -1px;rotate:-135deg;box-shadow:inset 2px 2px}.menu details{interpolate-size:allow-keywords;overflow:hidden}.menu details::details-content{block-size:0}@media (prefers-reduced-motion:no-preference){.menu details::details-content{transition-behavior:allow-discrete;transition-property:block-size,content-visibility;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}}.menu details[open]::details-content{block-size:auto}.menu :where(li>details[open]>summary):after,.menu :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{translate:0 1px;rotate:45deg}.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus{background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus{color:var(--color-base-content);--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus{outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{color:var(--color-base-content);--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,menu,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){box-shadow:inset 0 1px oklch(0% 0 0/.01),inset 0 -1px oklch(100% 0 0/.01)}.menu :where(li:empty){background-color:var(--color-base-content);opacity:.1;height:1px;margin:.5rem 1rem}.menu :where(li){flex-flow:column wrap;flex-shrink:0;align-items:stretch;display:flex;position:relative}.menu :where(li) .badge{justify-self:flex-end}.menu :where(li)>:not(ul,menu,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,menu,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li)>:not(ul,menu,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,menu,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{outline-offset:2px;outline:2px solid #0000}}.menu :where(li)>:not(ul,menu,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,menu,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise)}:is(.menu :where(li)>:not(ul,menu,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,menu,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):not(:is(.menu :where(li)>:not(ul,menu,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,menu,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):active){box-shadow:0 2px calc(var(--depth) * 3px) -2px var(--menu-active-bg)}.menu :where(li).menu-disabled,.menu :where(li) [disabled]{pointer-events:none;color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.menu :where(li).menu-disabled,.menu :where(li) [disabled]{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.dropdown{position-area:var(--anchor-v,bottom) var(--anchor-h,span-right);display:inline-block;position:relative}.dropdown>:not(:has(~[class*=dropdown-content])):focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.dropdown>:not(:has(~[class*=dropdown-content])):focus{outline-offset:2px;outline:2px solid #0000}}.dropdown[popover]{z-index:999}@media (prefers-reduced-motion:no-preference){.dropdown[popover]{transition-behavior:allow-discrete;transition-property:opacity,scale,display,overlay;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}}@starting-style{.dropdown[popover]{opacity:0;scale:.95}}@media (prefers-reduced-motion:no-preference){.dropdown .dropdown-content{transition-behavior:allow-discrete;transition-property:opacity,scale,display,overlay;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}}@starting-style{.dropdown .dropdown-content{opacity:0;scale:.95}}:is(.dropdown:not(.dropdown-close).dropdown-open,.dropdown:not(.dropdown-close):not(.dropdown-hover):focus,.dropdown:not(.dropdown-close):focus-within)>[tabindex]:first-child{pointer-events:none}.dropdown:is(details){overflow:revert-layer}.dropdown:is(details) summary::-webkit-details-marker{display:none}.dropdown:where([popover]){background:0 0}.dropdown[popover]{color:inherit;position:fixed}@supports not (position-area:bottom){.dropdown[popover]{margin:auto}.dropdown[popover].dropdown-close{transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover].dropdown-open:not(:popover-open){transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover]::backdrop{background-color:oklab(0% none none/.3)}}:is(.dropdown[popover].dropdown-close,.dropdown[popover]:not(.dropdown-open,:popover-open)){transform-origin:top;opacity:0;display:none;scale:.95}:where(.btn){width:unset}.btn{--size:calc(var(--size-field,.25rem) * 10);--btn-p:1rem;--btn-fg:var(--color-base-content);cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;webkit-user-select:none;-webkit-user-select:none;user-select:none;border-width:var(--border);touch-action:manipulation;--btn-bg:var(--btn-color,var(--color-base-200));--btn-border:var(--btn-color,var(--color-base-200));border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow,transform;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@supports (color:color-mix(in lab, red, red)){.btn{--btn-border:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 calc(var(--depth) * 5%))}}.btn{--btn-soft-bg:initial;--btn-shadow:0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn{--btn-shadow:0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000)}}.btn{--btn-inset:0 .5px 0 .5px oklch(100% 0 0 / calc(var(--depth) * 6%));height:var(--size);padding-inline:var(--btn-p);font-size:var(--fontsize,.875rem);background-color:var(--btn-bg);color:var(--btn-fg);border-color:var(--btn-border);border-style:var(--btn-border-style,solid);outline-color:var(--btn-color,var(--color-base-content));--tw-prose-links:var(--btn-fg);background-image:none, var(--fx-noise);background-size:auto, calc(var(--noise,0) * 100%);text-shadow:0 .5px oklch(100% 0 0 / calc(var(--depth) * .15));box-shadow:var(--btn-inset) inset, var(--btn-shadow)}.btn:is([type=checkbox],[type=radio]){appearance:none}.btn:is([type=checkbox],[type=radio])[aria-label]:after{--tw-content:attr(aria-label);content:var(--tw-content)}.\!loading{pointer-events:none!important;aspect-ratio:1!important;vertical-align:middle!important;width:calc(var(--size-selector,.25rem) * 6)!important;background-color:currentColor!important;display:inline-block!important;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='8s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")!important;mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='8s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")!important;-webkit-mask-position:50%!important;mask-position:50%!important;-webkit-mask-size:100%!important;mask-size:100%!important;-webkit-mask-repeat:no-repeat!important;mask-repeat:no-repeat!important}@media (prefers-reduced-motion:no-preference){.\!loading{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")!important;mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")!important}}.loading{pointer-events:none;aspect-ratio:1;vertical-align:middle;width:calc(var(--size-selector,.25rem) * 6);background-color:currentColor;display:inline-block;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='8s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='8s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='6s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}@media (prefers-reduced-motion:no-preference){.loading{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")}}.filter{flex-wrap:wrap;display:flex}.filter [type=radio]{width:auto}.filter input{opacity:1;transition:visibility .1s allow-discrete, margin .1s, opacity .3s, padding .3s, border-width .1s;overflow:hidden;scale:1}.filter input.filter-reset{aspect-ratio:1}.filter input.filter-reset:after{--tw-content:"×";content:var(--tw-content)}.filter>input:not(:last-child),.filter>:not(:last-child) input{margin-inline-end:.25rem}.list{flex-direction:column;font-size:.875rem;display:flex}.list .list-row{--list-grid-cols:minmax(0, auto) 1fr;border-radius:var(--radius-box);word-break:break-word;grid-auto-flow:column;grid-template-columns:var(--list-grid-cols);gap:1rem;padding:1rem;display:grid;position:relative}@supports (color:color-mix(in lab, red, red)){:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{border-color:color-mix(in oklab, var(--color-base-content) 5%, transparent)}}:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{content:"";border-bottom:var(--border) solid;inset-inline:var(--radius-box);border-color:var(--color-base-content);position:absolute;bottom:0}@supports (color:color-mix(in lab, red, red)){:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{border-color:color-mix(in oklab, var(--color-base-content) 5%, transparent)}}.dropdown .dropdown-content{position:absolute}.dropdown.dropdown-close .dropdown-content,.dropdown:not(details,.dropdown-open,.dropdown-hover:hover,:focus-within) .dropdown-content,.dropdown.dropdown-hover:not(:hover) [tabindex]:first-child:focus:not(:focus-visible)~.dropdown-content{transform-origin:top;opacity:0;display:none;scale:.95}.dropdown .dropdown-content{z-index:999}@media (prefers-reduced-motion:no-preference){.dropdown .dropdown-content{transition-behavior:allow-discrete;transition-property:opacity,scale,display,overlay;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}}@starting-style{.dropdown .dropdown-content{opacity:0;scale:.95}}:is(.dropdown:not(.dropdown-close).dropdown-open,.dropdown:not(.dropdown-close):not(.dropdown-hover):focus,.dropdown:not(.dropdown-close):focus-within) .dropdown-content,.dropdown:not(.dropdown-close).dropdown-hover:hover .dropdown-content{opacity:1;scale:1}.toast{translate:var(--toast-x,0) var(--toast-y,0);inset-inline:auto 1rem;background-color:#0000;flex-direction:column;gap:.5rem;width:max-content;max-width:calc(100vw - 2rem);display:flex;position:fixed;top:auto;bottom:1rem}@media (prefers-reduced-motion:no-preference){.toast>*{animation:.25s ease-out toast}}.toggle{border:var(--border) solid currentColor;color:var(--input-color);cursor:pointer;appearance:none;vertical-align:middle;webkit-user-select:none;-webkit-user-select:none;user-select:none;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--toggle-p), var(--radius-selector-max)) + min(var(--border), var(--radius-selector-max)));padding:var(--toggle-p);flex-shrink:0;grid-template-columns:0fr 1fr 1fr;place-content:center;display:inline-grid;position:relative;box-shadow:inset 0 1px}@supports (color:color-mix(in lab, red, red)){.toggle{box-shadow:0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000) inset}}.toggle{--input-color:var(--color-base-content);transition:color .3s,grid-template-columns .2s}@supports (color:color-mix(in lab, red, red)){.toggle{--input-color:color-mix(in oklab, var(--color-base-content) 50%, #0000)}}.toggle{--toggle-p:calc(var(--size) * .125);--size:calc(var(--size-selector,.25rem) * 6);width:calc((var(--size) * 2) - (var(--border) + var(--toggle-p)) * 2);height:var(--size)}.toggle>*{z-index:1;cursor:pointer;appearance:none;background-color:#0000;border:none;grid-column:2/span 1;grid-row-start:1;height:100%;padding:.125rem;transition:opacity .2s,rotate .4s}.toggle>:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.toggle>:focus{outline-offset:2px;outline:2px solid #0000}}.toggle>:nth-child(2){color:var(--color-base-100);rotate:0deg}.toggle>:nth-child(3){color:var(--color-base-100);opacity:0;rotate:-15deg}.toggle:has(:checked)>:nth-child(2){opacity:0;rotate:15deg}.toggle:has(:checked)>:nth-child(3){opacity:1;rotate:0deg}.toggle:before{aspect-ratio:1;border-radius:var(--radius-selector);--tw-content:"";content:var(--tw-content);width:100%;height:100%;box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px currentColor;background-color:currentColor;grid-row-start:1;grid-column-start:2;transition:background-color .1s,translate .2s,inset-inline-start .2s;position:relative;inset-inline-start:0;translate:0}@supports (color:color-mix(in lab, red, red)){.toggle:before{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000)}}.toggle:before{background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise)}@media (forced-colors:active){.toggle:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px * -1);outline-width:1px}}@media print{.toggle:before{outline-offset:-1rem;outline:.25rem solid}}.toggle:focus-visible,.toggle:has(:focus-visible){outline-offset:2px;outline:2px solid}.toggle:checked{background-color:var(--color-base-100);--input-color:var(--color-base-content);grid-template-columns:1fr 1fr 0fr}.toggle:checked:before{background-color:currentColor}@starting-style{.toggle:checked:before{opacity:0}}.toggle[aria-checked=true]{background-color:var(--color-base-100);--input-color:var(--color-base-content);grid-template-columns:1fr 1fr 0fr}.toggle[aria-checked=true]:before{background-color:currentColor}@starting-style{.toggle[aria-checked=true]:before{opacity:0}}.toggle:has(>input:checked){background-color:var(--color-base-100);--input-color:var(--color-base-content);grid-template-columns:1fr 1fr 0fr}.toggle:has(>input:checked):before{background-color:currentColor}@starting-style{.toggle:has(>input:checked):before{opacity:0}}.toggle:indeterminate{grid-template-columns:.5fr 1fr .5fr}.toggle:disabled{cursor:not-allowed;opacity:.3}.toggle:disabled:before{border:var(--border) solid currentColor;background-color:#0000}.input{appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;--size:calc(var(--size-field,.25rem) * var(--in-size-mul,10));--input-color:var(--color-base-content);flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;display:inline-flex;position:relative}@supports (color:color-mix(in lab, red, red)){.input{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.input{cursor:text;width:clamp(3rem,20rem,100%);height:var(--size);font-size:max(var(--font-size,0rem), var(--font-size-min,.875rem));touch-action:manipulation;border:var(--border) solid var(--input-color,#0000);box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field))}@supports (color:color-mix(in lab, red, red)){.input{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.input input{appearance:none;background-color:#0000;border:none;width:100%;height:100%}.input input::placeholder{color:var(--color-base-content);opacity:.5}.input input:focus,.input input:focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.input input:focus,.input input:focus-within{outline-offset:2px;outline:2px solid #0000}}.input input::-webkit-calendar-picker-indicator{inset-inline-end:-.15em}.input::-webkit-inner-spin-button{margin-inline-end:-10px}.input::-webkit-calendar-picker-indicator{inset-inline-end:.75em}input.input{display:inline-flex;position:relative}input.input[type=url],input.input[type=email]{text-align:left}input.input::-webkit-datetime-edit{min-height:100%;text-align:inherit;align-items:center;display:grid}input.input::-webkit-date-and-time-value{min-height:100%;text-align:inherit;align-items:center;display:grid}input.input::-webkit-inner-spin-button{margin-block:calc(.25rem * var(--spin-my,-3))}input.input::-webkit-calendar-picker-indicator{cursor:pointer;width:1em;height:1em;position:absolute}input.input::-webkit-color-swatch-wrapper{padding-block:.25rem}.input input{display:inline-flex;position:relative}.input input[type=url],.input input[type=email]{text-align:left}.input input::-webkit-datetime-edit{min-height:100%;text-align:inherit;align-items:center;display:grid}.input input::-webkit-date-and-time-value{min-height:100%;text-align:inherit;align-items:center;display:grid}.input input::-webkit-inner-spin-button{margin-block:calc(.25rem * var(--spin-my,-3))}.input input::-webkit-calendar-picker-indicator{cursor:pointer;width:1em;height:1em;position:absolute}.input input::-webkit-color-swatch-wrapper{padding-block:.25rem}.input:focus{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){.input:focus{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)}}.input:focus{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media (pointer:coarse){@supports (-webkit-touch-callout:none){.input:focus{--font-size:1rem}}}.input:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){.input:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)}}.input:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media (pointer:coarse){@supports (-webkit-touch-callout:none){.input:focus-within{--font-size:1rem}}}.input:has(>input[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200)}.input:has(>input[disabled]):is(input),.input:has(>input[disabled]) :is(input){color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.input:has(>input[disabled]):is(input),.input:has(>input[disabled]) :is(input){color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}.input:has(>input[disabled]){box-shadow:none}.input:has(>input[disabled])::placeholder,.input:has(>input[disabled]) ::placeholder{color:var(--color-base-content);opacity:.2}.input:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200)}.input:is(:disabled,[disabled]):is(input),.input:is(:disabled,[disabled]) :is(input){color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.input:is(:disabled,[disabled]):is(input),.input:is(:disabled,[disabled]) :is(input){color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}.input:is(:disabled,[disabled]){box-shadow:none}.input:is(:disabled,[disabled])::placeholder,.input:is(:disabled,[disabled]) ::placeholder{color:var(--color-base-content);opacity:.2}fieldset:disabled .input{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200)}fieldset:disabled .input:is(input),fieldset:disabled .input :is(input){color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){fieldset:disabled .input:is(input),fieldset:disabled .input :is(input){color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}fieldset:disabled .input{box-shadow:none}fieldset:disabled .input::placeholder,fieldset:disabled .input ::placeholder{color:var(--color-base-content);opacity:.2}.input:has(>input[disabled])>input[disabled]{cursor:not-allowed}.range{appearance:none;webkit-appearance:none;--range-thumb:var(--color-base-100);--range-thumb-size:calc(var(--size-selector,.25rem) * 6);--range-progress:currentColor;--range-fill:1;--range-p:.25rem;--range-bg:currentColor}@supports (color:color-mix(in lab, red, red)){.range{--range-bg:color-mix(in oklab, currentColor 10%, #0000)}}.range{--range-fill-x:calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2));--range-fill-y:0;--range-fill-spread:calc(100cqw * var(--range-fill));cursor:pointer;vertical-align:middle;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)));width:clamp(3rem,20rem,100%);height:var(--range-thumb-size);background-color:#0000;border:none;overflow:hidden}[dir=rtl] .range{--range-dir:-1}.range:focus{outline:none}.range:focus-visible{outline-offset:2px;outline:2px solid}.range::-webkit-slider-runnable-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size) * .5)}@media (forced-colors:active){.range::-webkit-slider-runnable-track{border:1px solid}.range::-moz-range-track{border:1px solid}}.range::-moz-range-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size) * .5)}.range::-webkit-slider-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)));background-color:var(--range-thumb);height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p) solid;appearance:none;webkit-appearance:none;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px currentColor, 0 0 0 2rem var(--range-thumb) inset, var(--range-fill-x) var(--range-fill-y) 0 var(--range-fill-spread);position:relative;inset-block-start:50%;transform:translateY(-50%)}@supports (color:color-mix(in lab, red, red)){.range::-webkit-slider-thumb{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, var(--range-fill-x) var(--range-fill-y) 0 var(--range-fill-spread)}}.range::-moz-range-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p) solid;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px currentColor, 0 0 0 2rem var(--range-thumb) inset, var(--range-fill-x) var(--range-fill-y) 0 var(--range-fill-spread);background-color:currentColor;position:relative}@supports (color:color-mix(in lab, red, red)){.range::-moz-range-thumb{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, var(--range-fill-x) var(--range-fill-y) 0 var(--range-fill-spread)}}.range:disabled{cursor:not-allowed;opacity:.3}.indicator{width:max-content;display:inline-flex;position:relative}.indicator :where(.indicator-item){z-index:1;white-space:nowrap;top:var(--indicator-t,0);bottom:var(--indicator-b,auto);left:var(--indicator-s,auto);right:var(--indicator-e,0);translate:var(--indicator-x,50%) var(--indicator-y,-50%);position:absolute}.table{border-collapse:separate;--tw-border-spacing-x:0px;--tw-border-spacing-y:0px;width:100%;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);border-radius:var(--radius-box);text-align:left;font-size:.875rem;position:relative}.table:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}@media (hover:hover){:is(:is(.table tr.row-hover),.table tr.row-hover:nth-child(2n)):hover{background-color:var(--color-base-200)}}.table :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}.table :where(thead,tfoot){white-space:nowrap;color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.table :where(thead,tfoot){color:color-mix(in oklab, var(--color-base-content) 60%, transparent)}}.table :where(thead,tfoot){font-size:.875rem;font-weight:600}.table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000)}}.table :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}.table :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}.table :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}.table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000)}}.steps{counter-reset:step;grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden}.steps .step{text-align:center;--step-bg:var(--color-base-300);--step-fg:var(--color-base-content);grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid}.steps .step:before{width:100%;height:.5rem;color:var(--step-bg);background-color:var(--step-bg);content:"";border:1px solid;grid-row-start:1;grid-column-start:1;margin-inline-start:-100%;top:0}.steps .step>.step-icon,.steps .step:not(:has(.step-icon)):after{--tw-content:counter(step);content:var(--tw-content);counter-increment:step;z-index:1;color:var(--step-fg);background-color:var(--step-bg);border:1px solid var(--step-bg);border-radius:3.40282e38px;grid-row-start:1;grid-column-start:1;place-self:center;place-items:center;width:2rem;height:2rem;display:grid;position:relative}.steps .step:first-child:before{--tw-content:none;content:var(--tw-content)}.steps .step[data-content]:after{--tw-content:attr(data-content);content:var(--tw-content)}.drawer-side>.drawer-overlay{cursor:pointer;background-color:oklch(0% 0 0/.4);place-self:stretch stretch;position:sticky;top:0}.select{appearance:none;background-color:var(--color-base-100);vertical-align:middle;--size:calc(var(--size-field,.25rem) * var(--sl-size-mul,10));--input-color:var(--color-base-content);flex-shrink:1;align-items:center;gap:.375rem;padding-inline:.75rem 1.75rem;display:inline-flex;position:relative}@supports (color:color-mix(in lab, red, red)){.select{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.select{width:clamp(3rem,20rem,100%);height:var(--size);font-size:max(var(--font-size,0rem), var(--font-size-min,.875rem));touch-action:manipulation;white-space:nowrap;text-overflow:ellipsis;border:var(--border) solid var(--input-color,#0000);box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));overflow:hidden}@supports (color:color-mix(in lab, red, red)){.select{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}[dir=rtl] .select{background-position:12px calc(1px + 50%),16px calc(1px + 50%)}.select[multiple]{background-image:none;height:auto;padding-block:.75rem;padding-inline-end:.75rem;overflow:auto}.select select{appearance:none;width:calc(100% + 2.75rem);height:calc(100% - calc(var(--border) * 2));background:inherit;border-radius:inherit;border-style:none;align-items:center;margin-inline:-.75rem -1.75rem;padding-inline:.75rem 1.75rem}.select select::placeholder{color:var(--color-base-content);opacity:.5}.select select:focus,.select select:focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.select select:focus,.select select:focus-within{outline-offset:2px;outline:2px solid #0000}}.select select:not(:last-child){background-image:none;margin-inline-end:-1.375rem}.select:focus{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){.select:focus{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)}}.select:focus{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;background-image:linear-gradient(135deg,#0000 50%,currentColor 50%),linear-gradient(45deg,currentColor 50%,#0000 50%)}.select:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){.select:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)}}.select:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;background-image:linear-gradient(135deg,#0000 50%,currentColor 50%),linear-gradient(45deg,currentColor 50%,#0000 50%)}.select:open{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){.select:open{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)}}.select:open{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;background-image:linear-gradient(135deg,#0000 50%,currentColor 50%),linear-gradient(45deg,currentColor 50%,#0000 50%)}.select:has(>select[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200)}.select:has(>select[disabled]):is(select),.select:has(>select[disabled]) :is(select){color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.select:has(>select[disabled]):is(select),.select:has(>select[disabled]) :is(select){color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}.select:has(>select[disabled]){box-shadow:none}.select:has(>select[disabled])::placeholder,.select:has(>select[disabled]) ::placeholder{color:var(--color-base-content);opacity:.2}.select:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200)}.select:is(:disabled,[disabled]):is(select),.select:is(:disabled,[disabled]) :is(select){color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.select:is(:disabled,[disabled]):is(select),.select:is(:disabled,[disabled]) :is(select){color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}.select:is(:disabled,[disabled]){box-shadow:none}.select:is(:disabled,[disabled])::placeholder,.select:is(:disabled,[disabled]) ::placeholder{color:var(--color-base-content);opacity:.2}fieldset:disabled .select{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200)}fieldset:disabled .select:is(select),fieldset:disabled .select :is(select){color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){fieldset:disabled .select:is(select),fieldset:disabled .select :is(select){color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}fieldset:disabled .select{box-shadow:none}fieldset:disabled .select::placeholder,fieldset:disabled .select ::placeholder{color:var(--color-base-content);opacity:.2}.select:has(>select[disabled])>select[disabled]{cursor:not-allowed}@supports (appearance:base-select){:is(.select,.select select){appearance:base-select}:is(.select,.select select)::picker(select){appearance:base-select}}:is(.select,.select select)::picker(select){color:inherit;border:var(--border) solid var(--color-base-200);border-radius:var(--radius-box);background-color:inherit;max-height:min(24rem,70dvh);box-shadow:0 2px calc(var(--depth) * 3px) -2px oklch(0% 0 0/.2);box-shadow:0 20px 25px -5px rgb(0 0 0/calc(var(--depth) * .1)), 0 8px 10px -6px rgb(0 0 0/calc(var(--depth) * .1));margin-block:.5rem;margin-inline:.5rem;padding:.5rem;translate:-.5rem}:is(.select,.select select)::picker-icon{display:none}:is(.select,.select select) selectedcontent{text-overflow:ellipsis;white-space:nowrap;width:100%;overflow:hidden}:is(.select,.select select) optgroup{padding-top:.5em}:is(.select,.select select) optgroup option:first-child{margin-top:.5em}@supports (color:color-mix(in lab, red, red)){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}@media (forced-colors:active){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{outline-offset:2px;outline:2px solid #0000}}:is(.select,.select select) option{border-radius:var(--radius-field);padding-block:.375rem;padding-inline:calc(.25rem * var(--option-px,3));white-space:normal;transition-property:color,background-color;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{outline-offset:2px;outline:2px solid #0000}}:is(.select,.select select) option:not(:disabled):active{background-color:var(--color-neutral);color:var(--color-neutral-content);box-shadow:0 2px calc(var(--depth) * 3px) -2px var(--color-neutral)}[dir=rtl] .select::picker(select){translate:.5rem}[dir=rtl] .select select::picker(select){translate:.5rem}.checkbox{border:var(--border) solid var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.checkbox{border:var(--border) solid var(--input-color,color-mix(in oklab, var(--color-base-content) 20%, #0000))}}.checkbox{cursor:pointer;appearance:none;border-radius:var(--radius-selector);vertical-align:middle;color:var(--color-base-content);box-shadow:0 1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 0 #0000 inset, 0 0 #0000;--size:calc(var(--size-selector,.25rem) * 6);width:var(--size);height:var(--size);background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise);flex-shrink:0;padding:.25rem;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative}.checkbox:before{--tw-content:"";content:var(--tw-content);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);width:100%;height:100%;box-shadow:0px 3px 0 0px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;background-color:currentColor;font-size:1rem;line-height:.75;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s;display:block;rotate:45deg}.checkbox:focus-visible{outline:2px solid var(--input-color,currentColor);outline-offset:2px}.checkbox:checked{background-color:var(--input-color,#0000);box-shadow:0 0 #0000 inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * .1))}.checkbox:checked:before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media (forced-colors:active){.checkbox:checked:before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:0deg}}@media print{.checkbox:checked:before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:0deg}}.checkbox[aria-checked=true]{background-color:var(--input-color,#0000);box-shadow:0 0 #0000 inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * .1))}.checkbox[aria-checked=true]:before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media (forced-colors:active){.checkbox[aria-checked=true]:before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:0deg}}@media print{.checkbox[aria-checked=true]:before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:0deg}}.checkbox:indeterminate{background-color:var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.checkbox:indeterminate{background-color:var(--input-color,color-mix(in oklab, var(--color-base-content) 20%, #0000))}}.checkbox:indeterminate:before{opacity:1;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%);translate:0 -35%;rotate:0deg}.radio{cursor:pointer;appearance:none;vertical-align:middle;border:var(--border) solid var(--input-color,currentColor);border-radius:3.40282e38px;flex-shrink:0;padding:.25rem;display:inline-block;position:relative}@supports (color:color-mix(in lab, red, red)){.radio{border:var(--border) solid var(--input-color,color-mix(in srgb, currentColor 20%, #0000))}}.radio{box-shadow:0 1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset;--size:calc(var(--size-selector,.25rem) * 6);width:var(--size);height:var(--size);color:var(--input-color,currentColor)}.radio:before{--tw-content:"";content:var(--tw-content);background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise);border-radius:3.40282e38px;width:100%;height:100%;display:block}.radio:focus-visible{outline:2px solid}.radio:checked{background-color:var(--color-base-100);border-color:currentColor}@media (prefers-reduced-motion:no-preference){.radio:checked{animation:.2s ease-out radio}}.radio:checked:before{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * .1));background-color:currentColor}@media (forced-colors:active){.radio:checked:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px * -1);outline-width:1px}}@media print{.radio:checked:before{outline-offset:-1rem;outline:.25rem solid}}.radio[aria-checked=true]{background-color:var(--color-base-100);border-color:currentColor}@media (prefers-reduced-motion:no-preference){.radio[aria-checked=true]{animation:.2s ease-out radio}}.radio[aria-checked=true]:before{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * .1));background-color:currentColor}@media (forced-colors:active){.radio[aria-checked=true]:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px * -1);outline-width:1px}}@media print{.radio[aria-checked=true]:before{outline-offset:-1rem;outline:.25rem solid}}.drawer{grid-auto-columns:max-content auto;width:100%;display:grid;position:relative}.card-body{padding:var(--card-p,1.5rem);font-size:var(--card-fs,.875rem);flex-direction:column;flex:auto;gap:.5rem;display:flex}.card{border-radius:var(--radius-box);outline-offset:2px;outline:2px solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative}.card:focus-visible,.card[aria-checked=true],.card:has(>:checked,>:is([type=checkbox],[type=radio]):focus-visible){outline-color:currentColor}.card:has(>:checked:focus-visible),.card[aria-checked=true]:focus-visible,.card[aria-checked=true]:has(>:is([type=checkbox],[type=radio]):focus-visible){outline-width:4px}.card:has(>:is([type=checkbox],[type=radio])){cursor:pointer;-webkit-user-select:none;user-select:none}.card>:is([type=checkbox],[type=radio]){appearance:none}.stats{border-radius:var(--radius-box);grid-auto-flow:column;display:inline-grid;position:relative;overflow-x:auto}.progress{appearance:none;border-radius:var(--radius-box);background-color:currentColor;width:100%;height:.5rem;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.progress{background-color:color-mix(in oklab, currentcolor 20%, transparent)}}.progress{color:var(--color-base-content)}.progress:indeterminate{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%}@media (prefers-reduced-motion:no-preference){.progress:indeterminate{animation:5s ease-in-out infinite progress}}@supports ((-moz-appearance:none)){.progress:indeterminate::-moz-progress-bar{background-color:#0000}@media (prefers-reduced-motion:no-preference){.progress:indeterminate::-moz-progress-bar{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress}}.progress::-moz-progress-bar{border-radius:var(--radius-box);background-color:currentColor}@media (prefers-reduced-motion:no-preference){.progress::-moz-progress-bar{transition:inline-size .3s}}}@supports ((-webkit-appearance:none)){.progress::-webkit-progress-bar{border-radius:var(--radius-box);background-color:#0000}.progress::-webkit-progress-value{border-radius:var(--radius-box);background-color:currentColor}@media (prefers-reduced-motion:no-preference){.progress::-webkit-progress-value{transition:inline-size .3s}}}.file-input{border:var(--border) solid #0000;cursor:pointer;appearance:none;background-color:var(--color-base-100);vertical-align:middle;webkit-user-select:none;-webkit-user-select:none;user-select:none;width:clamp(3rem,20rem,100%);height:var(--size);border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));align-items:center;padding-inline-end:.75rem;font-size:.875rem;line-height:2;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.file-input{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.file-input{--size:calc(var(--size-field,.25rem) * 10);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.file-input{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.file-input::file-selector-button{cursor:pointer;webkit-user-select:none;-webkit-user-select:none;user-select:none;height:calc(100% + var(--border) * 2);margin-inline-end:1rem;margin-block:calc(var(--border) * -1);color:var(--btn-fg);border-width:var(--border);border-style:solid;border-color:var(--btn-border);background-color:var(--btn-bg);background-size:calc(var(--noise) * 100%);background-image:var(--fx-noise);text-shadow:0 .5px oklch(1 0 0 / calc(var(--depth) * .15));box-shadow:0 .5px 0 .5px white inset, var(--btn-shadow);border-start-start-radius:calc(var(--join-ss,var(--radius-field) - var(--border)));border-end-start-radius:calc(var(--join-es,var(--radius-field) - var(--border)));margin-inline-start:calc(var(--border) * -1);padding-inline:1rem;font-size:.875rem;font-weight:600}@supports (color:color-mix(in lab, red, red)){.file-input::file-selector-button{box-shadow:0 .5px 0 .5px color-mix(in oklab, color-mix(in oklab, white 30%, var(--btn-bg)) calc(var(--depth) * 20%), #0000) inset, var(--btn-shadow)}}.file-input::file-selector-button{--size:calc(var(--size-field,.25rem) * 10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-border:var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.file-input::file-selector-button{--btn-border:color-mix(in oklab, var(--btn-bg), #000 5%)}}.file-input::file-selector-button{--btn-shadow:0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.file-input::file-selector-button{--btn-shadow:0 3px 2px -2px color-mix(in oklab, var(--btn-bg) 30%, #0000), 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) 30%, #0000)}}.file-input:focus{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){.file-input:focus{box-shadow:0 1px color-mix(in oklab, var(--input-color) 10%, #0000)}}.file-input:focus{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}.file-input:has(>input[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200)}.file-input:has(>input[disabled])::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.file-input:has(>input[disabled])::placeholder{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.file-input:has(>input[disabled]){box-shadow:none;color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.file-input:has(>input[disabled]){color:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}.file-input:has(>input[disabled])::file-selector-button{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);--btn-border:#0000;--btn-fg:var(--color-base-content);background-image:none}@supports (color:color-mix(in lab, red, red)){.file-input:has(>input[disabled])::file-selector-button{--btn-fg:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}.file-input:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200)}.file-input:is(:disabled,[disabled])::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.file-input:is(:disabled,[disabled])::placeholder{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.file-input:is(:disabled,[disabled]){box-shadow:none;color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.file-input:is(:disabled,[disabled]){color:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}.file-input:is(:disabled,[disabled])::file-selector-button{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);--btn-border:#0000;--btn-fg:var(--color-base-content);background-image:none}@supports (color:color-mix(in lab, red, red)){.file-input:is(:disabled,[disabled])::file-selector-button{--btn-fg:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}.textarea{appearance:none;border-radius:var(--radius-field);background-color:var(--color-base-100);vertical-align:middle;--input-color:var(--color-base-content);flex-shrink:1;min-height:5rem;padding-block:.5rem;padding-inline:.75rem}@supports (color:color-mix(in lab, red, red)){.textarea{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.textarea{width:clamp(3rem,20rem,100%);font-size:max(var(--font-size,0rem), var(--font-size-min,.875rem));touch-action:manipulation;border:var(--border) solid var(--input-color,#0000);box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}@supports (color:color-mix(in lab, red, red)){.textarea{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.textarea textarea{appearance:none;background-color:#0000;border:none}.textarea textarea::placeholder{color:var(--color-base-content);opacity:.5}.textarea textarea:focus,.textarea textarea:focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.textarea textarea:focus,.textarea textarea:focus-within{outline-offset:2px;outline:2px solid #0000}}.textarea:focus{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){.textarea:focus{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)}}.textarea:focus{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media (pointer:coarse){@supports (-webkit-touch-callout:none){.textarea:focus{--font-size:1rem}}}.textarea:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){.textarea:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)}}.textarea:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media (pointer:coarse){@supports (-webkit-touch-callout:none){.textarea:focus-within{--font-size:1rem}}}.textarea:has(>textarea[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.textarea:has(>textarea[disabled]){color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}.textarea:has(>textarea[disabled]){box-shadow:none}.textarea:has(>textarea[disabled])::placeholder,.textarea:has(>textarea[disabled]) ::placeholder{color:var(--color-base-content);opacity:.2}.textarea:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.textarea:is(:disabled,[disabled]){color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}.textarea:is(:disabled,[disabled]){box-shadow:none}.textarea:is(:disabled,[disabled])::placeholder,.textarea:is(:disabled,[disabled]) ::placeholder{color:var(--color-base-content);opacity:.2}.textarea:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed}.stack{grid-template-rows:3px 4px 1fr 4px 3px;grid-template-columns:3px 4px 1fr 4px 3px;display:inline-grid}.stack>*{width:100%;height:100%}.stack>:nth-child(n+2){opacity:.7;width:100%}.stack>:nth-child(2){z-index:2;opacity:.9}.stack>:first-child{z-index:3;width:100%}.modal-backdrop{color:#0000;z-index:-1;grid-row-start:1;grid-column-start:1;place-self:stretch stretch;display:grid}.modal-backdrop button{cursor:pointer}.modal-box{background-color:var(--color-base-100);border-top-left-radius:var(--modal-tl,var(--radius-box));border-top-right-radius:var(--modal-tr,var(--radius-box));border-bottom-left-radius:var(--modal-bl,var(--radius-box));border-bottom-right-radius:var(--modal-br,var(--radius-box));opacity:0;overscroll-behavior:contain;grid-row-start:1;grid-column-start:1;width:91.6667%;max-width:32rem;max-height:100vh;padding:1.5rem;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out;overflow-y:auto;scale:.95;box-shadow:0 25px 50px -12px oklch(0% 0 0/.25)}.drawer-content{grid-row-start:1;grid-column-start:2;min-width:0}.stat-value{white-space:nowrap;grid-column-start:1;font-size:2rem;font-weight:800}.divider{white-space:nowrap;height:1rem;margin:var(--divider-m,1rem 0);--divider-color:var(--color-base-content);flex-direction:row;align-self:stretch;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){.divider{--divider-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.divider:before{content:"";background-color:var(--divider-color);flex-grow:1;width:100%;height:.125rem}@media print{.divider:before{border:.5px solid}}.divider:after{content:"";background-color:var(--divider-color);flex-grow:1;width:100%;height:.125rem}@media print{.divider:after{border:.5px solid}}.divider:not(:empty){gap:1rem}.label{white-space:nowrap;color:currentColor;align-items:center;gap:.375rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.label{color:color-mix(in oklab, currentcolor 60%, transparent)}}.label:has(input){cursor:pointer}@supports (color:color-mix(in lab, red, red)){.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border) solid color-mix(in oklab, currentColor 10%, #0000)}}@supports (color:color-mix(in lab, red, red)){.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border) solid color-mix(in oklab, currentColor 10%, #0000)}}@supports (color:color-mix(in lab, red, red)){.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border) solid color-mix(in oklab, currentColor 10%, #0000)}}@supports (color:color-mix(in lab, red, red)){.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border) solid color-mix(in oklab, currentColor 10%, #0000)}}.label:is(.input>*,.select>*){white-space:nowrap;height:calc(100% - .5rem);font-size:inherit;align-items:center;padding-inline:.75rem;display:flex}.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border) solid currentColor;margin-inline:-.75rem .75rem}@supports (color:color-mix(in lab, red, red)){.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border) solid color-mix(in oklab, currentColor 10%, #0000)}}.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border) solid currentColor;margin-inline:.75rem -.75rem}@supports (color:color-mix(in lab, red, red)){.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border) solid color-mix(in oklab, currentColor 10%, #0000)}}.fieldset-legend{color:var(--color-base-content);margin-bottom:-.25rem;justify-content:space-between;align-items:center;gap:.5rem;margin-inline-end:auto;padding-block:.5rem;font-weight:600;display:flex}.modal-action{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.menu .dropdown-content{margin-top:.5rem;padding:.5rem}.menu .dropdown-content:before{display:none}.status{aspect-ratio:1;border-radius:var(--radius-selector);background-color:var(--color-base-content);width:.5rem;height:.5rem;display:inline-block}@supports (color:color-mix(in lab, red, red)){.status{background-color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.status{vertical-align:middle;color:#0000004d;background-position:50%;background-repeat:no-repeat}@supports (color:color-mix(in lab, red, red)){.status{color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.status{background-image:radial-gradient(circle at 35% 30%, oklch(1 0 0 / calc(var(--depth) * .5)), #0000);box-shadow:0 2px 3px -1px}@supports (color:color-mix(in lab, red, red)){.status{box-shadow:0 2px 3px -1px color-mix(in oklab, currentColor calc(var(--depth) * 100%), #0000)}}.badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border) solid var(--badge-color,var(--color-base-200));background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem) * 6);width:fit-content;height:var(--size);padding-inline:calc(var(--size) / 2 - var(--border));justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.footer{grid-auto-flow:row;place-items:start;gap:2.5rem 1rem;width:100%;font-size:.875rem;line-height:1.25rem;display:grid}.footer>:not(script,style,template){place-items:start;gap:.5rem;display:grid}.stat{grid-template-columns:repeat(1,1fr);column-gap:1rem;width:100%;padding-block:1rem;padding-inline:1.5rem;display:inline-grid}.stat:not(:last-child){border-inline-end:var(--border) dashed currentColor}@supports (color:color-mix(in lab, red, red)){.stat:not(:last-child){border-inline-end:var(--border) dashed color-mix(in oklab, currentColor 10%, #0000)}}.stat:not(:last-child){border-block-end:none}.fieldset{grid-template-columns:1fr;grid-auto-rows:max-content;gap:.375rem;padding-block:.25rem;font-size:.75rem;display:grid}.chat{--mask-chat:url("data:image/svg+xml,%3csvg width='13' height='13' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M0 11.5004C0 13.0004 2 13.0004 2 13.0004H12H13V0.00036329L12.5 0C12.5 0 11.977 2.09572 11.8581 2.50033C11.6075 3.35237 10.9149 4.22374 9 5.50036C6 7.50036 0 10.0004 0 11.5004Z'/%3e%3c/svg%3e");grid-auto-rows:min-content;column-gap:.75rem;padding-block:.25rem;display:grid}.mask{vertical-align:middle;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.menu .dropdown:focus-within .menu-dropdown-toggle:after{translate:0 1px;rotate:45deg}.link{cursor:pointer;text-decoration-line:underline}.link:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.link:focus{outline-offset:2px;outline:2px solid #0000}}.link:focus-visible{outline-offset:2px;outline:2px solid}.btn-outline{--btn-bg:#0000;color:var(--btn-rest-fg,var(--btn-color,var(--color-base-content)));--btn-border:var(--btn-color,var(--color-base-content));--btn-border-style:solid;--btn-inset:0 0 0 0 oklch(0% 0 0/0);--btn-shadow:0 0 0 0 oklch(0% 0 0/0);background-image:none}.btn-ghost{--btn-bg:#0000;color:var(--btn-rest-fg,var(--btn-color,var(--color-base-content,currentColor)));--btn-border:#0000;--btn-inset:0 0 0 0 oklch(0% 0 0/0);--btn-shadow:0 0 0 0 oklch(0% 0 0/0);background-image:none}.menu-title{color:var(--color-base-content);padding-block:.5rem;padding-inline:.75rem}@supports (color:color-mix(in lab, red, red)){.menu-title{color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}.menu-title{font-size:.875rem;font-weight:600}.aura:has(>.card,>.alert){--aura-radius:var(--radius-box)}.aura:has(>.btn,>.input,>.select){--aura-radius:var(--radius-field)}.aura:has(>.checkbox,>.toggle,>.badge){--aura-radius:var(--radius-selector)}.collapse:not(td,tr,colgroup){border-radius:var(--radius-box,1rem);isolation:isolate;grid-template-rows:max-content 0fr;grid-template-columns:minmax(0,1fr);width:100%;display:grid;position:relative}@media (prefers-reduced-motion:no-preference){.collapse:not(td,tr,colgroup){transition:grid-template-rows .2s}}.collapse:not(td,tr,colgroup)>input:is([type=checkbox],[type=radio]){appearance:none;opacity:0;z-index:1;grid-row-start:1;grid-column-start:1;width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out}.collapse:not(td,tr,colgroup):is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close)),.collapse:not(td,tr,colgroup):not(.collapse-close):has(>input:is([type=checkbox],[type=radio]):checked){grid-template-rows:max-content 1fr}.collapse:not(td,tr,colgroup):is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(td,tr,colgroup):not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){--overflow-delay:.2s;overflow:revert-layer;content-visibility:visible;min-height:fit-content}@supports not (content-visibility:visible){.collapse:not(td,tr,colgroup):is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(td,tr,colgroup):not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){visibility:visible}}.collapse:not(td,tr,colgroup):focus-visible,.collapse:not(td,tr,colgroup):has(>input:is([type=checkbox],[type=radio]):focus-visible),.collapse:not(td,tr,colgroup):has(summary:focus-visible){outline-color:var(--color-base-content);outline-offset:2px;outline-width:2px;outline-style:solid}.collapse:not(td,tr,colgroup):not(.collapse-close)>input[type=checkbox],.collapse:not(td,tr,colgroup):not(.collapse-close)>input[type=radio]:not(:checked),.collapse:not(td,tr,colgroup):not(.collapse-close)>.collapse-title{cursor:pointer}:is(.collapse:not(td,tr,colgroup)[tabindex]:focus:not(.collapse-close,.collapse[open]),.collapse:not(td,tr,colgroup)[tabindex]:focus-within:not(.collapse-close,.collapse[open]))>.collapse-title{cursor:unset}.collapse:not(td,tr,colgroup):is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>:where(.collapse-content),.collapse:not(td,tr,colgroup):not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){padding-bottom:1rem}.collapse:not(td,tr,colgroup):is(details){width:100%}.collapse:not(td,tr,colgroup):is(details)::details-content{--overflow-delay:0s;height:0;overflow:clip}.collapse:not(td,tr,colgroup):is(details):where([open])::details-content{overflow:revert-layer;height:auto}@media (prefers-reduced-motion:no-preference){.collapse:not(td,tr,colgroup):is(details)::details-content{transition:overflow .2s allow-discrete var(--overflow-delay), content-visibility .2s allow-discrete, visibility .2s allow-discrete, min-height .2s ease-out allow-discrete, padding .1s ease-out 20ms, background-color .2s ease-out, height .2s;interpolate-size:allow-keywords}.collapse:not(td,tr,colgroup):is(details):where([open])::details-content{--overflow-delay:.2s}}.collapse:not(td,tr,colgroup):is(details)>summary{outline:none;display:block;position:relative}.collapse:not(td,tr,colgroup):is(details)>summary::-webkit-details-marker{display:none}.alert{--alert-border-color:var(--color-base-200);border-radius:var(--radius-box);color:var(--color-base-content);background-color:var(--alert-color,var(--color-base-200));text-align:start;background-size:auto, calc(var(--noise) * 33%);background-image:none, var(--fx-noise);box-shadow:0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * .08)) inset, 0 1px #000, 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * .08));border-style:solid;grid-template-columns:auto;grid-auto-flow:column;justify-content:start;place-items:center start;gap:1rem;padding-block:.75rem;padding-inline:1rem;font-size:.875rem;line-height:1.25rem;display:grid}@supports (color:color-mix(in lab, red, red)){.alert{box-shadow:0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * .08)) inset, 0 1px color-mix(in oklab, color-mix(in oklab, #000 20%, var(--alert-color,var(--color-base-200))) calc(var(--depth) * 20%), #0000), 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * .08))}}.alert:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}}@layer daisyui.l1{.drawer-open>.drawer-toggle~.drawer-side>:not(.drawer-overlay),[dir=rtl] :is(.drawer-open>.drawer-toggle~.drawer-side>:not(.drawer-overlay)),.drawer-open>.drawer-toggle~.drawer-side>:not(.drawer-overlay),[dir=rtl] :is(.drawer-open>.drawer-toggle~.drawer-side>:not(.drawer-overlay)){translate:0%}.btn:where(:checked:not(.filter [type=radio].btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}@media (hover:hover){.btn:hover{--btn-bg:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab, red, red)){.btn:hover{--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}.btn:hover{color:var(--btn-fg);--btn-border:var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn:hover{--btn-border:color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%))}}.btn:hover{--btn-border-style:solid;--btn-inset:0 .5px 0 .5px oklch(100% 0 0 / calc(var(--depth) * 6%));--btn-shadow:0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn:hover{--btn-shadow:0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000)}}}.btn:active:not(.btn-active){--btn-bg:var(--btn-color,var(--color-base-200));translate:0 .5px}@supports (color:color-mix(in lab, red, red)){.btn:active:not(.btn-active){--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 5%)}}.btn:active:not(.btn-active){color:var(--btn-fg,var(--color-base-content));--btn-border:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab, red, red)){.btn:active:not(.btn-active){--btn-border:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}.btn:active:not(.btn-active){--btn-border-style:solid;--btn-inset:0 0 0 0 oklch(0% 0 0/0);--btn-shadow:0 0 0 0 oklch(0% 0 0/0)}.btn:where(:checked:not(.filter [type=radio].btn),:not([type=radio],[type=checkbox]):focus-visible){--btn-bg:var(--btn-color,var(--color-base-200));color:var(--btn-fg,var(--color-base-content));--btn-border:var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn:where(:checked:not(.filter [type=radio].btn),:not([type=radio],[type=checkbox]):focus-visible){--btn-border:color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%))}}.btn:where(:checked:not(.filter [type=radio].btn),:not([type=radio],[type=checkbox]):focus-visible){--btn-border-style:solid;--btn-inset:0 .5px 0 .5px oklch(100% 0 0 / calc(var(--depth) * 6%));--btn-shadow:0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn:where(:checked:not(.filter [type=radio].btn),:not([type=radio],[type=checkbox]):focus-visible){--btn-shadow:0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000)}}.btn:where(:checked:not(.filter [type=radio].btn),:not([type=radio],[type=checkbox]):focus-visible){isolation:isolate}.btn:focus-visible,.btn:has(:focus-visible){isolation:isolate;outline-width:2px;outline-style:solid}.filter:not(:has(:checked:not(.filter-reset))) :is(.filter-reset,[type=reset]):not(:focus-visible){visibility:hidden;opacity:0;border-width:0;width:0;margin-inline:0;padding-inline:0;scale:0}.filter:not(:has(:focus-visible)):has(:checked:not(.filter-reset,[type=checkbox])) :is(input,button):not(:checked,.filter-reset,[type=reset]){opacity:0;border-width:0;width:0;margin-inline:0;padding-inline:0;scale:0}.alert-soft{color:var(--alert-color,var(--color-base-content));background:var(--alert-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.alert-soft{background:color-mix(in oklab, var(--alert-color,var(--color-base-content)) 8%, var(--color-base-100))}}.alert-soft{--alert-border-color:var(--alert-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.alert-soft{--alert-border-color:color-mix(in oklab, var(--alert-color,var(--color-base-content)) 10%, var(--color-base-100))}}.alert-soft{box-shadow:none;background-image:none}}.prose :where(a.btn:not(.btn-link)):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:none}@layer daisyui{.btn:is(:disabled,[disabled],[aria-disabled=true]){pointer-events:none;color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn:is(:disabled,[disabled],[aria-disabled=true]){color:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}.btn:is(:disabled,[disabled],[aria-disabled=true]){--btn-bg:#0000;--btn-border:#0000;--btn-inset:0 0 0 0 oklch(0% 0 0/0);--btn-shadow:0 0 0 0 oklch(0% 0 0/0);background-image:none}@supports (color:color-mix(in lab, red, red)){:is(.btn-disabled,.btn:is(:disabled,[disabled],[aria-disabled=true])):not(.btn-link,.btn-ghost){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.btn-disabled{pointer-events:none;color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn-disabled{color:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}.btn-disabled{--btn-bg:#0000;--btn-border:#0000;--btn-inset:0 0 0 0 oklch(0% 0 0/0);--btn-shadow:0 0 0 0 oklch(0% 0 0/0);background-image:none}:is(.btn-disabled,.btn:is(:disabled,[disabled],[aria-disabled=true])):not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:is(.btn-disabled,.btn:is(:disabled,[disabled],[aria-disabled=true])):not(.btn-link,.btn-ghost){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}}.pointer-events-none{pointer-events:none}.collapse:not(td,tr,colgroup){visibility:revert-layer}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@layer daisyui.l1.l2.l3.l4{.card-body p{flex-grow:1}.card figure:first-child{border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-end-radius:unset;border-end-start-radius:unset;overflow:hidden}.card figure:last-child{border-start-start-radius:unset;border-start-end-radius:unset;border-end-end-radius:inherit;border-end-start-radius:inherit;overflow:hidden}.card figure{justify-content:center;align-items:center;display:flex}.join-item>*{--join-ss:initial;--join-se:initial;--join-es:initial;--join-ee:initial}}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.top-0{top:0}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-14{top:calc(var(--spacing) * 14)}.top-full{top:100%}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.-bottom-4{bottom:calc(var(--spacing) * -4)}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-0{left:0}.left-1\.5{left:calc(var(--spacing) * 1.5)}.left-2{left:calc(var(--spacing) * 2)}.join{--join-ss:0;--join-se:0;--join-es:0;--join-ee:0;--join-v:0;--join-h:1;align-items:stretch;display:inline-flex}@scope(.join){:scope>:where(:focus,:has(:focus)){z-index:1}@media (hover:hover){:scope>:where(.btn:hover,:has(.btn:hover)){isolation:isolate}}:scope :where(:scope>:first-child){--join-ss:var(--radius-field);--join-se:calc(var(--radius-field) * var(--join-v));--join-es:calc(var(--radius-field) * var(--join-h));--join-ee:0}:scope :where(:scope>:last-child){--join-ss:0;--join-se:calc(var(--radius-field) * var(--join-h));--join-es:calc(var(--radius-field) * var(--join-v));--join-ee:var(--radius-field)}:scope :where(:scope>:only-child){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}}.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}.order-1{order:1}.order-2{order:2}.order-3{order:3}.col-span-2{grid-column:span 2/span 2}.col-span-full{grid-column:1/-1}.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}}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mx-1{margin-inline:var(--spacing)}.mx-auto{margin-inline:auto}.-my-1{margin-block:calc(var(--spacing) * -1)}.my-0{margin-block:0}.my-1{margin-block:var(--spacing)}.join-item{border-style:solid;border-width:var(--border,1px);border-start-start-radius:var(--join-ss);border-start-end-radius:var(--join-se);border-end-end-radius:var(--join-ee);border-end-start-radius:var(--join-es)}.join-item:not(:first-child,:disabled,[disabled],.btn-disabled){margin-block-start:calc(var(--border,1px) * -1 * var(--join-v));margin-inline-start:calc(var(--border,1px) * -1 * var(--join-h))}.join-item:is(:disabled,[disabled],.btn-disabled){border-width:var(--border,1px);border-inline-end-width:calc(var(--border,1px) * var(--join-v));border-block-end-width:calc(var(--border,1px) * var(--join-h))}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.-mr-1{margin-right:calc(var(--spacing) * -1)}.-mr-2{margin-right:calc(var(--spacing) * -2)}.mr-2{margin-right:calc(var(--spacing) * 2)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.alert{border-width:var(--border);border-color:var(--alert-border-color,var(--color-base-200))}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-24{height:calc(var(--spacing) * 24)}.h-28{height:calc(var(--spacing) * 28)}.h-32{height:calc(var(--spacing) * 32)}.h-\[76px\]{height:76px}.h-auto{height:auto}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[50vh\]{max-height:50vh}.max-h-\[85dvh\]{max-height:85dvh}.min-h-5{min-height:calc(var(--spacing) * 5)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-20{min-height:calc(var(--spacing) * 20)}.min-h-dvh{min-height:100dvh}.min-h-screen{min-height:100vh}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[76px\]{width:76px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4{max-width:calc(var(--spacing) * 4)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6{max-width:calc(var(--spacing) * 6)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-\[10rem\]{max-width:10rem}.max-w-\[14px\]{max-width:14px}.max-w-\[18rem\]{max-width:18rem}.max-w-\[220px\]{max-width:220px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-prose{max-width:65ch}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-6{min-width:calc(var(--spacing) * 6)}.min-w-28{min-width:calc(var(--spacing) * 28)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-56{min-width:calc(var(--spacing) * 56)}.min-w-\[5px\]{min-width:5px}.min-w-\[22rem\]{min-width:22rem}.min-w-\[180px\]{min-width:180px}.min-w-\[520px\]{min-width:520px}.min-w-\[640px\]{min-width:640px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.table-fixed{table-layout:fixed}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.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}.cursor-zoom-in{cursor:zoom-in}.resize{resize:both}.scroll-mt-24{scroll-margin-top:calc(var(--spacing) * 24)}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.grid-cols-\[minmax\(0\,1fr\)_4rem_auto\]{grid-template-columns:minmax(0,1fr) 4rem auto}.grid-cols-\[repeat\(auto-fill\,minmax\(6\.5rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(6rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(6rem,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-\[3px\]{gap:3px}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block:0}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-10>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 10) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 10) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-px>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(1px * var(--tw-space-y-reverse));margin-block-end:calc(1px * calc(1 - var(--tw-space-y-reverse)))}.gap-x-1{column-gap:var(--spacing)}.gap-x-1\.5{column-gap:calc(var(--spacing) * 1.5)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-base-200>:not(:last-child)){border-color:var(--color-base-200)}:where(.divide-base-300>:not(:last-child)){border-color:var(--color-base-300)}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-box{border-radius:var(--radius-box)}.rounded-field{border-radius:var(--radius-field)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-none{border-radius:0}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-base-200{border-color:var(--color-base-200)}.border-base-300{border-color:var(--color-base-300)}.border-error{border-color:var(--color-error)}.border-info\/40{border-color:var(--color-info)}@supports (color:color-mix(in lab, red, red)){.border-info\/40{border-color:color-mix(in oklab, var(--color-info) 40%, transparent)}}.border-primary\/40{border-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\/40{border-color:color-mix(in oklab, var(--color-primary) 40%, transparent)}}.border-success\/30{border-color:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.border-success\/30{border-color:color-mix(in oklab, var(--color-success) 30%, transparent)}}.border-warning,.border-warning\/30{border-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/30{border-color:color-mix(in oklab, var(--color-warning) 30%, transparent)}}.border-warning\/40{border-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/40{border-color:color-mix(in oklab, var(--color-warning) 40%, transparent)}}.border-warning\/50{border-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\/50{border-color:color-mix(in oklab, var(--color-warning) 50%, transparent)}}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/10{border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-\[var\(--surface\)\]{background-color:var(--surface)}.bg-accent{background-color:var(--color-accent)}.bg-base-100,.bg-base-100\/90{background-color:var(--color-base-100)}@supports (color:color-mix(in lab, red, red)){.bg-base-100\/90{background-color:color-mix(in oklab, var(--color-base-100) 90%, transparent)}}.bg-base-100\/95{background-color:var(--color-base-100)}@supports (color:color-mix(in lab, red, red)){.bg-base-100\/95{background-color:color-mix(in oklab, var(--color-base-100) 95%, transparent)}}.bg-base-200,.bg-base-200\/40{background-color:var(--color-base-200)}@supports (color:color-mix(in lab, red, red)){.bg-base-200\/40{background-color:color-mix(in oklab, var(--color-base-200) 40%, transparent)}}.bg-base-200\/60{background-color:var(--color-base-200)}@supports (color:color-mix(in lab, red, red)){.bg-base-200\/60{background-color:color-mix(in oklab, var(--color-base-200) 60%, transparent)}}.bg-base-200\/70{background-color:var(--color-base-200)}@supports (color:color-mix(in lab, red, red)){.bg-base-200\/70{background-color:color-mix(in oklab, var(--color-base-200) 70%, transparent)}}.bg-base-300{background-color:var(--color-base-300)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\/55{background-color:#0000008c}@supports (color:color-mix(in lab, red, red)){.bg-black\/55{background-color:color-mix(in oklab, var(--color-black) 55%, transparent)}}.bg-error,.bg-error\/5{background-color:var(--color-error)}@supports (color:color-mix(in lab, red, red)){.bg-error\/5{background-color:color-mix(in oklab, var(--color-error) 5%, transparent)}}.bg-info,.bg-info\/10{background-color:var(--color-info)}@supports (color:color-mix(in lab, red, red)){.bg-info\/10{background-color:color-mix(in oklab, var(--color-info) 10%, transparent)}}.bg-neutral\/50{background-color:var(--color-neutral)}@supports (color:color-mix(in lab, red, red)){.bg-neutral\/50{background-color:color-mix(in oklab, var(--color-neutral) 50%, transparent)}}.bg-neutral\/80{background-color:var(--color-neutral)}@supports (color:color-mix(in lab, red, red)){.bg-neutral\/80{background-color:color-mix(in oklab, var(--color-neutral) 80%, transparent)}}.bg-primary,.bg-primary\/5{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/5{background-color:color-mix(in oklab, var(--color-primary) 5%, transparent)}}.bg-primary\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--color-primary) 10%, transparent)}}.bg-primary\/30{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/30{background-color:color-mix(in oklab, var(--color-primary) 30%, transparent)}}.bg-primary\/50{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/50{background-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.bg-primary\/60{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/60{background-color:color-mix(in oklab, var(--color-primary) 60%, transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-success\/10{background-color:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.bg-success\/10{background-color:color-mix(in oklab, var(--color-success) 10%, transparent)}}.bg-success\/15{background-color:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.bg-success\/15{background-color:color-mix(in oklab, var(--color-success) 15%, transparent)}}.bg-transparent{background-color:#0000}.bg-warning,.bg-warning\/5{background-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/5{background-color:color-mix(in oklab, var(--color-warning) 5%, transparent)}}.bg-warning\/10{background-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/10{background-color:color-mix(in oklab, var(--color-warning) 10%, transparent)}}.bg-warning\/15{background-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/15{background-color:color-mix(in oklab, var(--color-warning) 15%, transparent)}}.bg-white{background-color:var(--color-white)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-center{object-position:center}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-\[var\(--cell-x\)\]{padding-inline:var(--cell-x)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-0{padding-top:0}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pr-12{padding-right:calc(var(--spacing) * 12)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pb-20{padding-bottom:calc(var(--spacing) * 20)}.pb-28{padding-bottom:calc(var(--spacing) * 28)}.pb-\[calc\(0\.625rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(.625rem + env(safe-area-inset-bottom))}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-\[-2px\]{vertical-align:-2px}.align-baseline{vertical-align:baseline}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.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)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-\[0\.42em\]{--tw-tracking:.42em;letter-spacing:.42em}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.text-base-content,.text-base-content\/60{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.text-base-content\/60{color:color-mix(in oklab, var(--color-base-content) 60%, transparent)}}.text-base-content\/70{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.text-base-content\/70{color:color-mix(in oklab, var(--color-base-content) 70%, transparent)}}.text-error{color:var(--color-error)}.text-error-content{color:var(--color-error-content)}.text-info{color:var(--color-info)}.text-primary{color:var(--color-primary)}.text-primary-content{color:var(--color-primary-content)}.text-secondary{color:var(--color-secondary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-warning-content{color:var(--color-warning-content)}.text-white{color:var(--color-white)}.text-white\/40{color:#fff6}@supports (color:color-mix(in lab, red, red)){.text-white\/40{color:color-mix(in oklab, var(--color-white) 40%, transparent)}}.text-white\/60{color:#fff9}@supports (color:color-mix(in lab, red, red)){.text-white\/60{color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + 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)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + 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)}.ring-primary{--tw-ring-color:var(--color-primary)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-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-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,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media (hover:hover){.group-hover\:opacity-60:is(:where(.group):hover *){opacity:.6}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-focus\:opacity-60:is(:where(.group):focus *){opacity:.6}.group-focus-visible\:opacity-100:is(:where(.group):focus-visible *){opacity:1}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.first-of-type\:border-t-0:first-of-type{border-top-style:var(--tw-border-style);border-top-width:0}.first-of-type\:pt-0:first-of-type{padding-top:0}@media (hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}@layer daisyui.l1.l2{.hover\:badge-outline:hover{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}.hover\:badge-primary:hover{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}}.hover\:border-primary:hover,.hover\:border-primary\/40:hover{border-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/40:hover{border-color:color-mix(in oklab, var(--color-primary) 40%, transparent)}}.hover\:border-primary\/50:hover{border-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.hover\:border-success\/40:hover{border-color:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.hover\:border-success\/40:hover{border-color:color-mix(in oklab, var(--color-success) 40%, transparent)}}.hover\:border-warning\/40:hover{border-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.hover\:border-warning\/40:hover{border-color:color-mix(in oklab, var(--color-warning) 40%, transparent)}}.hover\:bg-base-100:hover{background-color:var(--color-base-100)}.hover\:bg-base-200:hover{background-color:var(--color-base-200)}.hover\:bg-primary\/5:hover{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/5:hover{background-color:color-mix(in oklab, var(--color-primary) 5%, transparent)}}.hover\:bg-success\/20:hover{background-color:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-success\/20:hover{background-color:color-mix(in oklab, var(--color-success) 20%, transparent)}}.hover\:bg-warning\/20:hover{background-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-warning\/20:hover{background-color:color-mix(in oklab, var(--color-warning) 20%, transparent)}}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.hover\:text-base-content:hover{color:var(--color-base-content)}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:text-white:hover{color:var(--color-white)}.hover\:text-white\/70:hover{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.hover\:text-white\/70:hover{color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.hover\:underline:hover{text-decoration-line:underline}}.focus\:outline-2:focus{outline-style:var(--tw-outline-style);outline-width:2px}.focus\:outline-offset-\[-2px\]:focus{outline-offset:-2px}.focus\:outline-primary:focus{outline-color:var(--color-primary)}.focus-visible\:border-primary:focus-visible{border-color:var(--color-primary)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-primary:focus-visible{outline-color:var(--color-primary)}.has-checked\:opacity-100:has(:checked){opacity:1}.data-\[image-dropping\]\:bg-primary\/5[data-image-dropping]{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.data-\[image-dropping\]\:bg-primary\/5[data-image-dropping]{background-color:color-mix(in oklab, var(--color-primary) 5%, transparent)}}.data-\[image-dropping\]\:outline[data-image-dropping]{outline-style:var(--tw-outline-style);outline-width:1px}.data-\[image-dropping\]\:outline-2[data-image-dropping]{outline-style:var(--tw-outline-style);outline-width:2px}.data-\[image-dropping\]\:outline-offset-4[data-image-dropping]{outline-offset:4px}.data-\[image-dropping\]\:outline-primary[data-image-dropping]{outline-color:var(--color-primary)}.data-\[image-dropping\]\:outline-dashed[data-image-dropping]{--tw-outline-style:dashed;outline-style:dashed}@media (min-width:40rem){@layer daisyui.l1.l2.l3{.sm\:tooltip{--tt-bg:var(--color-neutral);--tt-off:calc(100% + .5rem);--tt-tail:calc(100% + 1px + .25rem);--tt-tail-off:.5rem;display:inline-block;position:relative}.sm\:tooltip>.tooltip-content,.sm\:tooltip[data-tip]:before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;position:absolute}.sm\:tooltip:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;-webkit-mask-position:-1px 0;mask-position:-1px 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--mask-tooltip);-webkit-mask-image:var(--mask-tooltip);mask-image:var(--mask-tooltip);display:block;position:absolute}@media (prefers-reduced-motion:no-preference){.sm\:tooltip>.tooltip-content,.sm\:tooltip[data-tip]:before,.sm\:tooltip:after{transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms}:is(.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}:is(.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content{opacity:1;--tt-pos:0rem}@media (prefers-reduced-motion:no-preference){:is(.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content,:is(.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before,:is(.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}:is(.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before{opacity:1;--tt-pos:0rem}@media (prefers-reduced-motion:no-preference){:is(.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before,:is(.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after,:is(.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}:is(.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{opacity:1;--tt-pos:0rem}@media (prefers-reduced-motion:no-preference){:is(.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.sm\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}.sm\:table{border-collapse:separate;--tw-border-spacing-x:0px;--tw-border-spacing-y:0px;width:100%;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);border-radius:var(--radius-box);text-align:left;font-size:.875rem;position:relative}.sm\:table:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}@media (hover:hover){:is(:is(.sm\:table tr.row-hover),.sm\:table tr.row-hover:nth-child(2n)):hover{background-color:var(--color-base-200)}}.sm\:table :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}.sm\:table :where(thead,tfoot){white-space:nowrap;color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.sm\:table :where(thead,tfoot){color:color-mix(in oklab, var(--color-base-content) 60%, transparent)}}.sm\:table :where(thead,tfoot){font-size:.875rem;font-weight:600}.sm\:table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.sm\:table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000)}}.sm\:table :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}.sm\:table :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}.sm\:table :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}.sm\:table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.sm\:table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000)}}}@layer daisyui.l1.l2{:is(.sm\:tooltip,.tooltip-top)>.tooltip-content,:is(.sm\:tooltip,.tooltip-top)[data-tip]:before{transform:translateX(var(--tt-trans,-50%)) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off) 50%}:is(.sm\:tooltip,.tooltip-top):after{transform:translateX(var(--tt-trans,-50%)) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail) 50%}.sm\:tooltip-bottom>.tooltip-content,.sm\:tooltip-bottom[data-tip]:before{transform:translateX(var(--tt-trans,-50%)) translateY(var(--tt-pos,-.25rem));inset:var(--tt-off) auto auto 50%}.sm\:tooltip-bottom:after{transform:translateX(var(--tt-trans,-50%)) translateY(var(--tt-pos,-.25rem)) rotate(180deg);inset:var(--tt-tail) auto auto 50%}.sm\:tooltip-left>.tooltip-content,.sm\:tooltip-left[data-tip]:before{transform:translateX(calc(var(--tt-pos,.25rem) - .25rem)) translateY(var(--tt-trans,-50%));left:auto;right:var(--tt-off);inset-block:var(--tt-inset,50% auto)}.sm\:tooltip-left:after{transform:translateX(var(--tt-pos,.25rem)) translateY(var(--tt-trans,-50%)) rotate(-90deg);left:auto;right:calc(var(--tt-tail) + 1px);inset-block:var(--tt-tail-inset,50% auto)}.sm\:modal-middle{place-items:center}.sm\:modal-middle>.modal-box{--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:91.6667%;max-width:32rem;height:auto;max-height:calc(100vh - 5em);translate:0 2%;scale:.98}.sm\:btn-md{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem) * 10)}}.sm\:not-sr-only{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.sm\:static{position:static}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:order-3{order:3}.sm\:order-4{order:4}.sm\:order-5{order:5}.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-3{grid-column:span 3/span 3}.sm\:-mx-6{margin-inline:calc(var(--spacing) * -6)}.sm\:mx-0{margin-inline:0}.sm\:ml-auto{margin-left:auto}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:table{display:table}.sm\:table-cell{display:table-cell}.sm\:h-5{height:calc(var(--spacing) * 5)}.sm\:w-5{width:calc(var(--spacing) * 5)}.sm\:w-24{width:calc(var(--spacing) * 24)}.sm\:w-28{width:calc(var(--spacing) * 28)}.sm\:w-44{width:calc(var(--spacing) * 44)}.sm\:w-48{width:calc(var(--spacing) * 48)}.sm\:w-72{width:calc(var(--spacing) * 72)}.sm\:w-auto{width:auto}.sm\:min-w-\[960px\]{min-width:960px}.sm\:min-w-\[1400px\]{min-width:1400px}.sm\:shrink-0{flex-shrink:0}.sm\:grow-0{flex-grow:0}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[minmax\(0\,1fr\)_4rem_auto\]{grid-template-columns:minmax(0,1fr) 4rem auto}.sm\:flex-row{flex-direction:row}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:calc(var(--spacing) * 2)}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:self-auto{align-self:auto}.sm\:rounded-box{border-radius:var(--radius-box)}.sm\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.sm\:border-base-200{border-color:var(--color-base-200)}.sm\:p-4{padding:calc(var(--spacing) * 4)}.sm\:p-5{padding:calc(var(--spacing) * 5)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:px-0{padding-inline:0}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:pt-0{padding-top:0}.sm\:pl-6{padding-left:calc(var(--spacing) * 6)}}@media (min-width:48rem){@layer daisyui.l1.l2.l3{.md\:drawer-open>.drawer-toggle:checked~.drawer-side{scrollbar-color:revert-layer}:root:has(.md\:drawer-open>.drawer-toggle:checked){--page-scroll-lock:revert-layer}.md\:tooltip{--tt-bg:var(--color-neutral);--tt-off:calc(100% + .5rem);--tt-tail:calc(100% + 1px + .25rem);--tt-tail-off:.5rem;display:inline-block;position:relative}.md\:tooltip>.tooltip-content,.md\:tooltip[data-tip]:before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;position:absolute}.md\:tooltip:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;-webkit-mask-position:-1px 0;mask-position:-1px 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--mask-tooltip);-webkit-mask-image:var(--mask-tooltip);mask-image:var(--mask-tooltip);display:block;position:absolute}@media (prefers-reduced-motion:no-preference){.md\:tooltip>.tooltip-content,.md\:tooltip[data-tip]:before,.md\:tooltip:after{transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms}:is(.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}:is(.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content{opacity:1;--tt-pos:0rem}@media (prefers-reduced-motion:no-preference){:is(.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content,:is(.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before,:is(.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}:is(.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before{opacity:1;--tt-pos:0rem}@media (prefers-reduced-motion:no-preference){:is(.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before,:is(.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after,:is(.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}:is(.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{opacity:1;--tt-pos:0rem}@media (prefers-reduced-motion:no-preference){:is(.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.md\:tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}}@layer daisyui.l1.l2{.md\:drawer-open>.drawer-side{overflow-y:auto}.md\:drawer-open>.drawer-toggle{display:none}.md\:drawer-open>.drawer-toggle~.drawer-side{pointer-events:auto;visibility:visible;overscroll-behavior:auto;opacity:1;width:auto;display:block;position:sticky}.md\:drawer-open>.drawer-toggle~.drawer-side>.drawer-overlay{cursor:default;background-color:#0000}.md\:drawer-open>.drawer-toggle:checked~.drawer-side{pointer-events:auto;visibility:visible}:is(.md\:tooltip,.tooltip-top)>.tooltip-content,:is(.md\:tooltip,.tooltip-top)[data-tip]:before{transform:translateX(var(--tt-trans,-50%)) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off) 50%}:is(.md\:tooltip,.tooltip-top):after{transform:translateX(var(--tt-trans,-50%)) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail) 50%}.md\:tooltip-bottom>.tooltip-content,.md\:tooltip-bottom[data-tip]:before{transform:translateX(var(--tt-trans,-50%)) translateY(var(--tt-pos,-.25rem));inset:var(--tt-off) auto auto 50%}.md\:tooltip-bottom:after{transform:translateX(var(--tt-trans,-50%)) translateY(var(--tt-pos,-.25rem)) rotate(180deg);inset:var(--tt-tail) auto auto 50%}.md\:input-sm{--in-size-mul:8;--font-size-min:.75rem;--spin-my:-2}.floating-label:has(.md\:input-sm){--top-mul:4;--font-size:.75rem}.md\:btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem) * 8)}}@layer daisyui.l1{.md\:drawer-open>.drawer-toggle~.drawer-side>:not(.drawer-overlay),[dir=rtl] :is(.md\:drawer-open>.drawer-toggle~.drawer-side>:not(.drawer-overlay)){translate:0%}}.md\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.md\:order-1{order:1}.md\:order-2{order:2}.md\:col-span-full{grid-column:1/-1}.md\:block{display:block}.md\:hidden{display:none}.md\:inline{display:inline}.md\:inline-flex{display:inline-flex}.md\:table-cell{display:table-cell}.md\:table-header-group{display:table-header-group}.md\:table-row{display:table-row}.md\:w-12{width:calc(var(--spacing) * 12)}.md\:w-16{width:calc(var(--spacing) * 16)}.md\:w-24{width:calc(var(--spacing) * 24)}.md\:w-32{width:calc(var(--spacing) * 32)}.md\:w-36{width:calc(var(--spacing) * 36)}.md\:w-40{width:calc(var(--spacing) * 40)}.md\:min-w-\[22rem\]{min-width:22rem}.md\:min-w-\[640px\]{min-width:640px}.md\:min-w-\[720px\]{min-width:720px}.md\:min-w-\[1100px\]{min-width:1100px}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[1\.1fr_0\.9fr\]{grid-template-columns:1.1fr .9fr}.md\:grid-cols-\[110px_140px_minmax\(0\,1\.2fr\)_minmax\(0\,1fr\)_40px\]{grid-template-columns:110px 140px minmax(0,1.2fr) minmax(0,1fr) 40px}.md\:grid-cols-\[minmax\(0\,320px\)_1fr\]{grid-template-columns:minmax(0,320px) 1fr}.md\:items-end{align-items:flex-end}.md\:gap-6{gap:calc(var(--spacing) * 6)}.md\:self-center{align-self:center}.md\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.md\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.md\:border-base-300{border-color:var(--color-base-300)}.md\:p-0{padding:0}.md\:p-6{padding:calc(var(--spacing) * 6)}.md\:px-8{padding-inline:calc(var(--spacing) * 8)}.md\:pb-0{padding-bottom:0}.md\:text-right{text-align:right}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.md\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.md\:font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}}@media (min-width:64rem){.lg\:static{position:static}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:mx-0{margin-inline:0}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:inline-flex{display:inline-flex}.lg\:table-cell{display:table-cell}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1fr\)_20rem\]{grid-template-columns:minmax(0,1fr) 20rem}.lg\:grid-cols-\[minmax\(0\,1fr\)_340px\]{grid-template-columns:minmax(0,1fr) 340px}.lg\:grid-cols-\[minmax\(0\,1fr\)_var\(--aside-w\)\]{grid-template-columns:minmax(0,1fr) var(--aside-w)}.lg\:items-end{align-items:flex-end}.lg\:items-start{align-items:flex-start}.lg\:gap-x-3{column-gap:calc(var(--spacing) * 3)}.lg\:px-0{padding-inline:0}.lg\:px-6{padding-inline:calc(var(--spacing) * 6)}.lg\:px-7{padding-inline:calc(var(--spacing) * 7)}.lg\:py-0{padding-block:0}.lg\:py-6{padding-block:calc(var(--spacing) * 6)}.lg\:opacity-0{opacity:0}.lg\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.lg\:group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.lg\:focus-within\:opacity-100:focus-within{opacity:1}}@media (min-width:80rem){.xl\:static{position:static}.xl\:sticky{position:sticky}.xl\:top-6{top:calc(var(--spacing) * 6)}.xl\:z-auto{z-index:auto}.xl\:mx-0{margin-inline:0}.xl\:mb-0{margin-bottom:0}.xl\:hidden{display:none}.xl\:max-h-none{max-height:none}.xl\:translate-y-0{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-\[minmax\(0\,1fr\)_22rem\]{grid-template-columns:minmax(0,1fr) 22rem}.xl\:grid-cols-\[minmax\(0\,1fr\)_24rem\]{grid-template-columns:minmax(0,1fr) 24rem}.xl\:overflow-visible{overflow:visible}.xl\:rounded-box{border-radius:var(--radius-box)}.xl\:px-0{padding-inline:0}.xl\:pb-0{padding-bottom:0}.xl\:transition-none{transition-property:none}@layer daisyui.l1.l2{.xl\:btn-xs{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem) * 6)}}}@media (min-width:96rem){.\32 xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}@keyframes dropdown{0%{opacity:0}}@keyframes aura{to{--aura-angle:360deg;transform:translateZ(1px)}}@keyframes aura-glow{20%,80%{opacity:.7;filter:blur(.25rem)}50%{opacity:1;filter:blur(.75rem)}}@keyframes aura-glow-after{20%,80%{opacity:.3;filter:blur(1rem)}50%{opacity:.6;filter:blur(1.5rem)}}@keyframes progress{50%{background-position-x:-115%}}@keyframes skeleton{0%{background-position:150%}to{background-position:-50%}}@keyframes rating{0%,40%{filter:brightness(1.05)contrast(1.05);scale:1.1}}@keyframes menu{0%{opacity:0}}@keyframes toast{0%{opacity:0;scale:.9}to{opacity:1;scale:1}}@keyframes rotator{89.9999%,to{--first-item-position:0 0%}90%,99.9999%{--first-item-position:0 calc(var(--items) * 100%)}to{translate:0 -100%}}@keyframes radio{0%{padding:5px}50%{padding:3px}}@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}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{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-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@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-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
/* ═══════════════════════════════════════════════════════════════════════════
   mamiru-hub — sistema visual "Instrumento"
   ───────────────────────────────────────────────────────────────────────────
   Un panel de operaciones no es una landing: la pantalla es un instrumento de
   medición. Las reglas que sostienen todo lo de abajo:

   1. Una sola línea. Los planos se separan con un hairline cálido y un
      escalón de tono, nunca con borde + sombra + radio grande a la vez. La
      sombra queda reservada a lo que flota de verdad (popover, modal, drag).
   2. Los números son el producto. Todo dígito va en cifras tabulares, la
      plata no se parte en dos líneas y las columnas numéricas alinean a la
      derecha para poder comparar de un vistazo.
   3. El color significa. Turquesa = acción y "estás acá". Ámbar = pide
      trabajo. Rojo = roto o por debajo del costo. Todo lo demás es tinta
      cálida. Un color que decora le roba fuerza a uno que avisa.
   4. Densidad por defecto. Escala de 4px, filas de datos compactas, y el
      chrome (padding, bordes, botones) nunca compite con el dato.
   5. Estados definidos una vez. Un anillo de foco, un hover, una barra de
      carga, una transición de 120ms. Nada se anima "para que se vea vivo".

   Orden del archivo: tokens → base → tipografía → superficies → tablas →
   controles → badges → navegación → estados → utilidades → parches legacy.
   Ver DESIGN_SYSTEM.md antes de agregar nada acá.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Tokens ───────────────────────────────────────────────────────────── */

:root {
  color-scheme: light;

  /* Superficies. Papel cálido, un escalón por plano.

     El fondo bajó un punto y medio de luminancia respecto de la primera
     edición: con base-100 a 98.2% contra el blanco de las cards el escalón
     de tono era de menos de un 2%, invisible en pantalla, y el hairline
     terminaba sosteniendo solo la separación entre planos. Ahora se ven
     tres planos: papel (app), blanco (card) y hundido (campo bloqueado). */
  --color-base-100: oklch(97% 0.006 85);
  --color-base-200: oklch(94.2% 0.010 80);
  --color-base-300: oklch(90.2% 0.013 78);
  --color-base-content: oklch(22% 0.012 70);

  --surface: oklch(100% 0 0);
  --surface-sunken: oklch(96.4% 0.008 82);
  --hairline: oklch(90.2% 0.013 78);
  --hairline-strong: oklch(85.5% 0.015 76);

  /* Tinta. Cuatro niveles, todos cálidos: el gris neutro sobre papel cálido
     se lee sucio. `--ink-3` reemplaza al viejo #6b6b6b suelto (.text-muted). */
  --ink-1: oklch(22% 0.012 70);
  --ink-2: oklch(41% 0.012 72);
  --ink-3: oklch(52% 0.011 74);
  --ink-4: oklch(65% 0.010 76);

  /* Marca. El turquesa bajó de 61% a 52% de luminancia: a 61% el blanco
     encima daba 3.4:1 —por debajo de AA para texto chico, y todos los
     botones primarios son texto chico— y sobre papel cálido se leía lavado.
     A 52% da 4.5:1 y, de paso, el verde se ve más profundo que brillante,
     que es lo que separa un panel cuidado de un template. */
  --color-primary: oklch(52% 0.118 170);
  --color-primary-content: oklch(100% 0 0);
  --primary-ink: oklch(41% 0.098 170);
  --primary-tint: oklch(96.8% 0.020 172);
  --primary-tint-strong: oklch(92.5% 0.042 172);

  --color-secondary: oklch(94.2% 0.010 80);
  --color-secondary-content: oklch(22% 0.012 70);

  --color-accent: oklch(46% 0.100 170);
  --color-accent-content: oklch(100% 0 0);

  --color-neutral: oklch(19% 0.010 68);
  --color-neutral-content: oklch(100% 0 0);

  /* Semánticos: cada familia con cuatro valores — el sólido, el tinte de
     fondo, el tinte fuerte (el que antes era el relleno saturado) y la tinta
     legible sobre los dos tintes. Ver § Badges: el único que se llena es el
     rojo. */
  --color-info: oklch(55% 0.13 240);
  --info-tint: oklch(96.5% 0.026 240);
  --info-tint-strong: oklch(91.5% 0.060 240);
  --info-ink: oklch(40% 0.115 245);

  --color-success: oklch(52% 0.135 152);
  --success-tint: oklch(96.5% 0.030 152);
  --success-tint-strong: oklch(91.5% 0.068 152);
  --success-ink: oklch(39% 0.098 153);

  --color-warning: oklch(70% 0.145 72);
  --warning-tint: oklch(96.5% 0.040 78);
  --warning-tint-strong: oklch(91% 0.080 80);
  --warning-ink: oklch(41% 0.105 62);

  --color-error: oklch(52% 0.195 27);
  --error-tint: oklch(96.5% 0.028 27);
  --error-tint-strong: oklch(92% 0.060 27);
  --error-ink: oklch(43% 0.155 27);

  --color-info-content: oklch(100% 0 0);
  --color-success-content: oklch(100% 0 0);
  --color-warning-content: oklch(100% 0 0);
  --color-error-content: oklch(100% 0 0);

  /* Mostaza: un pedido en curso que no es alerta (ver § Badges). */
  --mustard: oklch(64% 0.135 80);
  --mustard-tint: oklch(96% 0.045 84);
  --mustard-ink: oklch(40% 0.095 70);

  /* Radios coherentes. daisyUI v5 lee field/selector/box; antes solo estaba
     `box`, así que las cards salían de 12px y los botones de 4px por default
     del vendor — el desfase se veía en cada pantalla. */
  --radius-box: 0.625rem;
  --radius-field: 0.4375rem;
  --radius-selector: 0.375rem;
  --radius-btn: 0.4375rem;
  --radius-badge: 0.375rem;

  /* daisyUI: `--depth` es el falso relieve (sombra + inset) de botones e
     inputs, y `--noise` una textura encima. Los dos apagados: el relieve es
     lo que más envejece a un componente. */
  --depth: 0;
  --noise: 0;
  --border: 1px;

  /* Elevación. Cuatro niveles y ninguno decorativo: 0 lo que está pegado al
     papel, 1 la card (una sombra que no se ve como sombra, solo hace que el
     blanco flote un milímetro), 2 lo que se levanta al pasar el mouse, pop
     lo que flota de verdad (popover, modal, drawer). */
  --elev-0: none;
  --elev-1: 0 1px 2px -1px oklch(22% 0.012 70 / 0.07),
            0 1px 3px oklch(22% 0.012 70 / 0.035);
  --elev-2: 0 2px 4px -2px oklch(22% 0.012 70 / 0.08),
            0 6px 14px -6px oklch(22% 0.012 70 / 0.10);
  --elev-pop: 0 12px 30px -10px oklch(22% 0.012 70 / 0.22),
              0 2px 6px oklch(22% 0.012 70 / 0.07);

  /* Interacción. */
  --focus-ring: oklch(52% 0.118 170);
  --focus-ring-dark: oklch(78% 0.115 172);
  --row-hover: oklch(97.4% 0.013 172);
  --row-active: oklch(95% 0.028 172);
  --t-fast: 110ms;
  --t-base: 160ms;
  --ease: cubic-bezier(0.2, 0, 0.13, 1);

  /* Escala tipográfica. Antes los tamaños se escribían sueltos en cada
     pantalla (`text-sm`, `text-lg`, `text-[10px]`) y el título de pantalla
     terminaba a un solo paso del título de una card: el ojo no encontraba el
     nivel. Cinco pasos, nombrados por función y no por tamaño. */
  --fs-display: 1.625rem;
  --fs-title: 1.0625rem;
  --fs-section: 0.9375rem;
  --fs-body: 0.875rem;
  --fs-sm: 0.8125rem;
  --fs-xs: 0.75rem;
  --fs-label: 0.6875rem;

  /* Densidad. Escala de 4px; `--pad-*` es lo que respiran las superficies.
     Subió medio escalón respecto de la primera edición: cada pieza estaba en
     su mínimo a la vez y el conjunto se leía apretado aunque cada decisión
     por separado se defendiera. Lo que se gana de alto sale de sacar ruido
     (chevrons, columnas vacías, badges rellenos), no de agregar margen. */
  --pad-tight: 0.6875rem;
  --pad-card: 0.9375rem;
  --pad-roomy: 1.25rem;
  --cell-y: 0.5rem;
  --cell-x: 0.6875rem;

  /* Ancho máximo del contenido. En un monitor ancho una ficha de pedido
     estirada a 1900px deja la mitad de la pantalla vacía y obliga a barrer
     el ojo de punta a punta para leer una dirección. */
  --content-max: 102rem;
  --content-max-narrow: 74rem;

  --font-raleway: "Raleway", sans-serif;
  --font-inter: "Inter", sans-serif;
}

/* ── 2. Base ─────────────────────────────────────────────────────────────── */

body {
  font-family: var(--font-inter);
  /* Sin esto el texto sin clase cae en 16px y convive mal con el 14px de
     `text-sm`, que es el cuerpo real de la app. */
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--ink-1);
}

::selection {
  background: var(--primary-tint-strong);
  color: var(--primary-ink);
}

/* Un solo anillo de foco para toda la app. Sobre papel va el turquesa del
   sistema; sobre la tinta del sidebar ese mismo turquesa queda casi tan
   oscuro como el fondo, así que ahí entra la variante clara. Es la misma
   regla, no un segundo estilo de foco. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
  border-radius: var(--radius-selector);
}

.app-sidebar :where(a, button, input, summary, [tabindex]):focus-visible,
.modal-backdrop button:focus-visible {
  outline-color: var(--focus-ring-dark);
}

/* Scrollbars finas: en una pantalla densa la barra gruesa del sistema se lee
   como una columna más. */
* {
  scrollbar-width: thin;
  scrollbar-color: var(--hairline-strong) transparent;
}

::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}

::-webkit-scrollbar-thumb {
  background: var(--hairline-strong);
  border-radius: 9999px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

/* Saltar al contenido: primer tab de la página, invisible hasta que se usa. */
.skip-link {
  position: fixed;
  top: 0.5rem;
  left: 0.5rem;
  z-index: 100;
  padding: 0.5rem 0.875rem;
  border-radius: var(--radius-field);
  background: var(--color-neutral);
  color: var(--color-neutral-content);
  font-size: 0.8125rem;
  font-weight: 600;
  transform: translateY(-160%);
  transition: transform var(--t-base) ease;
}

.skip-link:focus-visible {
  transform: translateY(0);
}

/* ── 3. Tipografía ───────────────────────────────────────────────────────── */

/* Raleway solo en títulos, y con tracking cerrado: en display abierto se lee
   como logotipo, no como encabezado de pantalla. */
.font-raleway {
  letter-spacing: -0.012em;
}

/* Título de pantalla. Subió de 22 a 26px y de 600 a 650: a 22px estaba a un
   solo paso del título de una card (13px/600) y la pantalla arrancaba sin
   un ancla clara. Es el único lugar donde el tamaño hace todo el trabajo. */
.page-title {
  font-family: var(--font-raleway);
  font-size: var(--fs-display);
  font-weight: 650;
  line-height: 1.12;
  letter-spacing: -0.022em;
  color: var(--ink-1);
  text-wrap: balance;
}

/* Enlace "‹ Pedidos" sobre el título (mismo aspecto que el de orders/detail). */
.page-back {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin-bottom: 0.375rem;
  font-size: var(--fs-xs, 0.75rem);
  line-height: 1rem;
  color: var(--ink-3);
}

.page-back:hover {
  color: var(--ink-1);
}

.page-subtitle {
  font-size: var(--fs-sm);
  line-height: 1.45;
  color: var(--ink-3);
  max-width: 68ch;
}

/* Encabezado de sección: la línea que separa dos bloques de una pantalla.
   Ahora tiene su propio paso (15px) en vez de compartir el 13px del cuerpo
   secundario, así que un bloque nuevo se ve antes de leerse. */
.section-title {
  font-family: var(--font-inter);
  font-size: var(--fs-section);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.011em;
  color: var(--ink-1);
}

/* Título de panel o card: el paso de arriba de `.section-title`, para lo que
   encabeza una caja con contenido propio (Pedidos, Importes, Cliente). */
.panel-title {
  font-family: var(--font-inter);
  font-size: var(--fs-title);
  font-weight: 620;
  line-height: 1.3;
  letter-spacing: -0.014em;
  color: var(--ink-1);
}

/* Encabezado de card o panel. Antes estos usaban `.text-label`, o sea
   mayúsculas con tracking: sirve para etiquetar una cifra ("VENTAS"), pero
   "QUÉ LLEVA EL PEDIDO" es una oración, y una oración en mayúsculas se lee
   gritada y cuesta más de leer. Sentence case, un paso de peso sobre el
   cuerpo, y el ícono en tinta tenue para que no compita con las palabras. */
.card-head {
  display: flex;
  align-items: center;
  gap: 0.4375rem;
  font-size: var(--fs-sm);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.006em;
  color: var(--ink-2);
}

.card-head svg {
  color: var(--ink-4);
  flex-shrink: 0;
}

/* Micro-label: el único uso legítimo de mayúsculas + tracking. 11px/600, y
   nunca para texto que se lee de corrido. El tracking bajó de 0.055 a 0.045:
   a 0.055 las etiquetas de tres palabras se estiraban tanto que competían
   con la cifra que estaban etiquetando. */
.label-caps,
.text-label {
  font-size: var(--fs-label);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  color: var(--ink-3);
}

/* Los cuatro niveles de tinta como utilidades. `.text-muted` reemplaza al
   `text-[#6b6b6b]` que estaba escrito a mano en 70 templates. */
.text-strong { color: var(--ink-1); }
.text-secondary { color: var(--ink-2); }
.text-muted { color: var(--ink-3); }
.text-faint { color: var(--ink-4); }

/* Cifras tabulares: sin esto las columnas de plata bailan y comparar dos
   filas obliga a leer dígito por dígito. */
.tnum,
.table,
.badge,
.stat-value,
input[type="number"],
[data-dashboard-period-summary] {
  font-variant-numeric: tabular-nums;
}

/* La plata nunca se parte en dos líneas. */
.money {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

/* ── 4. Superficies ──────────────────────────────────────────────────────── */

/*
 * Sobre la cascada, porque decide cómo se escribe todo lo de acá abajo:
 * daisyUI vive en `@layer daisyui` y las utilidades de Tailwind en
 * `@layer utilities`. Este archivo es CSS sin capa, y el CSS sin capa le gana
 * a cualquier capa sin importar la especificidad. Es lo que hace que el
 * sistema alcance las 90 pantallas sin tocarlas una por una — y también lo
 * que obliga a la guarda de abajo.
 *
 * `:not([class^="bg-"]):not([class*=" bg-"])` = "pintá salvo que el template
 * pida otro fondo". Sin eso, una card que declara `bg-primary` a propósito
 * (el "Resultado neto" de /finance) terminaba blanca con texto blanco. La
 * guarda ignora las variantes (`hover:bg-…`), que no fijan el fondo base.
 */

/* Ancho máximo del contenido. Va en el layout (base.html) y no en cada
   pantalla: una ficha de pedido estirada a 1900px deja media pantalla vacía
   y obliga a barrer el ojo de punta a punta para leer una dirección. */
.page-shell {
  width: 100%;
  max-width: var(--content-max);
  margin-inline: auto;
}

.page-shell--narrow {
  max-width: var(--content-max-narrow);
}

/* Una card es un plano, no una caja decorada: hairline + radio chico + una
   sombra que no se ve como sombra. `--elev-1` es de un solo píxel: no está
   para dar relieve sino para que el blanco de la card despegue del papel
   cuando el hairline solo no alcanza (que era el caso en toda la app). La
   sombra de verdad sube cuando algo flota (.elevated). */
.card {
  border-width: 1px;
  border-style: solid;
  border-radius: var(--radius-box);
  box-shadow: var(--elev-1);
}

.card:not([class^="bg-"]):not([class*=" bg-"]) {
  background: var(--surface);
}

/* Misma guarda que el fondo: una card que declara `border-warning/40` a
   propósito (la de entregas atrasadas) se queda con su borde. */
.card:not([class^="border-"]):not([class*=" border-"]) {
  border-color: var(--hairline);
}

/* Los templates traen `shadow-sm` / `shadow-lg` / `shadow-xl` desde antes del
   sistema; se normalizan acá al nivel 1 en vez de tocar 93 archivos. Una card
   no elige su elevación: la elige el sistema. */
.card.shadow-sm,
.card.shadow,
.card.shadow-md,
.card.shadow-lg,
.card.shadow-xl {
  box-shadow: var(--elev-1);
}

.card.shadow-none {
  box-shadow: var(--elev-0);
}

.card.elevated {
  box-shadow: var(--elev-pop);
}

/* Remap de densidad: el padding lo declara cada template con utilidades de
   Tailwind (`p-4 sm:p-6`), y una escala suelta por pantalla es justo lo que
   hace sentir la app "armada de a pedazos". Estas reglas tienen más
   especificidad que las utilidades, así que fijan la escala sin reescribir
   los templates. `p-0`/`p-2` no se tocan: son intención explícita. */
.card > .card-body.p-3 { padding: var(--pad-tight); }
.card > .card-body.p-4 { padding: var(--pad-card); }
.card > .card-body.p-5 { padding: 1rem; }
.card > .card-body.p-6 { padding: var(--pad-roomy); }

/* Encabezado de pantalla: el título, su contexto y las acciones. El margen
   inferior subió de 12 a 20px — el título estaba pegado al primer bloque y
   la pantalla arrancaba sin respiro. */
.page-header {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  margin-bottom: 1.25rem;
}

@media (width >= 40rem) {
  .page-header {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
  }
}

/* La ficha del pedido con barra fija en el celular: en el encabezado solo queda
   el menú ⋯, que va en la fila del título, a la derecha. */
@media (width < 40rem) {
  .page-header:has(#order-actions[data-mobile-bar]) {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
  }
}

/* Toolbar: la tira de filtros de una pantalla de lista. No es una card —
   es chrome, y con el padding de una card se comía el alto de dos filas. */
.toolbar {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.6875rem 0.8125rem;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-box);
  box-shadow: var(--elev-1);
}


/* Una celda cuyo contenido es un solo chip no se recorta: el `overflow:
   hidden` que le da el ellipsis a las celdas de texto le comía el borde
   derecho al badge de margen y dejaba un "…" al lado de un chip completo. */
.table :where(tbody td):has(> .badge:only-child),
.table :where(tbody td):has(> .delta-chip:only-child) {
  overflow: visible;
  text-overflow: clip;
}

/* Encabezado de panel: título a la izquierda, acciones a la derecha,
   separado del cuerpo por la misma línea que usa la tabla. */
.panel-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.75rem 0.9375rem;
  border-bottom: 1px solid var(--hairline);
}

/* Tile de dato: la unidad del bloque de KPIs. Compacto a propósito: cuatro
   tiles tienen que entrar en una fila sin empujar la cola de trabajo abajo
   del fold. */
.stat-tile {
  display: flex;
  flex-direction: column;
  gap: 0.3125rem;
  min-width: 0;
  /* Alto parejo entre tiles de la misma fila: sin esto, el que lleva
     sparkline crece y el que no deja un escalón en la grilla — se veía en
     los cuatro KPIs de Inicio, sobre todo apilados de a dos en mobile. */
  height: 100%;
  padding: 0.75rem 0.875rem;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-box);
  box-shadow: var(--elev-1);
  transition: border-color var(--t-fast) var(--ease),
    background-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
}

a.stat-tile:hover {
  border-color: color-mix(in oklab, var(--color-primary) 45%, var(--hairline));
  background: var(--primary-tint);
  box-shadow: var(--elev-2);
}

/* El número va en Inter, no en Raleway: las cifras de Raleway tienen
   contraste y ojo pensados para display, y en tabular se desarman. */
.stat-value {
  font-family: var(--font-inter);
  font-size: 1.375rem;
  font-weight: 650;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--ink-1);
  white-space: nowrap;
}

/* Fila superior de un tile que lleva ícono: label a la izquierda, ícono a la
   derecha, en tinta tenue. El ícono nombra la métrica; no la colorea. Antes
   cada tile de /finance traía su propio disco de color (turquesa, tinta,
   ámbar) y los cuatro juntos leían como un semáforo en vez de como cuatro
   datos del mismo mes. */
.stat-tile__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.stat-tile__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  flex-shrink: 0;
  border-radius: var(--radius-field);
  background: var(--color-base-200);
  color: var(--ink-4);
}

.stat-tile--accent .stat-tile__icon {
  background: color-mix(in oklab, var(--color-primary) 14%, transparent);
  color: var(--primary-ink);
}

/* Fila del rótulo cuando el tile lleva ayuda. El gap es mucho más chico que
   el de la variante con ícono (§ .stat-tile__head): en mobile los cinco KPIs
   van de a dos por fila, el tile mide 145px y "Ganancia estimada" necesita
   128 — con 0.75rem de gap el rótulo se partía en dos renglones y estiraba la
   fila entera (los tiles van a `height: 100%`). */
.stat-tile__head--help {
  gap: 0.25rem;
}

/* Botón "i" de la tarjeta: abre la definición de la métrica. Va en tinta
   tenue y sin fondo porque no es una acción — es una nota al pie que espera
   a que la busquen. El área táctil es de 1.25rem con el ícono en 0.875, y el
   margen negativo la mete adentro del padding del tile: lo que le saca al
   rótulo son 16px, no 32. */
.stat-tile__help {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  margin: -0.125rem -0.5rem -0.125rem 0;
  flex-shrink: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--ink-4);
  cursor: pointer;
  transition: color var(--t-fast) var(--ease),
    background-color var(--t-fast) var(--ease);
}

.stat-tile__help:hover,
.stat-tile__help:focus-visible {
  background: var(--color-base-200);
  color: var(--ink-2);
}

/* Panel de la definición. Vive en el top layer (Popover API), así que las
   medidas van acá y no como utilidades sueltas: `[popover]` ya trae borde,
   fondo y elevación (ver § Menús y popovers más abajo). */
.metric-help {
  width: min(17rem, calc(100vw - 2rem));
  padding: 0.75rem;
  border: 1px solid var(--hairline);
  background: var(--surface);
  text-align: left;
  white-space: normal;
  text-transform: none;
  letter-spacing: normal;
}

.metric-help__title {
  font-size: 0.8125rem;
  font-weight: 650;
  color: var(--ink-1);
}

.metric-help__body {
  margin-top: 0.25rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--ink-2);
}

/* La cuenta, separada del texto por una línea fina: es lo que se mira
   primero cuando la pregunta es "de dónde sale este número". */
.metric-help__formula {
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--hairline);
  font-family: var(--font-inter);
  font-size: 0.75rem;
  line-height: 1.4;
  color: var(--ink-3);
}

/* Foto principal grande del encabezado de la ficha de producto. Cuadrada y
   del ancho de su columna: es la forma más rápida de reconocer una joya. Es un
   atajo al visor, así que reacciona al hover como un control, no como una
   imagen decorativa. */
.product-header-thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 100%;
  aspect-ratio: 1 / 1;
  padding: 0;
  overflow: hidden;
  cursor: pointer;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-field);
  background: var(--color-base-200);
  color: var(--ink-4);
  transition: border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
}

.product-header-thumb:hover,
.product-header-thumb:focus-visible {
  border-color: color-mix(in oklab, var(--color-primary) 45%, var(--hairline));
  box-shadow: var(--elev-1);
}

.product-header-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Ficha de producto, variante A: la foto grande va a la izquierda desde la
   tablet y arriba en el celular. En el celular la página deja lugar abajo para
   la barra fija de acciones (`data-product-mobile-bar`, que se oculta en lg). */
.product-detail-page {
  padding-bottom: 5rem;
}

.product-hero__photo {
  max-width: 20rem;
}

@media (min-width: 48rem) {
  .product-hero {
    flex-direction: row;
    align-items: flex-start;
  }

  .product-hero__photo {
    width: 15rem;
  }
}

@media (min-width: 64rem) {
  .product-detail-page {
    padding-bottom: 0;
  }
}

/* Miniaturas bajo la foto grande de la ficha: una por foto y un «＋» que lleva
   a la pestaña Fotos. La principal lleva el borde de color. */
.product-hero-mini {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  overflow: hidden;
  cursor: pointer;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-field);
  background: var(--color-base-200);
  color: var(--ink-3);
  transition: border-color var(--t-fast) var(--ease);
}

.product-hero-mini:hover,
.product-hero-mini:focus-visible {
  border-color: color-mix(in oklab, var(--color-primary) 45%, var(--hairline));
}

.product-hero-mini--main {
  border-color: var(--color-primary);
}

.product-hero-mini--add {
  border-style: dashed;
  background: transparent;
}

.product-hero-mini img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Fila de la cifra. Alto mínimo parejo: sin esto el número arranca a una
   altura distinta en cada tile de la misma fila, porque la fila mide lo que
   mide su contenido y el tile de stock lleva los botones −/+ en vez de sólo
   texto. Con `align-items: center` la cifra queda centrada en esa fila fija,
   así las cuatro se leen sobre la misma línea (ver los cuatro números de la
   ficha de producto). El `gap` lo pone cada tile: el de stock necesita uno
   más chico que el resto. */
.stat-tile__value-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  min-height: 1.75rem;
}

.stat-tile__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem 0.5rem;
  margin-top: auto;
  padding-top: 0.25rem;
  font-size: var(--fs-xs);
  color: var(--ink-3);
}

.stat-tile--accent {
  background: var(--primary-tint);
  border-color: color-mix(in oklab, var(--color-primary) 30%, var(--hairline));
}

.stat-tile--accent .stat-value {
  color: var(--primary-ink);
}

/* Contador que pide trabajo. El ámbar entra solo cuando hay algo pendiente:
   un cero en ámbar entrena a ignorar el ámbar. */
.stat-tile--alert {
  background: var(--warning-tint);
  border-color: color-mix(in oklab, var(--color-warning) 34%, transparent);
  color: var(--warning-ink);
}

.stat-tile--alert .text-label,
.stat-tile--alert .stat-value {
  color: var(--warning-ink);
}

a.stat-tile--alert:hover {
  background: color-mix(in oklab, var(--warning-tint), var(--color-warning) 8%);
  border-color: color-mix(in oklab, var(--color-warning) 50%, transparent);
}

/* Inicio variante A (04/11): «Cómo va el mes». Cinco tarjetas iguales, una
   línea con pedidos y unidades, y cuatro tarjetas chicas. En la compu van en
   fila; en el celular, de a dos. */
.month-panel {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.month-kpis,
/* Las cuatro chicas van en una sola franja gris clara, separadas por una
   línea (opción 2, elegida por el dueño el 04/11): se leen como contexto y no
   compiten con las cinco tarjetas blancas de arriba. Se usa base-200 y no
   --surface-sunken, que contra el fondo crema casi no se distingue. */
.month-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  background: var(--color-base-200);
  border-radius: var(--radius-box);
}

.month-fact:nth-child(even) {
  border-left: 1px solid var(--hairline);
}

.month-fact:nth-child(n + 3) {
  border-top: 1px solid var(--hairline);
}

@media (width >= 64rem) {
  .month-kpis {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .month-facts {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .month-fact:nth-child(n + 3) {
    border-top: 0;
  }

  .month-fact + .month-fact {
    border-left: 1px solid var(--hairline);
  }
}

.month-kpis__cell {
  display: flex;
  min-width: 0;
}

.month-kpis__cell > .stat-tile {
  flex: 1;
}

/* Ventas abre la fila: en el celular ocupa las dos columnas, así las otras
   cuatro quedan parejas de a dos. */
@media (width < 64rem) {
  .month-kpis__cell[data-month-kpi="ventas"] {
    grid-column: 1 / -1;
  }
}

.month-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.5rem;
  padding: 0.125rem 0.25rem;
  font-size: var(--fs-body);
}

.month-line__fact {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-variant-numeric: tabular-nums;
}

.month-line__fact strong {
  font-weight: 600;
  color: var(--ink-1);
}

.month-fact {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  min-width: 0;
  padding: 0.625rem 0.875rem;
}

.month-fact__label {
  overflow: hidden;
  font-size: var(--fs-label);
  color: var(--ink-3);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.month-fact__value {
  font-family: var(--font-inter);
  font-size: 1.0625rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--ink-1);
  white-space: nowrap;
}

.month-fact__detail {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
  font-size: var(--fs-label);
  font-variant-numeric: tabular-nums;
  color: var(--ink-3);
}

.month-fact__detail strong {
  font-weight: 600;
  color: var(--ink-1);
}

/* «Cómo vienen las ventas»: los tres gráficos, de a uno por fila en el
   celular y en tres columnas en la compu. */
.home-trends {
  display: grid;
  gap: 0.5rem;
}

@media (width >= 64rem) {
  .home-trends {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Lo que falta reponer, en una línea debajo de la bandeja. */
.supply-hint {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 1rem;
  padding: 0.5rem 0.25rem;
  font-size: var(--fs-body);
  color: var(--ink-3);
}

.supply-hint__title {
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.supply-hint__item {
  color: var(--ink-1);
  text-decoration: underline;
  text-decoration-color: var(--hairline);
  text-underline-offset: 0.2em;
}

.supply-hint__item:hover {
  text-decoration-color: var(--color-primary);
}

.supply-hint__item strong {
  font-weight: 650;
}

/* Bandeja de Inicio: tramos de pedidos. Cada fila tiene cinco zonas (quién y
   cuándo, qué lleva, dónde y cómo, plata, acciones) y se acomoda según el
   ancho de la lista (container query: el menú lateral se come ancho
   y el viewport no alcanza): tarjeta de tres líneas,
   de dos, o una fila fina de ~44 px cuando entra todo. */
.queue-chips {
  display: flex;
  gap: 0.375rem;
  overflow-x: auto;
  padding-bottom: 0.125rem;
  scrollbar-width: none;
}

.queue-chip {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  gap: 0.375rem;
  padding: 0.1875rem 0.625rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--ink-2);
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: 9999px;
}

.queue-chip:hover {
  background: var(--surface-sunken);
  color: var(--ink-1);
}

.queue-chip span {
  font-size: var(--fs-label);
  color: var(--ink-3);
}

.queue-chip--overdue {
  color: var(--error-ink);
  border-color: var(--error-ink);
}

.queue-section {
  scroll-margin-top: 4.5rem;
}

.queue-section__title {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  margin-bottom: 0.375rem;
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.queue-section--overdue .queue-section__title {
  color: var(--error-ink);
}

/* Reservas: esperan mercadería, no hay nada que hacerles. Se ven apagadas,
   como «En la calle», para que no compitan con el trabajo del día. */
.queue-section--reserved .queue-row {
  background: transparent;
  border-style: dashed;
  border-color: var(--hairline-strong);
  box-shadow: none;
}

.queue-section--reserved .queue-row__customer {
  color: var(--ink-2);
}

.queue-section__title .queue-stage__hint {
  letter-spacing: normal;
  text-transform: none;
}

.queue-section__rows {
  container-type: inline-size;
  display: flex;
  flex-direction: column;
  gap: 0.3125rem;
}

.queue-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "who actions"
    "money items"
    "where status";
  gap: 0.25rem 0.625rem;
  align-items: center;
  padding: 0.3125rem 0.625rem;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-box);
  box-shadow: var(--elev-1);
  color: inherit;
  cursor: pointer;
}

.queue-row:hover {
  background: var(--surface-sunken);
}

.queue-section--overdue .queue-row {
  border-color: var(--error-ink);
}

.queue-row__who {
  grid-area: who;
  min-width: 0;
}

.queue-row__customer {
  min-width: 0;
  overflow-wrap: anywhere;
  font-weight: 700;
  line-height: 1.2;
  color: var(--ink-1);
}

.queue-row__when {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  font-size: var(--fs-label);
  line-height: 1.2;
  color: var(--ink-3);
}

.queue-row__items {
  grid-area: items;
  display: flex;
  align-items: center;
  gap: 0.375rem;
  min-width: 0;
  overflow: hidden;
  cursor: default;
}

.queue-row__items > div {
  min-width: 0;
  flex-shrink: 1;
  overflow: hidden;
  /* Aire para el «×2» de la esquina, que sobresale 0.25rem. */
  padding: 0 0.25rem 0.25rem 0;
}

/* Foto de una línea: botón de 32 px; «×2» en la esquina si lleva más de una
   unidad. */
.queue-thumb {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
}

.queue-thumb__btn {
  display: block;
  width: 2rem;
  height: 2rem;
  overflow: hidden;
  padding: 0;
  background: var(--surface-sunken);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-field);
  cursor: zoom-in;
  transition: transform 0.12s ease-out;
}

.queue-thumb__btn:hover {
  transform: scale(1.12);
}

.queue-thumb__btn img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.queue-thumb__empty {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: var(--ink-4);
}

.queue-thumb__qty {
  position: absolute;
  right: -0.25rem;
  bottom: -0.25rem;
  padding: 0 0.25rem;
  font-size: 0.625rem;
  font-weight: 700;
  line-height: 1rem;
  color: var(--surface);
  background: var(--ink-1);
  border-radius: 9999px;
  pointer-events: none;
}

.queue-thumb__more {
  padding: 0 0.25rem;
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  color: var(--ink-3);
  background: none;
  border: 0;
  cursor: zoom-in;
}

.queue-row__where {
  grid-area: where;
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  gap: 0 0.375rem;
  min-width: 0;
  line-height: 1.25;
}

.queue-row__money {
  grid-area: money;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.0625rem 0.5rem;
}

.queue-row__money-meta {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.0625rem 0.375rem;
}

.queue-row__actions {
  grid-area: actions;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: 0.25rem;
}

.queue-row__status {
  grid-area: status;
  justify-self: end;
}

/* Compacta (Próximos días, Reservas): una línea, sin acciones. */
.queue-row--compact .queue-row__where {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.375rem;
}

.queue-row--compact {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "when money"
    "who who"
    "where where";
  padding: 0.375rem 0.625rem;
}

.queue-row--compact .queue-row__when {
  grid-area: when;
}

.queue-row--compact .queue-row__customer {
  grid-area: who;
}

/* Grupos dentro de «Hoy»: lo que falta armar se levanta (borde mostaza y
   sombra); lo que ya está en la calle se aplana (sin fondo, borde punteado,
   menos alto), porque ya no hay nada que armar, solo cerrarlo. */
.queue-stage__title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
  font-size: var(--fs-label);
  font-weight: 600;
  color: var(--ink-2);
}

.queue-stage__title:not(:first-child) {
  margin-top: 0.625rem;
}

.queue-stage__dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 9999px;
  background: var(--ink-4);
}

.queue-stage__hint {
  font-weight: 400;
  color: var(--ink-3);
}

.queue-stage__title--prepare {
  color: var(--mustard-ink);
}

.queue-stage__title--prepare .queue-stage__dot {
  background: var(--mustard);
}

.queue-stage__title--ready .queue-stage__dot {
  background: var(--color-warning);
}

.queue-stage__title--invoice .queue-stage__dot {
  background: var(--color-info);
}

.queue-row--stage-prepare {
  border-color: color-mix(in oklch, var(--mustard) 55%, transparent);
  box-shadow: var(--elev-2);
}

.queue-row--stage-road {
  background: transparent;
  border-style: dashed;
  border-color: var(--hairline-strong);
  box-shadow: none;
}

.queue-row--stage-road .queue-row__customer {
  color: var(--ink-2);
}

/* Celular (D393): el nombre entero en un renglón, el total a la izquierda y
   grande, las fotos a la derecha. Antes el total quedaba en la columna angosta
   y las fotos lo tapaban. */
@container (width < 34rem) {
  .queue-row__who > :first-child {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .queue-row__customer {
    overflow-wrap: normal;
  }

  .queue-row__total {
    font-size: 1rem;
    font-weight: 700;
  }

  .queue-row__items {
    justify-self: end;
  }
}

@container (width >= 34rem) {
  .queue-row {
    grid-template-columns: minmax(0, 1fr) 8rem 9rem;
    grid-template-areas:
      "who items actions"
      "where money status";
  }

  .queue-row__money {
    justify-content: flex-start;
  }

  .queue-row--compact {
    grid-template-columns: 8rem minmax(0, 1fr) auto;
    grid-template-areas:
      "when who money"
      "when where where";
  }
}

@container (width >= 47.5rem) {
  .queue-row {
    grid-template-columns:
      minmax(7.5rem, 1.2fr) 8rem minmax(6rem, 1fr) 7rem 8.5rem 7.25rem;
    grid-template-areas: "who items where money actions status";
    gap: 0.5rem;
    min-height: 2.75rem;
  }

  /* Dos líneas de ~15 px por zona: el total arriba y el cómo se pagó y si
     tiene factura abajo; la entrega arriba y la zona abajo. */
  .queue-row__money {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0.0625rem;
  }

  .queue-row__where {
    flex-direction: column;
    align-items: flex-start;
    flex-wrap: nowrap;
    gap: 0;
  }

  /* Cómo se pagó queda en el title del total: acá no hay lugar. Un «Pago
     pendiente» sí se ve, porque es trabajo. */
  .queue-row__pay {
    display: none;
  }

  .queue-row__status {
    justify-self: start;
  }

  .queue-row--compact {
    grid-template-columns: 9.5rem minmax(0, 1.4fr) minmax(0, 1fr) auto;
    grid-template-areas: "when who where money";
  }
}

/* Vista previa de las fotos de la cola (diálogo de dashboard.html). */
dialog.modal .modal-box.order-preview {
  width: min(48rem, 100vw - 2rem);
  max-width: none;
  overflow: hidden;
}

.order-preview [hidden] {
  display: none !important;
}

.order-preview__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

@media (width < 40rem) {
  dialog.modal .modal-box.order-preview {
    width: 100%;
  }
}

@media (width >= 40rem) {
  .order-preview__body {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  }
}

.order-preview__photo {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1;
  max-height: 55vh;
  width: 100%;
  background: var(--surface-sunken);
}

.order-preview__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.order-preview__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  color: var(--ink-3);
}

.order-preview__nav {
  position: absolute;
  z-index: 2;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.125rem;
}

.order-preview__nav--prev {
  left: 0.5rem;
}

.order-preview__nav--next {
  right: 0.5rem;
}

.order-preview__info {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 1rem;
}

.order-preview__title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--ink-1);
}

.order-preview__price {
  font-size: 1rem;
  font-weight: 600;
}

.order-preview__in-order {
  padding: 0.375rem 0.625rem;
  font-size: 0.875rem;
  background: var(--surface-sunken);
  border-radius: var(--radius-field);
}

.order-preview__facts {
  display: grid;
  gap: 0.25rem;
  font-size: 0.875rem;
}

.order-preview__facts > div {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  border-bottom: 1px solid var(--hairline);
  padding-bottom: 0.25rem;
}

.order-preview__facts dt {
  color: var(--ink-3);
}

.order-preview__facts dd {
  font-weight: 500;
  text-align: right;
}

.order-preview__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.5rem 1rem 0.75rem;
  border-top: 1px solid var(--hairline);
}

.order-preview__strip {
  display: flex;
  gap: 0.375rem;
  overflow-x: auto;
  min-width: 0;
}

.order-preview__thumb {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  overflow: hidden;
  padding: 0;
  background: var(--surface-sunken);
  border: 2px solid transparent;
  border-radius: var(--radius-field);
  opacity: 0.7;
}

.order-preview__thumb[aria-selected="true"] {
  border-color: var(--primary-ink);
  opacity: 1;
}

.order-preview__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Arriba de la lista de pedidos (/orders): período, sus números y la bandeja
   "Necesitan algo". En el celular el período se desliza de costado y los
   números van de a dos; en la compu, los cuatro en una fila. */
.orders-overview {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.period-seg {
  display: flex;
  max-width: 100%;
  width: max-content;
  overflow-x: auto;
  scrollbar-width: none;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-field);
}

.period-seg::-webkit-scrollbar {
  display: none;
}

.period-seg__item {
  flex: none;
  padding: 0.375rem 0.75rem;
  font-size: 0.8125rem;
  color: var(--ink-2);
  white-space: nowrap;
  border-right: 1px solid var(--hairline);
  transition: background-color var(--t-fast) var(--ease);
}

.period-seg__item:last-child {
  border-right: 0;
}

.period-seg__item:hover {
  background: var(--surface-sunken);
}

.period-seg__item--active,
.period-seg__item--active:hover {
  background: var(--ink-1);
  color: var(--surface);
  font-weight: 600;
}

.orders-kpis {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.625rem;
}

/* "Necesita atención" ocupa la fila entera en el celular: lleva dos líneas
   con monto y antigüedad, no entra en media columna. */
.orders-attention {
  grid-column: 1 / -1;
}

@media (width >= 64rem) {
  .orders-kpis {
    grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.25fr);
  }

  .orders-attention {
    grid-column: auto;
  }
}

.orders-kpis__delta {
  font-weight: 600;
  color: var(--success-ink);
}

.orders-kpis__delta--down {
  color: var(--error-ink);
}

.orders-attention__item {
  display: flex;
  flex-direction: column;
  gap: 0.0625rem;
  padding: 0.1875rem 0;
  color: var(--warning-ink);
}

.orders-attention__item + .orders-attention__item {
  border-top: 1px solid color-mix(in oklab, var(--color-warning) 22%, transparent);
}

.orders-attention__item:hover .orders-attention__head > span:first-child {
  text-decoration: underline;
}

.orders-attention__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
}

.orders-attention__amount {
  font-family: var(--font-inter);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.orders-attention__age {
  font-size: var(--fs-xs);
}

/* Bandeja: lo que espera un paso, del más viejo. Un botón por fila hace ese
   paso sin entrar al pedido. */
.needs-action {
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-box);
  box-shadow: var(--elev-1);
  overflow: hidden;
}

.needs-action__head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.25rem 0.75rem;
  padding: 0.5625rem 0.875rem;
  font-size: 0.8125rem;
  background: var(--warning-tint);
  border-bottom: 1px solid var(--hairline);
  color: var(--warning-ink);
}

.needs-action__head .text-muted {
  color: var(--warning-ink);
}

.needs-action__list {
  display: flex;
  flex-direction: column;
}

.needs-action__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.5rem 0.875rem;
  border-bottom: 1px solid var(--hairline);
}

.needs-action__row:last-child {
  border-bottom: 0;
}

.needs-action__main {
  display: flex;
  flex-direction: column;
  gap: 0.0625rem;
  min-width: 0;
}

.needs-action__main:hover .font-semibold {
  text-decoration: underline;
}

.needs-action__title {
  display: flex;
  flex-wrap: wrap;
  gap: 0 0.375rem;
  font-size: 0.875rem;
}

.needs-action__meta {
  font-size: var(--fs-xs);
  color: var(--ink-3);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.needs-action__days {
  font-family: var(--font-inter);
  font-size: var(--fs-xs);
  font-variant-numeric: tabular-nums;
  color: var(--ink-3);
  white-space: nowrap;
}

.needs-action__days--late {
  color: var(--warning-ink);
  font-weight: 600;
}

.needs-action__more {
  display: block;
  padding: 0.5rem 0.875rem;
  border-top: 1px solid var(--hairline);
}

/* En el celular el botón baja abajo del pedido, a todo el ancho: un dedo lo
   encuentra sin apuntar. */
@media (width < 40rem) {
  .needs-action__row {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .needs-action__row > form,
  .needs-action__row > .btn {
    grid-column: 1 / -1;
  }

  .needs-action__row > form .btn,
  .needs-action__row > .btn {
    width: 100%;
  }
}

/* Encabezado de cada día dentro de la lista: la fecha y lo que sumó. */
.order-day {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
  margin-top: 0.5rem;
  padding: 0 0.25rem;
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--ink-3);
}

.order-row--head + .order-day {
  margin-top: 0;
}

.order-day__label::first-letter {
  text-transform: uppercase;
}

.order-day__total {
  font-family: var(--font-inter);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

/* Archivo de pedidos (/orders): una marca para todos los anchos. Debajo de
   60rem de ancho de la lista cada pedido es una tarjeta; arriba, una fila de
   tabla con encabezado. Mismo enfoque de container query que .queue-row. */
.orders-list {
  container-type: inline-size;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}


.order-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  grid-template-areas:
    "customer total menu"
    "ident ident margin"
    "where where where"
    "status invoice invoice";
  gap: 0.375rem 0.75rem;
  align-items: center;
  padding: 0.75rem 0.875rem;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-box);
  box-shadow: var(--elev-1);
  cursor: pointer;
}

.order-row:hover {
  background: var(--surface-sunken);
}

/* Lista de reservas: sin entrega, margen ni factura; en su lugar, cuántas
   piezas ya están apartadas. */
.order-row--reservations {
  grid-template-areas:
    "customer total menu"
    "ident ident ident"
    "holds holds holds"
    "status status status";
}

.order-row__holds {
  grid-area: holds;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}

.order-row__holds-long {
  display: none;
}

.order-row--reservations .order-row__where,
.order-row--reservations .order-row__margin,
.order-row--reservations .order-row__invoice {
  display: none;
}

.order-row.order-row--head {
  display: none;
}

.order-row__ident {
  grid-area: ident;
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  font-size: var(--fs-label);
  color: var(--ink-3);
}

.order-row__when {
  display: flex;
  align-items: baseline;
  gap: 0.375rem;
  min-width: 0;
}

.order-row__customer {
  grid-area: customer;
  min-width: 0;
}

.order-row__customer-link {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 700;
  color: var(--ink-1);
}

.order-row__customer-link:hover {
  text-decoration: underline;
}

.order-row__where {
  grid-area: where;
  display: flex;
  align-items: center;
  gap: 0.375rem;
  min-width: 0;
  font-size: 0.875rem;
}

.order-row__total {
  grid-area: total;
  justify-self: end;
  white-space: nowrap;
}

.order-row__margin {
  grid-area: margin;
  justify-self: end;
  white-space: nowrap;
}

.order-row__status {
  grid-area: status;
  justify-self: start;
}

.order-row__invoice {
  grid-area: invoice;
  justify-self: end;
}

.order-row__menu {
  grid-area: menu;
  min-width: 1.5rem;
}

/* 60rem = una pantalla de 1280 px con el menú abierto: una laptop común ve la
   tabla, no las tarjetas. Los mínimos de abajo suman ~59rem. */
@container (width >= 60rem) {
  .order-row {
    grid-template-columns:
      3.5rem 5.5rem minmax(7rem, 1.5fr) minmax(7rem, 1.2fr)
      7.5rem 4.5rem 8rem 7.5rem 2rem;
    grid-template-areas: "num when customer where total margin status invoice menu";
    gap: 0.6rem;
    padding: 0.625rem 0.875rem;
  }

  .order-row--reservations {
    grid-template-columns: 3.5rem minmax(9rem, 1.5fr) 8rem minmax(10rem, 1.2fr) 7.5rem 2rem;
    grid-template-areas: "num customer status holds total menu";
  }

  .order-row--reservations .order-row__when {
    display: none;
  }

  .order-row__holds-long {
    display: inline;
  }

  .order-row__holds-short {
    display: none;
  }

  .order-row__ident {
    display: contents;
  }

  .order-row__num {
    grid-area: num;
  }

  .order-row__when {
    grid-area: when;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    font-size: 0.875rem;
    color: var(--ink-1);
  }

  .order-row__invoice {
    justify-self: start;
  }

  /* En la tabla la zona va debajo del tipo, como la fecha: en una línea se
     cortaba ("Villa …") a 1280 px. */
  .order-row__where {
    flex-wrap: wrap;
    row-gap: 0;
  }

  .order-row__place {
    flex-basis: 100%;
    padding-left: 1.375rem;
    font-size: 0.8125rem;
  }

  .order-row__margin-label {
    display: none;
  }

  .order-row.order-row--head {
    display: grid;
    padding-block: 0.25rem;
    background: none;
    border: 0;
    box-shadow: none;
    cursor: default;
    font-size: var(--fs-label);
    font-weight: 600;
    letter-spacing: 0.045em;
    text-transform: uppercase;
    color: var(--ink-3);
  }

  .order-row--head:hover {
    background: none;
  }

  .order-row--head > span {
    display: block;
    font-size: inherit;
    color: inherit;
  }

  .order-row--head .order-row__total,
  .order-row--head .order-row__margin {
    text-align: right;
  }
}

/* Estado vacío: mismo objeto en toda la app, sin ilustración ni copy de
   marketing — pero con estructura. Antes era una línea gris suelta en el
   medio de una caja blanca de 300px de alto, y una pantalla en limpio
   (/quote, una búsqueda sin resultados) se veía rota en vez de vacía. Ahora
   lleva un disco con el ícono de la sección, un título, una pista y lugar
   para la acción que saca del vacío. */
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  padding: 2.25rem 1.25rem;
  text-align: center;
  color: var(--ink-3);
}

.empty-state__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  margin-bottom: 0.375rem;
  border-radius: 9999px;
  background: var(--color-base-200);
  color: var(--ink-4);
}

.empty-state__title {
  font-size: var(--fs-body);
  font-weight: 600;
  color: var(--ink-2);
}

.empty-state__hint {
  font-size: var(--fs-xs);
  line-height: 1.5;
  color: var(--ink-3);
  max-width: 44ch;
}

/* Cuando el vacío ocupa el cuerpo de una card o el lugar de una tabla, la
   caja no puede quedar de 300px con una línea en el medio. */
.empty-state--panel {
  min-height: 11rem;
}

/* Nota de vacío adentro de una card que ya tiene su rótulo: sin el disco del
   ícono (sería un segundo título) y con la mitad del aire. */
.empty-state--compact {
  padding: 1rem 0.75rem;
  gap: 0.25rem;
}

.empty-state--compact .empty-state__icon {
  display: none;
}

/* ── 5. Tablas ───────────────────────────────────────────────────────────── */

/* La tabla es el corazón de la app: acá se decide si se puede escanear 40
   filas o hay que leerlas. Reglas: header hairline en minúscula-caps, filas
   separadas por una línea (no por zebra), celdas de una sola línea con
   ellipsis, números a la derecha. */
.table {
  border-collapse: separate;
  border-spacing: 0;
  /* El color va acá y no en la celda: heredado, cualquier `text-*` que el
     template ponga en un `td` sigue mandando. */
  color: var(--ink-1);
}

.table :where(thead th):not([class^="bg-"]):not([class*=" bg-"]) {
  background: var(--surface);
}

.table :where(thead th) {
  position: relative;
  padding: 0.5rem var(--cell-x);
  border-bottom: 1px solid var(--hairline-strong);
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-3);
  white-space: nowrap;
}

.table :where(tbody td) {
  padding: var(--cell-y) var(--cell-x);
  border-bottom: 1px solid color-mix(in oklab, var(--hairline) 70%, transparent);
  vertical-align: middle;
  /* Una fila de datos es una línea. Lo que no entra se corta con ellipsis:
     el wrap silencioso hacía que la plata quedara partida en dos renglones y
     que dos filas iguales midieran distinto. */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Las celdas que sí arman un bloque (nombre + material + badges de compra)
   se salen de la regla declarando `data-cell-stack`. */
.table :where(tbody td)[data-cell-stack] {
  white-space: normal;
  overflow: visible;
}

/* Una tabla con `data-table-cards` se arma como tarjetas en el celular: en
   vez de scrollear de costado ocho columnas, cada fila muestra lo que decide
   (producto, motivo, uno o dos números) y sus botones. Las celdas se marcan
   con `data-card`: main (ocupa toda la fila), badge, stat (con su rótulo en
   `data-label`, en una línea con el siguiente), actions (a la derecha) y hide.
   En la compu la tabla no cambia. */
@media (width < 48rem) {
  .table[data-table-cards],
  .table[data-table-cards] tbody {
    display: block;
  }
  .table[data-table-cards] thead {
    display: none;
  }
  .table[data-table-cards] tbody tr {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.375rem 0.5rem;
    padding: 0.75rem;
    margin-bottom: 0.5rem;
    border: 1px solid var(--hairline);
    border-radius: var(--radius-box, 0.5rem);
  }
  .table[data-table-cards] tbody td {
    display: block;
    padding: 0;
    border: 0;
    white-space: normal;
    overflow: visible;
    text-align: left;
  }
  .table[data-table-cards] td[data-card="main"],
  .table[data-table-cards] td[data-card="badge"] {
    flex-basis: 100%;
  }
  .table[data-table-cards] td[data-card="hide"] {
    display: none;
  }
  .table[data-table-cards] td[data-card="stat"] {
    font-size: 0.8125rem;
  }
  /* La sub-línea (base tachada, unidades, embudo) queda para la compu: en la
     tarjeta los números van en una sola línea. */
  .table[data-table-cards] td[data-card="stat"] > div:not(:first-child) {
    display: none;
  }
  .table[data-table-cards] td[data-card="stat"] > * {
    display: inline;
  }
  .table[data-table-cards] td[data-card="stat"]::before {
    content: attr(data-label) " ";
    color: var(--ink-3);
  }
  .table[data-table-cards] td[data-card="stat"] + td[data-card="stat"]::before {
    content: "· " attr(data-label) " ";
  }
  .table[data-table-cards] td[data-card="actions"] {
    margin-left: auto;
  }
}

/* La celda de "Producto" lleva la foto a sangre: sin esto el padding
   estándar de la celda le deja un borde de 10px alrededor y la imagen no
   llega a los 76px de alto que fija la fila. El texto de al lado recupera su
   propio padding con clases de Tailwind adentro del `<td>`. */
.table :where(tbody td)[data-cell-photo] {
  padding: 0;
}

/* Una celda que contiene un menú no lo puede recortar. El `overflow: hidden`
   de arriba (el que da el ellipsis) le comía el desplegable de estado a las
   filas de /orders: se abría y se veía una franja de 4px. Los menús que
   además tienen que escapar del `overflow-x-auto` de la tabla viven en el
   top layer (ver § El Menú De Una Fila Va En El Top Layer); esta regla es la
   red de seguridad para cualquier otro contenido posicionado en una celda. */
.table :where(tbody td):has(:is(.dropdown, [popover], .dropdown-content, [role="listbox"], [role="menu"])) {
  overflow: visible;
}

.table :where(tbody tr:last-child td) {
  border-bottom: 0;
}

/* Zebra fuera: sobre blanco no aportaba separación (las filas pares ya eran
   blancas) y sumaba una segunda señal encima del hover. */
.table-zebra tbody tr:nth-child(even) {
  background: transparent;
}

.table tbody tr:hover {
  background: var(--row-hover);
}

/* Columnas fijas a la derecha cuando la tabla de una compra scrollea con el
   desglose de costos abierto. Van acá y no con utilidades de Tailwind: el
   `position: relative` del encabezado no tiene capa y les ganaría. El fondo
   es opaco para que lo que pasa por debajo no se lea mezclado. */
@media (min-width: 768px) {
  .table [data-pinned-cost] {
    position: sticky;
    right: 0;
    z-index: 1;
    background: var(--surface);
  }

  .table [data-pinned-cost="total"] {
    right: 5rem;
  }

  .table tbody tr:hover [data-pinned-cost] {
    background: color-mix(in oklab, var(--row-hover), var(--surface));
  }
}

/* Fila clickeable: además del tinte, una barra turquesa de 2px en el borde
   izquierdo. Es la señal más barata de "esto se abre" y no mueve nada de
   lugar. */
[data-row-link] {
  cursor: pointer;
  transition: background-color var(--t-fast) ease, border-color var(--t-fast) ease,
    box-shadow var(--t-fast) ease;
}

tr[data-row-link]:is(:hover, :focus-visible) td {
  background: var(--row-hover);
}

tr[data-row-link]:is(:hover, :focus-visible) td:first-child {
  box-shadow: inset 2px 0 0 var(--color-primary);
}

tr[data-row-link]:focus-visible {
  outline: none;
}

tr[data-row-link]:focus-visible td {
  background: var(--row-active);
}

/* La card de mobile del mismo listado: mismo lenguaje, sin el "levantarse"
   con sombra y translate que tenía antes. */
:is(div, li)[data-row-link]:is(:hover, :focus-visible) {
  background: var(--primary-tint);
  border-color: color-mix(in oklab, var(--color-primary) 45%, var(--hairline));
}

/* Columnas numéricas: tabular + derecha. `.text-right` ya lo declaran varios
   templates; esto asegura el resto. */
.table td.num,
.table th.num,
.table td.text-right,
.table th.text-right {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

/* Encabezado ordenable: el padding lo pone el link, no la celda. El `p-0`
   que traía el template no llegaba a aplicarse — es una utilidad de Tailwind
   (vive en @layer) y la regla de arriba es CSS sin capa, así que la celda se
   quedaba con sus 11px y el link sumaba los suyos: el rótulo tenía 22px menos
   de ancho útil que la columna y "ROTACIÓN" se desbordaba sobre la columna de
   al lado (dos rótulos pegados, imposible saber qué número era de cuál).
   `--cell-x` y no `px-2.5`: así el rótulo queda a plomo con los números de
   las celdas de abajo. */
.table :where(thead th)[data-sort-cell] {
  padding: 0;
}

/* Encabezado ordenable: la flecha no debe empujar el label. El indicador
   inactivo baja a `--ink-4` y solo sube a tinta plena en hover o cuando esa
   columna es la que ordena — diez chevrons a media tinta en la cabecera de
   /products eran una fila de ruido permanente sobre la fila que importa. */
.table thead th a {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  color: inherit;
  transition: color var(--t-fast) var(--ease);
}

.table thead th a:hover {
  color: var(--ink-1);
}

.table thead th a svg {
  color: var(--ink-4);
  opacity: 0.55;
  transition: opacity var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.table thead th a:hover svg,
.table thead th[aria-sort] a svg {
  opacity: 1;
  color: var(--ink-2);
}

/* ── El scroll horizontal se anuncia ──────────────────────────────────────
 *
 * Ver `tableScrollHints()` en app.js para el porqué de cada pieza. Acá va solo
 * el efecto: el borde derecho se desvanece mientras quede tabla a la derecha,
 * y se apaga al llegar al final.
 *
 * `mask-image` y no una sombra de fondo: las celdas pintan su propio blanco y
 * taparían cualquier cosa que se dibuje detrás.
 */
.table-scroll,
.overflow-x-auto:has(> .table),
.overflow-x-auto:has(> form > .table) {
  position: relative;
  overflow-x: auto;
  overscroll-behavior-x: contain;
}

[data-scroll-more] {
  mask-image: linear-gradient(to right, #000 calc(100% - 3rem), transparent);
}

/* ── 6. Controles ────────────────────────────────────────────────────────── */

/* Tres pesos de botón y nada más: primario (la acción de la pantalla),
   contorno (todo lo demás que es un botón) y fantasma (lo que es casi un
   link). El cuarto peso, el destructivo, es una variante del contorno. */
.btn {
  font-weight: 600;
  letter-spacing: -0.003em;
  transition: background-color var(--t-fast) var(--ease),
    border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease),
    box-shadow var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}

.btn:active:not(:disabled) {
  transform: translateY(0.5px);
}

.btn-primary:not(:disabled) {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-primary-content);
  box-shadow: var(--elev-1);
}

.btn-primary:not(:disabled):hover {
  background: color-mix(in oklab, var(--color-primary) 88%, oklch(0% 0 0));
  border-color: color-mix(in oklab, var(--color-primary) 88%, oklch(0% 0 0));
}

/* El ghost sin fondo se pierde entre el texto; con el tinte cálido en hover
   queda claro que es un control. */
.btn-ghost {
  color: var(--ink-2);
}

.btn-ghost:hover {
  background: var(--color-base-200);
  color: var(--ink-1);
}

/* El contorno neutro es el default, pero NO puede pisar a las variantes
   semánticas: este archivo es CSS sin capa y le gana a daisyUI, así que un
   `.btn-outline` a secas dejaba a "Eliminar" (`btn-error btn-outline`) con
   exactamente la misma pinta que "Editar". Un botón de borrar que se ve igual
   que uno de editar invita a borrar cosas por error. */
.btn-outline:not(.btn-error, .btn-warning, .btn-success, .btn-primary, .btn-info) {
  border-color: var(--hairline-strong);
  color: var(--ink-1);
  background: var(--surface);
  box-shadow: var(--elev-1);
}

.btn-outline:not(.btn-error, .btn-warning, .btn-success, .btn-primary, .btn-info):hover {
  background: var(--color-base-200);
  border-color: var(--ink-4);
  color: var(--ink-1);
}

/* Variantes semánticas del contorno: tinta y borde del color, fondo de la
   superficie. Al pasar el mouse se llenan, que es donde el color pasa de
   "esto es de este tipo" a "estás por hacerlo". */
.btn-error.btn-outline:not(:disabled) {
  background: var(--surface);
  border-color: color-mix(in oklab, var(--color-error) 45%, transparent);
  color: var(--error-ink);
  box-shadow: var(--elev-1);
}

.btn-error.btn-outline:not(:disabled):hover {
  background: var(--color-error);
  border-color: var(--color-error);
  color: oklch(100% 0 0);
}

/* El ámbar lleno es la última pieza de la regla "solo el rojo se llena": el
   botón "Separar variantes" de una compra era un bloque naranja saturado
   adentro de un alert que ya avisaba en ámbar, así que el aviso y su acción
   competían entre sí. Ahora la acción es un botón de contorno ámbar que se
   llena al pasar el mouse: sigue siendo la acción de ese aviso, sin gritarle
   por encima. */
.btn-warning:not(:disabled) {
  background: var(--surface);
  border-color: color-mix(in oklab, var(--color-warning) 55%, transparent);
  color: var(--warning-ink);
  box-shadow: var(--elev-1);
}

.btn-warning:not(:disabled):hover {
  background: var(--warning-tint-strong);
  border-color: var(--color-warning);
  color: var(--warning-ink);
}

.btn-primary.btn-outline:not(:disabled) {
  background: var(--surface);
  border-color: color-mix(in oklab, var(--color-primary) 45%, transparent);
  color: var(--primary-ink);
  box-shadow: var(--elev-1);
}

.btn-primary.btn-outline:not(:disabled):hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-primary-content);
}

/* Un botón apagado tiene que verse apagado antes de que lo toquen. daisyUI
   lo resuelve con opacidad, y sobre papel cálido eso deja un gris sucio. */
.btn:disabled,
.btn[disabled] {
  background: var(--surface-sunken);
  border-color: var(--hairline);
  color: var(--ink-4);
  box-shadow: none;
}

.input,
.select,
.textarea,
.file-input {
  color: var(--ink-1);
  transition: border-color var(--t-fast) ease, box-shadow var(--t-fast) ease;
}

:is(.input, .select, .textarea, .file-input):not([class^="bg-"]):not([class*=" bg-"]) {
  background: var(--surface);
}

:is(.input, .select, .textarea, .file-input):not([class^="border-"]):not([class*=" border-"]) {
  border-color: var(--hairline-strong);
}

.input::placeholder,
.textarea::placeholder {
  color: var(--ink-4);
}

/* Label de campo: 12px en tinta secundaria. En negro y a 14px competía con
   el valor que estaba adentro del campo. Las mayúsculas quedan reservadas a
   los micro-labels de tiles y encabezados de tabla (.text-label). */
.fieldset-legend,
.label,
.form-label {
  padding-bottom: 0.125rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--ink-3);
}

.input:focus,
.input:focus-within,
.select:focus,
.textarea:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px oklch(61% 0.12 168 / 0.14);
}

/* Lista de un combobox que vive en el top layer (ver `mamiruSyncPopover` en
   app.js). daisyUI ya le pone `position: fixed`, el `position-area` contra su
   ancla y el z-index; acá va lo propio del panel: que arranque en el ancho
   del campo y que se pueda scrollear si la lista es larga. */
.combo-panel[popover] {
  min-width: anchor-size(width);
  max-width: 28rem;
  max-height: 18rem;
  overflow-y: auto;
  padding: 0;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-box);
  background: var(--surface);
  box-shadow: var(--elev-pop);
  position-try-fallbacks: flip-block;
}

/* Lista de un combobox que se despliega dentro del flujo del formulario (el
   cliente y el producto de un pedido). A diferencia de `.combo-panel`, no está
   en el top layer: es un absoluto bajo el campo. Mismo aspecto que el panel. */
.combo-inline {
  border: 1px solid var(--hairline);
  border-radius: var(--radius-box);
  background: var(--surface);
  box-shadow: var(--elev-pop);
}

/* Campo de búsqueda con su atajo. El "/" se muestra apenas, y desaparece
   apenas el campo se usa (foco o texto escrito): es una pista, no un
   adorno permanente. */
.search-field {
  position: relative;
}

.search-field > kbd {
  position: absolute;
  top: 50%;
  right: 0.5rem;
  transform: translateY(-50%);
  padding: 0.0625rem 0.3125rem;
  border: 1px solid var(--hairline-strong);
  border-radius: 0.25rem;
  background: var(--color-base-200);
  color: var(--ink-4);
  font-family: var(--font-inter);
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.4;
  pointer-events: none;
}

.search-field:focus-within > kbd,
.search-field:has(input:not(:placeholder-shown)) > kbd {
  display: none;
}

@media (max-width: 640px) {
  .search-field > kbd {
    display: none;
  }
}

/* Botón de acción de fila: turquesa suave, sin gritar. */
.table-action-button {
  background: var(--primary-tint);
  border-color: color-mix(in oklab, var(--color-primary) 40%, transparent);
  color: var(--primary-ink);
  font-weight: 600;
}

.table-action-button:hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-primary-content);
}

/* La acción destructiva no hereda el turquesa: un botón de eliminar que se ve
   igual que "Editar" invita a borrar cosas por error. */
.table-action-button.btn-error {
  background: var(--error-tint);
  border-color: color-mix(in oklab, var(--color-error) 35%, transparent);
  color: var(--error-ink);
}

.table-action-button.btn-error:hover {
  background: var(--color-error);
  border-color: var(--color-error);
  color: var(--color-error-content);
}

/* Pestañas: la activa se marca con la línea y con peso, no con una caja. */
.tabs-border .tab {
  font-weight: 500;
  color: var(--ink-3);
  transition: color var(--t-fast) ease;
}

.tabs-border .tab:hover {
  color: var(--ink-1);
}

.tabs-border .tab-active {
  font-weight: 600;
  color: var(--ink-1);
}

/* Menú desplegable / popover de fila: acá sí hay elevación, porque flota. */
.dropdown-content,
[popover] {
  box-shadow: var(--elev-pop);
  border-radius: var(--radius-box);
}

/* Los templates escriben el menú como `menu ... border-base-300 bg-white
   shadow-sm`: el `shadow-sm` lo dejaba pegado al fondo justo cuando es lo
   único de la pantalla que de verdad flota. Se normaliza acá. */
.dropdown-content.menu {
  box-shadow: var(--elev-pop);
  border-color: var(--hairline);
  padding: 0.3125rem;
}

.dropdown-content.menu :is(li > a, li > button) {
  border-radius: var(--radius-field);
  font-size: var(--fs-sm);
  color: var(--ink-2);
  transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.dropdown-content.menu :is(li > a, li > button):hover {
  background: var(--color-base-200);
  color: var(--ink-1);
}

.dropdown-content.menu :is(li > a, li > button) svg {
  color: var(--ink-4);
}

/* El menú de acciones de fila vive en el top layer (Popover API) para escapar
   del `overflow-x-auto` de la tabla. Cerca del borde inferior del viewport se
   abre hacia arriba en vez de desbordar (`flip-block`). Solo eso no alcanza
   para `.dropdown-end` (Estado/Factura): esa variante ancla el menú
   extendiéndose hacia la izquierda del botón (`--anchor-h:span-left`), y en
   una card angosta de mobile el botón vive pegado al borde izquierdo, así
   que el menú se salía de la pantalla por la izquierda — las opciones
   quedaban ahí pero invisibles/imposibles de tocar, como si el click no
   hiciera nada. `flip-inline` agrega el volteo horizontal para ese caso. */
.dropdown[popover] {
  position-try-fallbacks: flip-block, flip-inline, flip-block flip-inline;
}

/* Un modal es la superficie que flota, así que va en blanco y no en el papel
   de la app: daisyUI lo pinta con `--color-base-100`, y con el papel un punto
   y medio más hundido (ver § Tokens) el diálogo quedaba crema sobre una
   pantalla que apenas se oscurecía — se leía como un bloque más de la página,
   no como algo por encima de ella. */
.modal-box:not([class^="bg-"]):not([class*=" bg-"]) {
  background: var(--surface);
}

.modal-box {
  border: 1px solid var(--hairline);
  box-shadow: var(--elev-pop);
}

/* El velo tiene que apagar la pantalla de atrás. Con el default el contenido
   seguía siendo legible y competía con el diálogo. */
.modal::backdrop,
.modal .modal-backdrop {
  background-color: oklch(19% 0.010 68 / 0.45);
}

.currency-field {
  display: flex;
  align-items: center;
}

.currency-field > span {
  align-items: center;
  align-self: stretch;
  background: var(--color-base-200);
  border: 1px solid var(--hairline-strong);
  border-radius: var(--radius-field) 0 0 var(--radius-field);
  color: var(--ink-3);
  display: flex;
  font-size: 0.8125rem;
  font-weight: 600;
  padding: 0 0.625rem;
}

.currency-field > input {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
  border-left: 0;
  font-variant-numeric: tabular-nums;
}

/* ── 6b. Formularios ─────────────────────────────────────────────────────── */

/* Una ficha larga es una tabla vertical: cada fila es label + control, y lo
   que cambia entre filas es el ancho del control. Los objetos de acá los
   emiten las macros de components/form.html. */

.form-section + .form-section {
  margin-top: 1.125rem;
  padding-top: 1.125rem;
  border-top: 1px solid var(--hairline);
}

.form-section__head {
  margin-bottom: 0.625rem;
}

.form-section__hint {
  margin-top: 0.125rem;
  font-size: 0.75rem;
  color: var(--ink-3);
}

/* Grilla de 12 columnas. En mobile todo va a ancho completo: el `data-span`
   recién manda desde `sm`. Es un atributo y no una clase de Tailwind porque
   el ancho lo decide la macro en el servidor y así no depende de que
   Tailwind haya generado esa variante. */
.form-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 0.625rem 0.75rem;
}

.form-grid > * {
  grid-column: span 12;
  min-width: 0;
}

@media (width >= 40rem) {
  .form-grid > [data-span="2"] { grid-column: span 2; }
  .form-grid > [data-span="3"] { grid-column: span 3; }
  .form-grid > [data-span="4"] { grid-column: span 4; }
  .form-grid > [data-span="5"] { grid-column: span 5; }
  .form-grid > [data-span="6"] { grid-column: span 6; }
  .form-grid > [data-span="7"] { grid-column: span 7; }
  .form-grid > [data-span="8"] { grid-column: span 8; }
  .form-grid > [data-span="9"] { grid-column: span 9; }
  .form-grid > [data-span="12"] { grid-column: span 12; }
}

.field {
  display: flex;
  flex-direction: column;
  gap: 0.1875rem;
  min-width: 0;
}

/* `.field` es CSS sin capa y le gana a la utilidad `.hidden`: sin esto un
   campo que el JS esconde (la cotización USD de una compra) seguiría a la
   vista. */
.field.hidden {
  display: none;
}

.field__label {
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--ink-3);
}

.field__req {
  color: var(--color-error);
  font-weight: 600;
}

.field__hint {
  font-size: 0.6875rem;
  line-height: 1.35;
  color: var(--ink-3);
}

/* 36px en desktop, 44px en mobile por la regla de tap targets. El alto lo
   fija el sistema y no cada template con `h-11`. */
.field :is(.input, .select) {
  height: 2.25rem;
  width: 100%;
}

.field .textarea {
  width: 100%;
  min-height: 4.5rem;
  padding-block: 0.375rem;
}

/* Los formularios de pedido y compra siguen escribiendo sus campos con el
   `fieldset` de daisyUI porque cada uno lleva su cableado de Alpine/htmx. La
   densidad no depende de eso: misma altura de control que en `.field`. */
.fieldset > :is(.input, .select) {
  height: 2.25rem;
}

.fieldset > .textarea {
  min-height: 4.5rem;
  padding-block: 0.375rem;
}

/* Un campo que no se puede editar tiene que verse así antes de que lo
   toquen, no después.

   Va con la misma guarda `:not([class^="bg-"])` que la regla que pinta el
   fondo normal de un `.input` (§ Formularios, arriba) — y no por el mismo
   motivo: esa guarda le da 0,3,0 de especificidad, así que un
   `.input[readonly]` a secas (0,2,0) perdía y ningún campo bloqueado se
   estaba pintando hundido, a pesar de que el sistema lo pide desde siempre.
   Se veía en cada pedido ya confirmado: doce campos deshabilitados con
   pinta de editables. `:disabled` va acá junto a `readonly` porque para el
   que mira son lo mismo: un campo que no se puede tocar. */
:is(
  .field__input--locked,
  .input[readonly],
  .textarea[readonly],
  .input:disabled,
  .select:disabled,
  .textarea:disabled
):not([class^="bg-"]):not([class*=" bg-"]) {
  background: var(--surface-sunken);
  color: var(--ink-2);
  cursor: default;
}

/* Control segmentado (macro `segmented_field`): dos a cuatro opciones cortas
   y excluyentes, todas a la vista. Misma altura que un `.input` para que
   alinee cuando comparte fila con una fecha o un select, y un solo hairline
   alrededor en vez de un borde por opción — tres cajas contiguas se leían
   como tres campos distintos. La activa se marca con el escalón de tono, no
   con relleno turquesa: el turquesa es la acción principal de la pantalla y
   no puede competir con ella un control que solo elige entre variantes. */
.segmented {
  display: flex;
  align-items: stretch;
  width: 100%;
  height: 2.25rem;
  padding: 2px;
  gap: 2px;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-field);
  background: var(--surface);
}

.segmented__option {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: calc(var(--radius-field) - 2px);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--ink-2);
  cursor: pointer;
  transition: background-color var(--t-fast) ease, color var(--t-fast) ease;
}

.segmented__option > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding-inline: 0.25rem;
}

/* El radio se esconde pero sigue existiendo: es lo que hace que el control
   funcione sin JS, viaje en el POST y sea navegable con las flechas. */
.segmented__option > input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.segmented__option:hover {
  background: var(--color-base-200);
  color: var(--ink-1);
}

.segmented__option:has(> input:checked) {
  background: var(--color-base-200);
  color: var(--ink-1);
  font-weight: 600;
  box-shadow: inset 0 0 0 1px var(--hairline);
}

/* El foco del teclado va en la opción, no en el radio escondido. */
.segmented__option:has(> input:focus-visible) {
  outline: 2px solid var(--color-primary);
  outline-offset: -2px;
}

.segmented:has(> .segmented__option > input:disabled) {
  background: var(--surface-sunken);
}

.segmented__option:has(> input:disabled) {
  cursor: default;
  color: var(--ink-3);
}

.segmented__option:has(> input:disabled):hover {
  background: transparent;
}

.segmented__option:has(> input:disabled:checked) {
  background: var(--color-base-200);
  color: var(--ink-2);
}

/* `.form-control` y `.label-text` venían de daisyUI v4 y en v5 no existen:
   quedaron nueve usos que no aplicaban ningún layout, así que el rótulo y el
   campo quedaban uno al lado del otro cuando había ancho para los dos. Se
   veía en los datos de factura de un pedido: "Razón social" y "RUC o CI"
   apilaban por falta de espacio, y "Dirección" —que ocupa las dos columnas—
   quedaba con el rótulo al costado. Tres campos del mismo formulario con dos
   layouts distintos. */
.form-control {
  display: flex;
  flex-direction: column;
  gap: 0.1875rem;
  min-width: 0;
}

/* El control ocupa el ancho de su celda. Sin esto un `<input>` cae en su
   ancho intrínseco (el `size` por defecto), y "Dirección" —que ocupa las dos
   columnas de la grilla— quedaba de la mitad del ancho que le tocaba. */
.form-control > :is(.input, .select, .textarea) {
  width: 100%;
}

.form-control > .label-text,
.label-text {
  font-size: var(--fs-xs);
  font-weight: 500;
  line-height: 1.3;
  color: var(--ink-3);
}

.field--check {
  justify-content: center;
}

.check {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.25rem;
  font-size: 0.8125rem;
  cursor: pointer;
}

.check__hint {
  margin-left: 1.5rem;
}

/* Botonera pegada abajo, en toda pantalla. En una ficha de siete pantallas
   de scroll, guardar no puede vivir al final del scroll. */
/* Botonera pegada abajo. El fondo sale de la superficie sobre la que flota y
   no del papel de la app: una ficha larga vive adentro de una card blanca, y
   con el beige de fondo la barra dibujaba una franja de otro color cortando
   la card al medio. La sombra hacia arriba es lo que la despega del contenido
   que pasa por debajo. */
.form-actions {
  position: sticky;
  bottom: 0;
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: 1.25rem;
  padding: 0.6875rem 0;
  border-top: 1px solid var(--hairline);
  background: color-mix(in oklab, var(--surface) 94%, transparent);
  backdrop-filter: blur(8px);
  box-shadow: 0 -8px 18px -14px oklch(22% 0.012 70 / 0.5);
}

.form-actions__aside {
  font-size: 0.75rem;
  color: var(--ink-3);
  min-width: 0;
}

.form-actions__buttons {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
}

/* Pedido nuevo: en el celular la barra fija de abajo ya lleva el total y
   "Crear borrador"; los botones del resumen quedan en el flujo, no pegados. */
@media (max-width: 1279px) {
  .order-actions {
    position: static;
    backdrop-filter: none;
    box-shadow: none;
  }
}

@media (max-width: 640px) {
  .form-actions__buttons {
    width: 100%;
  }

  .form-actions__buttons > * {
    flex: 1;
  }
}

/* Alta rápida de productos: fotos a la izquierda y lo básico a la derecha
   en la compu; en el celular, las fotos en fila arriba y los botones en una
   franja propia abajo, apilados con el principal primero. */
.quick-create {
  display: grid;
  gap: 1.25rem;
}

@media (width >= 64rem) {
  .quick-create {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 1.75rem;
    align-items: start;
  }
}

.quick-create__photos {
  display: grid;
  gap: 0.5rem;
  align-content: start;
}

.quick-create__tiles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
  border-radius: var(--radius-box);
  outline: 2px dashed transparent;
  outline-offset: 4px;
  transition: outline-color 120ms;
}

.quick-create__tiles.is-dragging {
  outline-color: var(--primary-ink);
}

.quick-create__tile {
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-field);
  background: var(--surface-sunken);
}

.quick-create__tile--cover {
  grid-column: 1 / -1;
  border-radius: var(--radius-box);
}

.quick-create__tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.quick-create__cover-badge {
  position: absolute;
  left: 0.5rem;
  top: 0.5rem;
  padding: 0.125rem 0.5rem;
  border-radius: 999px;
  background: color-mix(in oklab, var(--surface) 92%, transparent);
  color: var(--ink-1);
  font-size: 0.6875rem;
  font-weight: 600;
}

.quick-create__remove {
  position: absolute;
  right: 0.375rem;
  top: 0.375rem;
  display: grid;
  place-items: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 999px;
  background: color-mix(in oklab, var(--surface) 92%, transparent);
  color: var(--ink-2);
  box-shadow: var(--elev-1);
}

.quick-create__tile--add {
  border-style: dashed;
  border-color: var(--hairline-strong);
}

.quick-create__tile--add > button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  width: 100%;
  height: 100%;
  color: var(--ink-3);
  font-size: 0.75rem;
  font-weight: 500;
}

.quick-create__tile--add > button:hover {
  color: var(--primary-ink);
  background: var(--primary-tint);
}

.quick-create__policy {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem 0.625rem;
  padding: 0.5rem 0.75rem;
  border-radius: var(--radius-field);
  background: var(--surface-sunken);
  color: var(--ink-2);
  font-size: 0.8125rem;
}

.quick-create__policy strong {
  color: var(--ink-1);
}

.quick-create__margin {
  margin-left: auto;
  padding: 0.125rem 0.5rem;
  border-radius: 999px;
  font-size: 0.75rem;
}

.quick-create__margin--ok {
  background: var(--success-tint);
  color: var(--success-ink);
}

.quick-create__margin--low {
  background: var(--warning-tint);
  color: var(--warning-ink);
}

.quick-create__margin strong {
  color: inherit;
}

/* Editar producto: fotos a la izquierda, lo que se edita a la derecha. */
.product-edit {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 1024px) {
  .product-edit {
    grid-template-columns: 280px minmax(0, 1fr);
    align-items: start;
  }

  .product-edit__aside {
    position: sticky;
    top: 1rem;
  }
}

.product-edit__aside,
.product-edit__main {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-width: 0;
}

/* En la columna de 280px entran dos fotos por fila, no tres. */
.product-edit__aside .grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.product-edit__hint {
  color: var(--ink-3);
  font-size: 0.75rem;
}

.product-edit__idbox {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
}

.product-edit__idrow {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.8125rem;
}

.product-edit__idlabel {
  color: var(--ink-3);
}

.product-edit__idvalue {
  color: var(--ink-1);
  font-weight: 500;
  overflow-wrap: anywhere;
  text-align: right;
}

.product-edit__card {
  padding: 1rem;
}

@media (min-width: 640px) {
  .product-edit__card {
    padding: 1.25rem 1.5rem;
  }
}

.product-edit__card-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.625rem;
  margin-bottom: 0.75rem;
}

.product-edit__card-sub {
  color: var(--ink-3);
  font-size: 0.75rem;
}

.product-edit__ai-btn {
  margin-left: auto;
  color: var(--info-ink);
}

.product-edit__gain {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
  min-height: 2.5rem;
}

.product-edit__gain .quick-create__margin {
  margin-left: 0;
}

.product-edit__markup {
  padding: 0.125rem 0.5rem;
  border-radius: 999px;
  background: var(--surface-sunken);
  color: var(--ink-2);
  font-size: 0.75rem;
}

.product-edit__main .quick-create__policy .btn {
  margin-left: auto;
}

.product-edit__stock {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem 0.5rem;
  color: var(--ink-2);
  font-size: 0.8125rem;
}

.product-edit__stock strong {
  color: var(--ink-1);
}

.product-edit__ai-legend {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--ink-3);
  font-size: 0.75rem;
}

/* «✦ IA»: el campo lo escribió el Llenado inteligente y nadie lo cambió. */
.ai-chip {
  display: inline-flex;
  align-items: center;
  margin-left: 0.375rem;
  padding: 0 0.375rem;
  border-radius: 999px;
  background: var(--info-tint);
  color: var(--info-ink);
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.125rem;
  vertical-align: middle;
}

.product-edit__ai-legend .ai-chip {
  margin-left: 0;
}

.input.is-ai,
.textarea.is-ai {
  border-color: var(--info-tint-strong);
  background-image: linear-gradient(to bottom, var(--info-tint), transparent 70%);
}

/* Plegables de Editar: cerrados por defecto, cada uno dice qué tiene. */
.fold {
  border: 1px solid var(--hairline);
  border-radius: var(--radius-box, 0.75rem);
  background: var(--surface);
}

.fold__summary {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.125rem 0.625rem;
  padding: 0.75rem 1rem;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.fold__summary::-webkit-details-marker {
  display: none;
}

.fold__title {
  color: var(--ink-1);
  font-size: 0.875rem;
  font-weight: 600;
}

.fold__sub {
  color: var(--ink-3);
  font-size: 0.75rem;
}

.fold__chevron {
  align-self: center;
  margin-left: auto;
  color: var(--ink-3);
  transition: transform 150ms ease;
}

.fold[open] > .fold__summary .fold__chevron {
  transform: rotate(180deg);
}

.fold__body {
  padding: 0 1rem 1rem;
}

.quick-create__later {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  color: var(--ink-3);
  font-size: 0.75rem;
}

.quick-create__later-short {
  display: none;
}

/* En el celular: Categoría y Línea, y Costo, Precio y Stock, siguen en fila
   (la grilla general los apila a ancho completo). */
@media (width < 40rem) {
  .quick-create__fields > [data-span="6"] { grid-column: span 6; }
  .quick-create__fields > [data-span="4"] { grid-column: span 4; }

  .quick-create__later-long { display: none; }
  .quick-create__later-short { display: inline; }
}

@media (width < 64rem) {
  .quick-create__tiles {
    display: flex;
    overflow-x: auto;
    padding-bottom: 0.25rem;
  }

  .quick-create__tile {
    flex: 0 0 5.5rem;
  }

  .quick-create__tile--cover {
    flex-basis: 8.5rem;
  }
}

@media (max-width: 640px) {
  .quick-create__actions .form-actions__buttons {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .quick-create__cancel {
    display: none;
  }
}

/* ── 7. Badges y alerts ──────────────────────────────────────────────────── */

/*
 * LA REGLA DE COLOR, segunda edición: **solo el rojo se llena.**
 *
 * El sistema ya decía "un color que decora le roba fuerza a uno que avisa", y
 * la app lo rompía en cada fila: un pedido en /orders llevaba dos badges de
 * ámbar saturado con texto blanco ("Envío" y "Pendiente"), y una fila de
 * /products tres verdes ("Atelier", "Activo", el margen). Con veinte filas la
 * pantalla era un semáforo, y el ámbar de un pedido realmente atrasado no se
 * distinguía del ámbar de "esto es un envío".
 *
 * El arreglo NO es sacarle el significado al color: es bajarle el volumen sin
 * perder los dos niveles que el sistema necesita.
 *
 *   - sólido   (`.badge-warning`)                  → tinte fuerte + tinta + borde de color
 *   - apagado  (`.badge-warning.badge-outline`)    → tinte suave + tinta + borde tenue
 *   - rojo sólido (`.badge-error`)                 → sigue siendo un bloque lleno
 *
 * Los dos niveles siguen siendo distinguibles de un vistazo (el escalón de
 * saturación entre tinte fuerte y tinte suave es grande), pero ninguno de los
 * dos compite con el dato. Y el rojo lleno, que ahora es lo único saturado de
 * la pantalla, recupera todo el peso que había perdido.
 *
 * Esto se decide acá y no en Python a propósito: `ORDER_STATUS_BADGE_CLASSES`
 * y compañía siguen diciendo qué estado es alerta y cuál no —que es una regla
 * del dominio— y el CSS decide cuánto grita cada nivel, que es una regla
 * visual.
 */

/* Un badge es una etiqueta de estado, no un botón: tinte + tinta, 11px, y una
   altura que no empuja la fila. */
.badge {
  height: auto;
  min-height: 1.375rem;
  padding-inline: 0.4375rem;
  padding-block: 0.125rem;
  border-radius: var(--radius-badge);
  border-width: 1px;
  font-size: var(--fs-label);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.005em;
  gap: 0.25rem;
}

.badge-sm,
.badge-xs {
  font-size: var(--fs-label);
  min-height: 1.1875rem;
  padding-inline: 0.4375rem;
}

.badge-lg {
  min-height: 1.75rem;
  font-size: var(--fs-sm);
  padding-inline: 0.6875rem;
}

.badge-ghost:not([class^="bg-"]):not([class*=" bg-"]) {
  background: var(--color-base-200);
  border-color: var(--hairline);
  color: var(--ink-2);
}

.badge-secondary {
  background: var(--color-base-200);
  border-color: var(--hairline);
  color: var(--ink-2);
}

/* Nivel apagado: el estado que no pide nada. Tinte suave, borde casi
   invisible, tinta legible. */
.badge-primary.badge-outline {
  background: var(--primary-tint);
  border-color: color-mix(in oklab, var(--color-primary) 22%, transparent);
  color: var(--primary-ink);
}

.badge-success.badge-outline {
  background: var(--success-tint);
  border-color: color-mix(in oklab, var(--color-success) 22%, transparent);
  color: var(--success-ink);
}

.badge-warning.badge-outline {
  background: var(--warning-tint);
  border-color: color-mix(in oklab, var(--color-warning) 28%, transparent);
  color: var(--warning-ink);
}

.badge-error.badge-outline {
  background: var(--error-tint);
  border-color: color-mix(in oklab, var(--color-error) 24%, transparent);
  color: var(--error-ink);
}

.badge-info.badge-outline {
  background: var(--info-tint);
  border-color: color-mix(in oklab, var(--color-info) 22%, transparent);
  color: var(--info-ink);
}

.badge-accent.badge-outline {
  background: var(--primary-tint);
  border-color: color-mix(in oklab, var(--color-accent) 26%, transparent);
  color: var(--primary-ink);
}

.badge-neutral.badge-outline {
  background: var(--color-base-200);
  border-color: var(--hairline-strong);
  color: var(--ink-2);
}

/* Nivel sólido: "esto pide trabajo". Tinte fuerte + borde del color pleno +
   tinta oscura de la misma familia. Se distingue del apagado a un metro de
   distancia y no le roba la pantalla al dato. */
.badge-warning:not(.badge-outline) {
  background: var(--warning-tint-strong);
  border-color: color-mix(in oklab, var(--color-warning) 62%, transparent);
  color: var(--warning-ink);
}

.badge-success:not(.badge-outline) {
  background: var(--success-tint-strong);
  border-color: color-mix(in oklab, var(--color-success) 50%, transparent);
  color: var(--success-ink);
}

.badge-primary:not(.badge-outline) {
  background: var(--primary-tint-strong);
  border-color: color-mix(in oklab, var(--color-primary) 50%, transparent);
  color: var(--primary-ink);
}

.badge-info:not(.badge-outline) {
  background: var(--info-tint-strong);
  border-color: color-mix(in oklab, var(--color-info) 50%, transparent);
  color: var(--info-ink);
}

/* La excepción, y la razón de ser de toda la regla: el rojo lleno. Es lo único
   saturado que puede aparecer en una pantalla, así que cuando aparece se ve
   desde la puerta. */
.badge-error:not(.badge-outline) {
  background: var(--color-error);
  border-color: var(--color-error);
  color: oklch(100% 0 0);
}

/* Mostaza para "Preparación": un pedido confirmado en curso, pero sin ser
   una alerta accionable como los pendientes de despacho. */
.badge-mustard {
  background: var(--mustard-tint);
  border-color: color-mix(in oklab, var(--mustard) 30%, transparent);
  color: var(--mustard-ink);
}

/* El ícono de un badge no se pinta con la tinta plena del texto: a 12px y
   trazo 2 pesa más que las letras que acompaña. */
.badge svg {
  opacity: 0.75;
}

/* Chip de variación (delta). Compacto y sin frase adentro: el "vs período
   anterior" va una vez en el encabezado de la sección, no cuatro veces. */
.delta-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.1875rem;
  padding: 0.0625rem 0.375rem;
  border-radius: var(--radius-badge);
  border: 1px solid transparent;
  font-size: var(--fs-label);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.delta-chip--positive {
  background: var(--success-tint);
  border-color: color-mix(in oklab, var(--color-success) 20%, transparent);
  color: var(--success-ink);
}

.delta-chip--warning {
  background: var(--warning-tint);
  border-color: color-mix(in oklab, var(--color-warning) 26%, transparent);
  color: var(--warning-ink);
}

.delta-chip--neutral {
  background: var(--color-base-200);
  border-color: var(--hairline);
  color: var(--ink-2);
}

/* Alerts: barra de color a la izquierda + tinte, en vez de un bloque
   saturado de borde a borde. */
.alert {
  border-radius: var(--radius-box);
  border-width: 1px;
  border-left-width: 3px;
  padding: 0.625rem 0.875rem;
  font-size: var(--fs-sm);
  line-height: 1.5;
  box-shadow: var(--elev-0);
}

.alert-success {
  background: var(--success-tint);
  border-color: color-mix(in oklab, var(--color-success) 24%, transparent);
  border-left-color: var(--color-success);
  color: var(--success-ink);
}

.alert-warning {
  background: var(--warning-tint);
  border-color: color-mix(in oklab, var(--color-warning) 28%, transparent);
  border-left-color: var(--color-warning);
  color: var(--warning-ink);
}

.alert-error {
  background: var(--error-tint);
  border-color: color-mix(in oklab, var(--color-error) 24%, transparent);
  border-left-color: var(--color-error);
  color: var(--error-ink);
}

.alert-info {
  background: var(--info-tint);
  border-color: color-mix(in oklab, var(--color-info) 24%, transparent);
  border-left-color: var(--color-info);
  color: var(--info-ink);
}

/* ── 7b. Login ───────────────────────────────────────────────────────────── */

/* La única pantalla del producto que ve alguien sin sesión, y era una card
   chica perdida en el medio de un campo de beige vacío. Sigue siendo una sola
   card —no hace falta una ilustración ni una columna de marketing en un panel
   interno—, pero centrada de verdad y con la marca respirando arriba. */
.login-page {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100dvh;
  padding: 1.5rem 1rem;
  background:
    radial-gradient(
      120% 90% at 50% 0%,
      var(--primary-tint) 0%,
      transparent 62%
    ),
    var(--color-base-100);
  color: var(--ink-1);
}

.login-card {
  width: 100%;
  max-width: 23rem;
  box-shadow: var(--elev-2);
}

.login-card .card-body {
  padding: 1.75rem 1.5rem;
}

.login-card__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.375rem;
  padding-bottom: 0.25rem;
}

.login-card__tagline {
  font-size: var(--fs-sm);
  color: var(--ink-3);
}

/* ── 8. Navegación ───────────────────────────────────────────────────────── */

.app-sidebar {
  width: 14.5rem;
  background: var(--color-neutral);
  border-right: 1px solid oklch(100% 0 0 / 0.08);
  transition: width var(--t-base) var(--ease);
}

.app-sidebar__brand {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.875rem 1rem;
  border-bottom: 1px solid oklch(100% 0 0 / 0.08);
}

.app-sidebar__brand-full {
  object-fit: contain;
  object-position: left center;
}

.app-sidebar__brand-mark {
  display: none;
  height: 1.75rem;
  width: 1.75rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-field);
  border: 1px solid oklch(100% 0 0 / 0.15);
  background: oklch(100% 0 0 / 0.1);
  font-size: 0.75rem;
  font-weight: 700;
  color: white;
}

/* El título de grupo estaba a 34% de blanco: sobre la tinta del sidebar eso
   es 2.2:1, o sea ilegible. Sube a 52% —suficiente para leerse sin competir
   con los ítems— y el tracking baja de 0.11 a 0.08, que a 10px era tanto que
   "ABASTECIMIENTO" se leía letra por letra. */
.app-sidebar__group {
  margin-top: 1rem;
  margin-bottom: 0.25rem;
  padding: 0 0.625rem;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: oklch(100% 0 0 / 0.52);
  white-space: nowrap;
}

/* Colapsado: la barra se achica a solo iconos. Se activa a mano (el toggle
   en la marca, sólo visible en escritorio ancho) o solo, cuando la ventana
   se achica lo suficiente para apretar el contenido (ver autoCollapsed en
   base.html) pero todavía hay lugar para una barra fija en vez del drawer
   móvil. Queda atado a min-width: 48rem porque debajo de eso el sidebar es
   un drawer flotante (base.html, md:drawer-open) y ahí sí conviene mostrar
   todo el texto: no compite por ancho con el contenido. */
@media (min-width: 48rem) {
  .app-sidebar--collapsed {
    width: 4.5rem;
  }

  .app-sidebar--collapsed .app-sidebar__brand {
    flex-direction: column;
    justify-content: center;
  }

  .app-sidebar--collapsed .app-sidebar__brand-full {
    display: none;
  }

  .app-sidebar--collapsed .app-sidebar__brand-mark {
    display: flex;
  }

  .app-sidebar--collapsed .app-sidebar__group,
  .app-sidebar--collapsed .nav-item__label,
  .app-sidebar--collapsed .nav-item__count,
  .app-sidebar--collapsed .nav-item__action {
    display: none;
  }

  .app-sidebar--collapsed .nav-item {
    justify-content: center;
  }
}

/* Ítem de nav: 30px de alto, tinta clara, y el activo marcado con una barra
   turquesa + fondo apenas levantado. El relleno turquesa sólido que había
   antes pesaba más que cualquier cosa del contenido y competía con el botón
   primario de la pantalla. */
/* ── Topbar de mobile ─────────────────────────────────────────────────────
 *
 * Es la única navegación visible abajo de `md`, así que tiene que decir dos
 * cosas de un vistazo: dónde estás y cómo salir de acá.
 */
.app-topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  /* `display` va en el media query de abajo y no acá: este archivo es CSS sin
     capa y le gana a cualquier utilidad de Tailwind, así que un `display:flex`
     suelto anulaba el `md:hidden` del template y la barra de mobile aparecía
     también en escritorio, arriba del sidebar. */
  display: none;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4375rem 0.625rem;
  background: var(--color-neutral);
  border-bottom: 1px solid oklch(100% 0 0 / 0.08);
}

.app-topbar__menu {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  flex-shrink: 0;
  border-radius: var(--radius-field);
  color: oklch(100% 0 0 / 0.85);
  cursor: pointer;
  transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.app-topbar__menu:hover {
  background: oklch(100% 0 0 / 0.1);
  color: oklch(100% 0 0);
}

.app-topbar__title {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: var(--font-raleway);
  font-size: var(--fs-body);
  font-weight: 600;
  letter-spacing: -0.012em;
  color: oklch(100% 0 0 / 0.95);
}

.app-topbar__brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  flex-shrink: 0;
  border-radius: var(--radius-field);
  border: 1px solid oklch(100% 0 0 / 0.16);
  background: oklch(100% 0 0 / 0.08);
  font-size: var(--fs-label);
  font-weight: 700;
  color: oklch(100% 0 0 / 0.8);
}

@media (width < 48rem) {
  .app-topbar {
    display: flex;
  }
}

/* El velo del drawer casi no oscurecía: con el menú abierto se seguía leyendo
   la pantalla de atrás y las dos capas competían. */
.drawer-side > .drawer-overlay {
  background-color: oklch(19% 0.010 68 / 0.55);
  backdrop-filter: blur(1.5px);
}

/* Ítem de nav: el activo se marca con una barra turquesa + fondo apenas
   levantado. El relleno turquesa sólido que había antes pesaba más que
   cualquier cosa del contenido y competía con el botón primario de la
   pantalla.

   La tinta subió de 62% a 74% de blanco (de 4.6:1 a 7:1 sobre el fondo del
   sidebar) y el alto de 30 a 32px: navegar es lo primero que hace cualquiera
   al entrar, y estaba en el límite de lo legible y de lo tocable. */
.nav-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.625rem;
  min-height: 2rem;
  padding: 0.375rem 0.625rem;
  border-radius: var(--radius-field);
  font-size: var(--fs-sm);
  font-weight: 500;
  color: oklch(100% 0 0 / 0.74);
  transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.nav-item:hover {
  background: oklch(100% 0 0 / 0.08);
  color: oklch(100% 0 0);
}

.nav-item svg {
  color: oklch(100% 0 0 / 0.52);
  transition: color var(--t-fast) var(--ease);
}

.nav-item:hover svg {
  color: oklch(100% 0 0 / 0.85);
}

.nav-item--active {
  background: oklch(100% 0 0 / 0.10);
  color: oklch(100% 0 0);
  font-weight: 600;
}

.nav-item--active::before {
  content: "";
  position: absolute;
  left: -0.375rem;
  top: 0.1875rem;
  bottom: 0.1875rem;
  width: 2px;
  border-radius: 0 2px 2px 0;
  background: var(--focus-ring-dark);
}

/* El turquesa del sistema (52% de luminancia) sobre la tinta del sidebar
   queda casi tan oscuro como el fondo: sobre oscuro, la marca de "estás acá"
   usa la variante clara del mismo color. */
.nav-item--active svg {
  color: var(--focus-ring-dark);
}

/* Atajo de "crear" al lado de un ítem: la barra sigue siendo navegación, con
   la única excepción de un acceso pegado al ítem de su propia sección (nunca
   un botón suelto en la barra). Va en tinta blanca y no en turquesa: el
   turquesa significa "acción principal / estás acá" y un `+` permanente en el
   sidebar competiría con el botón primario de cada pantalla.

   Visible siempre, no solo en hover: la app se opera también desde tablet, y
   ahí un control que aparece con el mouse no existe. */
.nav-item-row {
  display: flex;
  align-items: center;
  gap: 2px;
}

/* El link queda como elemento posicionado, así que la barra turquesa del
   activo (.nav-item--active::before) sigue midiendo contra él. */
.nav-item-row > .nav-item {
  flex: 1 1 auto;
  min-width: 0;
}

.nav-item__action {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: var(--radius-field);
  color: oklch(100% 0 0 / 0.35);
  transition: background-color var(--t-fast) ease, color var(--t-fast) ease;
}

.nav-item__action:hover,
.nav-item__action:focus-visible {
  background: oklch(100% 0 0 / 0.1);
  color: oklch(100% 0 0 / 0.9);
}

.nav-item__count {
  margin-left: auto;
  padding: 0.0625rem 0.375rem;
  border-radius: 9999px;
  background: var(--focus-ring-dark);
  color: oklch(22% 0.03 172);
  font-size: 0.625rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.35;
}

/* Pills de filtro rápido: cápsulas chicas, la activa en tinta llena. Son
   navegación de la pantalla, no botones. */
.filter-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.3125rem;
  height: 1.75rem;
  padding: 0 0.6875rem;
  border: 1px solid var(--hairline-strong);
  border-radius: 9999px;
  background: var(--surface);
  font-size: var(--fs-xs);
  font-weight: 500;
  color: var(--ink-2);
  white-space: nowrap;
  transition: background-color var(--t-fast) var(--ease),
    border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.filter-pill:hover {
  border-color: var(--ink-4);
  background: var(--color-base-200);
  color: var(--ink-1);
}

.filter-pill--active {
  background: var(--color-neutral);
  border-color: var(--color-neutral);
  color: oklch(100% 0 0);
}

.filter-pill__count {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  color: var(--ink-3);
}

.filter-pill--active .filter-pill__count {
  color: oklch(100% 0 0 / 0.7);
}

/* Filtros rápidos de /products: la línea reusa `.segmented` con links en vez
   de radios, y el resto va en el menú "Filtros". `--links` deja que el
   control mida lo que su texto y no el ancho de la fila, y en mobile scrollea
   en vez de cortar las etiquetas. */
.segmented--links {
  width: auto;
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: none;
}

.segmented--links .segmented__option {
  flex: 0 0 auto;
  padding-inline: 0.5rem;
}

/* "Otra" del cobro es un botón dentro del control, no un radio: reinicia lo
   que el navegador le pone a un `<button>` y toma el aspecto de la opción
   activa cuando está presionado. */
button.segmented__option {
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 500;
}

button.segmented__option:hover {
  background: var(--color-base-200);
}

.segmented__option[aria-pressed="true"],
.segmented__option[aria-current] {
  background: var(--color-base-200);
  color: var(--ink-1);
  font-weight: 600;
  box-shadow: inset 0 0 0 1px var(--hairline);
}

.segmented__option:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: -2px;
}

/* Misma altura y borde que `.segmented`, para que la fila se lea como una
   sola barra. Con filtros activos el borde pasa a tinta y aparece el
   contador: se ve qué menú tiene algo aplicado sin abrirlo. */
.filter-menu-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  height: 2.25rem;
  padding: 0 0.625rem 0 0.75rem;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-field);
  background: var(--surface);
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--ink-2);
  cursor: pointer;
  transition: border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.filter-menu-btn:hover {
  border-color: var(--ink-4);
  color: var(--ink-1);
}

.filter-menu-btn--active {
  border-color: var(--ink-2);
  color: var(--ink-1);
}

.filter-menu-btn > svg {
  color: var(--ink-4);
}

.filter-menu-btn__count {
  display: inline-grid;
  place-items: center;
  min-width: 1.125rem;
  height: 1.125rem;
  padding: 0 0.3125rem;
  border-radius: 9999px;
  background: var(--color-neutral);
  color: var(--color-neutral-content);
  font-size: 0.6875rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.filter-menu .menu-title {
  padding: 0.5rem 0.75rem 0.25rem;
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ink-4);
}

/* El check es dibujado, no un <input>: cada opción es un link al toggle de
   su filtro, y un control adentro de un <a> es HTML inválido. */
.filter-check {
  display: inline-grid;
  place-items: center;
  width: 0.9375rem;
  height: 0.9375rem;
  flex-shrink: 0;
  border: 1px solid var(--hairline-strong);
  border-radius: 0.25rem;
  background: var(--surface);
}

.filter-menu [aria-checked="true"] {
  color: var(--ink-1);
  font-weight: 500;
}

.filter-menu [aria-checked="true"] .filter-check {
  border-color: var(--color-neutral);
  background: var(--color-neutral);
  color: var(--color-neutral-content);
}

.filter-menu .filter-check svg {
  color: inherit;
}

/* ── 9. Estados ──────────────────────────────────────────────────────────── */

/* Barra de carga de htmx: una línea de 2px que corre, no un bloque que
   parpadea. Un solo movimiento en toda la app. */
.htmx-indicator {
  opacity: 0;
  transition: opacity var(--t-fast) ease;
}

.htmx-request .htmx-indicator,
.htmx-request.htmx-indicator {
  opacity: 1;
}

.loading-bar {
  position: relative;
  height: 2px;
  overflow: hidden;
  background: color-mix(in oklab, var(--color-primary) 14%, transparent);
  border-radius: 9999px;
}

.loading-bar::after {
  content: "";
  position: absolute;
  inset-block: 0;
  width: 35%;
  border-radius: 9999px;
  background: var(--color-primary);
  animation: loading-slide 900ms ease-in-out infinite;
}

@keyframes loading-slide {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(340%); }
}

/* Mientras se resuelve un filtro, el bloque de resultados baja de opacidad:
   avisa que lo que está en pantalla ya es viejo sin sacarlo de lugar. */
.is-refreshing {
  opacity: 0.55;
  transition: opacity var(--t-base) ease;
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

/* ── 10. Imagen de producto ──────────────────────────────────────────────── */

/* La foto manda: es lo que distingue una pieza de otra cuando los nombres
   vienen importados del proveedor y son casi iguales entre sí. Por eso la
   tarjeta se lleva la mitad del ancho en imagen en vez de la miniatura de
   104px que tenía, que apenas superaba a la de la tabla. */
.product-hover-preview {
  position: fixed;
  z-index: 80;
  width: 440px;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-box);
  background: var(--surface);
  box-shadow: var(--elev-pop);
  display: grid;
  grid-template-columns: 220px 1fr;
  overflow: hidden;
  pointer-events: none;
}

.product-hover-preview.hidden {
  display: none;
}

.product-hover-preview__media {
  width: 220px;
  height: 100%;
  min-height: 220px;
  background: var(--color-base-200);
}

.product-hover-preview__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-hover-preview__placeholder {
  width: 100%;
  height: 100%;
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  color: var(--ink-3);
}

.product-hover-preview__body {
  padding: 0.7rem 0.8rem;
  min-width: 0;
}

.product-hover-preview__name {
  font-family: var(--font-raleway);
  font-size: 0.9rem;
  line-height: 1.2;
  font-weight: 700;
  color: var(--ink-1);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.product-hover-preview__code {
  margin: 0.2rem 0 0.4rem;
  font-size: 0.73rem;
  color: var(--ink-3);
}

.product-hover-preview__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  font-size: 0.77rem;
  font-weight: 600;
  margin-bottom: 0.45rem;
}

.product-hover-preview__line {
  margin: 0;
  font-size: 0.73rem;
  line-height: 1.25;
  color: var(--ink-2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.product-preview-thumb {
  cursor: pointer;
  transition: transform var(--t-fast) ease, box-shadow var(--t-fast) ease;
}

.product-preview-thumb:hover {
  transform: translateY(-1px);
}

.thumb {
  border-radius: var(--radius-field);
  border: 1px solid var(--hairline);
  background: var(--color-base-200);
  object-fit: cover;
}

/* ── 11. Utilidades ──────────────────────────────────────────────────────── */

[x-cloak] {
  display: none !important;
}

.hairline {
  border-color: var(--hairline);
}

/* Los templates escriben `border-base-300` para el hairline; que apunte al
   mismo token evita que convivan dos grises de borde. */
.border-base-300 {
  border-color: var(--hairline);
}

/* `rounded-btn` y `rounded-badge` venían de daisyUI v4 y en v5 no existen
   más: quedaron ~40 usos en templates que no aplicaban ningún radio. Se
   definen acá para no dejar esquinas vivas mientras se migran. */
.rounded-btn {
  border-radius: var(--radius-field);
}

.rounded-badge {
  border-radius: var(--radius-badge);
}

/* Los radios sueltos de Tailwind que quedaron en los templates se enganchan a
   la escala del sistema en vez de traer cada uno el suyo: `rounded-xl` (12px)
   al lado de una card de 10px y un botón de 7px es justo lo que hace que dos
   piezas de la misma pantalla no parezcan del mismo producto. */
.rounded-xl,
.rounded-2xl,
.rounded-lg {
  border-radius: var(--radius-box);
}

.rounded-md,
.rounded-sm {
  border-radius: var(--radius-selector);
}

/* Tintas y fondos semánticos como utilidad. Reemplazan a los hex sueltos que
   quedaban escritos a mano en los templates (`text-[#b91c1c]`,
   `bg-[#fef2f2]`, …): el color sale de un token o no sale. */
.text-primary-ink { color: var(--primary-ink); }
.text-success-ink { color: var(--success-ink); }
.text-warning-ink { color: var(--warning-ink); }
.text-error-ink { color: var(--error-ink); }
.text-info-ink { color: var(--info-ink); }

.bg-error-tint { background-color: var(--error-tint); }
.bg-warning-tint { background-color: var(--warning-tint); }
.bg-success-tint { background-color: var(--success-tint); }
.bg-primary-tint { background-color: var(--primary-tint); }

.border-error-soft { border-color: color-mix(in oklab, var(--color-error) 30%, transparent); }
.border-warning-soft { border-color: color-mix(in oklab, var(--color-warning) 32%, transparent); }

/* ── 12. Parches de compatibilidad ───────────────────────────────────────── */

/*
 * daisyUI 5.7.5 (29/07/2026) dejo de incluir las variantes con breakpoint
 * (sm:, md:, lg:, ...) de sus clases de componente en el CSS del CDN.
 * Tailwind no las puede regenerar: carga daisyUI como hoja estatica, no como
 * @plugin, asi que no conoce esas clases. Sin estas reglas el sidebar
 * desaparece en desktop (md:drawer-open) y los modales quedan pegados abajo
 * (sm:modal-middle).
 *
 * El corte de md:drawer-open (48rem) es a proposito mas chico que el del
 * sidebar viejo (antes lg, 64rem): entre 48rem y 64rem el sidebar sigue fijo
 * pero colapsado a solo iconos (.app-sidebar--collapsed, § 8), asi que se
 * angosta antes de desaparecer del todo detras del drawer movil.
 *
 * Van sin @layer a proposito: el CSS sin capa gana sobre el de daisyUI.
 */

@media (width >= 48rem) {
  .md\:drawer-open > .drawer-toggle {
    display: none;
  }

  .md\:drawer-open > .drawer-toggle ~ .drawer-side {
    display: block;
    opacity: 1;
    overflow-y: auto;
    overscroll-behavior: auto;
    pointer-events: auto;
    position: sticky;
    visibility: visible;
    width: auto;
  }

  .md\:drawer-open > .drawer-toggle ~ .drawer-side > :not(.drawer-overlay) {
    translate: 0%;
  }

  .md\:drawer-open > .drawer-toggle ~ .drawer-side > .drawer-overlay {
    background-color: transparent;
    cursor: default;
  }
}

@media (width >= 40rem) {
  .sm\:modal-middle {
    place-items: center;
  }

  .sm\:modal-middle > .modal-box {
    --modal-tl: var(--radius-box);
    --modal-tr: var(--radius-box);
    --modal-bl: var(--radius-box);
    --modal-br: var(--radius-box);
    height: auto;
    max-height: calc(100vh - 5em);
    max-width: 32rem;
    scale: 0.98;
    translate: 0 2%;
    width: 91.6667%;
  }
}

@media (width >= 48rem) {
  .md\:input-sm {
    --in-size-mul: 8;
    --font-size-min: 0.75rem;
    --spin-my: -2;
  }

  .floating-label:has(.md\:input-sm) {
    --top-mul: 4;
    --font-size: 0.75rem;
  }
}

/* ── 13. Responsive ──────────────────────────────────────────────────────── */

/* Evitar overflow del body en mobile con drawer abierto */
.drawer-toggle:checked ~ .drawer-content {
  overflow: hidden;
  max-height: 100dvh;
}

/* currency-field ocupa ancho completo cuando el contenedor lo pide */
.currency-field.w-full > input {
  flex: 1;
  min-width: 0;
}

/* Las líneas del formulario de compra son una tabla responsive: abajo de `md`
   cada fila se apila (`grid grid-cols-2`) y desde `md` vuelve a `table-row`.
   El `hidden` de Tailwind, que es el que oculta las filas extra y el que
   togglea el JS, pierde contra ese `md:table-row` porque una media query se
   aplica después con la misma especificidad. Esta regla no compite con
   ninguna: solo garantiza que lo oculto quede oculto en todo ancho.

   Vale igual para la columna "Costo origen", que el JS oculta con `hidden`
   cuando la compra no es en USD y que también declara `md:table-cell`. */
[data-purchase-line-row].hidden,
[data-origin-column].hidden {
  display: none !important;
}

/* Tap targets mínimos en mobile.

   WCAG 2.2 AA (2.5.8) pide 24×24 CSS px para cualquier cosa que se toca. La
   medición sobre /orders a 390px daba botones de ícono de 24px justos y
   controles de estado —que abren un menú, o sea que son controles y no
   etiquetas— de 22px. Sube el piso de los dos: 28px sigue siendo compacto y
   deja de estar en el límite exacto de la norma. */
@media (max-width: 768px) {
  .input, .select, .textarea, .btn {
    min-height: 2.75rem;
  }
  .input-sm, .select-sm, .btn-sm {
    min-height: 2.25rem;
  }
  .btn-xs {
    min-height: 1.75rem;
  }

  /* Un badge que abre un menú es un control, no una etiqueta. */
  :is(button, a, summary, [role="button"]) > .badge,
  .badge:is(button, a, summary, [role="button"]) {
    min-height: 1.75rem;
  }

  /* En mobile el listado es de cards apiladas: ahí el texto sí puede
     envolver, la regla de una línea es para la tabla de desktop. */
  .table :where(tbody td) {
    white-space: normal;
  }

  /* La cifra no se parte nunca, así que en pantalla angosta baja de cuerpo
     en vez de desbordar el tile. */
  .stat-value {
    font-size: 1.125rem;
  }
}

/* Botonera sticky: sombra superior para separarla del contenido */
.sticky.bottom-0.bg-base-100 {
  box-shadow: 0 -6px 16px -10px oklch(23% 0.012 70 / 0.35);
}

/* Avisos (ver app/core/ui/notices.py). La posición va por id y no por clase
   en el elemento: `catalog/products/_row.html` y `quotes/_cart_and_results.html`
   reemplazan #toast entero por OOB, y una clase puesta en base.html se perdía.
   En el celular el toast sale abajo al centro, encima de la barra del sistema;
   desde md vuelve a la esquina superior derecha. */
#toast {
  position: fixed;
  z-index: 50;
  left: 50%;
  bottom: calc(1rem + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  width: max-content;
  max-width: calc(100vw - 2rem);
}

#toast:empty {
  pointer-events: none;
}

@media (width >= 48rem) {
  #toast {
    left: auto;
    right: 1rem;
    top: 1rem;
    bottom: auto;
    transform: none;
  }
}

/* ── 13. Inventario ──────────────────────────────────────────────────────── */
/* «Lista de trabajo» (variante A del review de inventario, 27/10). En la
   compu se aprovecha el ancho: tablas y panel fijo al costado; en el celu,
   listas de una columna con la acción a mano. El corte es 40rem y lo repite
   el JS de las plantillas (matchMedia). */
.inv-page {
  max-width: 76rem;
}

.inv-only-mobile { display: block; }
.inv-only-desktop { display: none; }

@media (width >= 40rem) {
  .inv-only-mobile { display: none; }
  .inv-only-desktop { display: block; }
  table.inv-only-desktop { display: table; }
  a.inv-only-desktop { display: inline-flex; }
}

/* Chips de reglas de bolsa: categoría en gris, clasificación en mostaza. */
.inv-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  align-items: center;
}

.inv-chip {
  display: inline-flex;
  align-items: center;
  height: 1.375rem;
  padding: 0 0.5rem;
  border-radius: var(--radius-badge);
  background: var(--color-base-200);
  color: var(--ink-2);
  font-size: var(--fs-xs);
  font-weight: 500;
  white-space: nowrap;
}

.inv-chip--class {
  background: var(--mustard-tint);
  color: var(--mustard-ink);
}

.inv-money-badge {
  margin-left: 0.25rem;
  padding: 0.0625rem 0.4375rem;
  border-radius: var(--radius-badge);
  background: var(--error-tint);
  color: var(--error-ink);
  font-size: var(--fs-xs);
  font-weight: 600;
}

/* Resumen de arriba: tres números en una fila en la compu, apilados en el
   celu. El de bolsas contadas solo aporta en la compu. */
.inv-kpis {
  display: grid;
  grid-template-columns: 1fr;
}

.inv-kpi {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  min-width: 0;
  padding: var(--pad-card);
  color: inherit;
}

.inv-kpi + .inv-kpi {
  border-top: 1px solid var(--hairline);
}

a.inv-kpi:hover {
  background: var(--color-base-200);
}

.inv-kpi__label {
  font-size: var(--fs-xs);
  font-weight: 500;
  color: var(--ink-3);
}

.inv-kpi__value {
  font-family: var(--font-raleway);
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--ink-1);
}

.inv-kpi__value.text-error-ink { color: var(--error-ink); }
.inv-kpi__value.text-warning-ink { color: var(--warning-ink); }

.inv-kpi__of {
  font-family: var(--font-inter);
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--ink-3);
}

.inv-kpi__hint {
  min-width: 0;
  font-size: var(--fs-xs);
  color: var(--ink-3);
}

.inv-kpi__hint > summary {
  list-style: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.inv-kpi__hint > summary::-webkit-details-marker { display: none; }
.inv-kpi__hint[open] > summary { white-space: normal; }

.inv-kpi--desktop { display: none; }

@media (width >= 40rem) {
  .inv-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .inv-kpi--desktop { display: flex; }
  .inv-kpi + .inv-kpi {
    border-top: 0;
    border-left: 1px solid var(--hairline);
  }
}

/* Barra de avance: verde coincide, rojo falta, ámbar sobra, sobre un riel
   hundido que es lo que queda sin contar. */
.inv-bar {
  display: flex;
  height: 0.5rem;
  overflow: hidden;
  border-radius: 999px;
  background: var(--surface-sunken);
  box-shadow: inset 0 0 0 1px var(--hairline);
}

.inv-bar > span { display: block; height: 100%; }
.inv-bar__ok { background: var(--color-success); }
.inv-bar__short { background: var(--color-error); }
.inv-bar__over { background: var(--color-warning); }
.inv-bar--thin { height: 0.3125rem; margin-top: 0.3125rem; }
.inv-bar--lg { height: 0.75rem; }

.inv-dot {
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  margin-right: 0.375rem;
  border-radius: 999px;
  background: var(--ink-4);
  vertical-align: 0.0625rem;
}

.inv-dot--ok { background: var(--color-success); }
.inv-dot--short { background: var(--color-error); }
.inv-dot--over { background: var(--color-warning); }
.inv-dot--pending { background: var(--hairline-strong); }

/* Tabla de bolsas (compu). */
.inv-bags-table td { vertical-align: middle; }

.inv-bag-name {
  font-weight: 600;
  color: var(--ink-1);
}

.inv-row--open {
  background: var(--primary-tint);
  box-shadow: inset 3px 0 0 var(--color-primary);
}

.inv-bags-table tbody tr.inv-row--open:hover { background: var(--primary-tint); }

.inv-open {
  display: flex;
  align-items: baseline;
  gap: 0.375rem;
}

.inv-open + .inv-bar { max-width: 9rem; }

.inv-never {
  color: var(--warning-ink);
  font-weight: 500;
}

.inv-never .inv-dot { background: var(--color-warning); }

.inv-result {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.375rem;
}

.inv-foot {
  padding: 0.625rem var(--pad-card);
  border-top: 1px solid var(--hairline);
  background: var(--surface-sunken);
  border-radius: 0 0 var(--radius-box) var(--radius-box);
  font-size: var(--fs-xs);
  color: var(--ink-3);
}

/* Lista de bolsas (celu). */
.inv-bag-list > li + li { border-top: 1px solid var(--hairline); }

.inv-bag-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem var(--pad-card);
}

/* ── Conteo ── */
.inv-count {
  display: grid;
  gap: 0.75rem;
}

.inv-progress {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.inv-progress__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
}

.inv-progress__back {
  font-weight: 600;
  color: var(--ink-1);
}

.inv-progress__label {
  display: none;
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--ink-3);
}

.inv-progress__count {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--ink-2);
}

.inv-legend {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.3125rem 0.75rem;
  font-size: var(--fs-sm);
}

.inv-legend dt { color: var(--ink-2); }
.inv-legend dd { text-align: right; font-weight: 600; color: var(--ink-1); }

.inv-progress__money {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--hairline);
}

.inv-progress__money-label {
  font-size: var(--fs-xs);
  font-weight: 500;
  color: var(--ink-3);
}

.inv-progress__money-value {
  font-family: var(--font-raleway);
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.2;
}

.inv-progress__money-hint {
  font-size: var(--fs-xs);
  color: var(--ink-3);
}

/* Celu: la barra de avance queda pegada debajo del topbar y lo demás del
   panel se esconde; la plata y el botón Cerrar van en la barra de abajo. */
.inv-countbar {
  position: fixed;
  z-index: 30;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.625rem 1rem calc(0.625rem + env(safe-area-inset-bottom));
  background: var(--surface);
  border-top: 1px solid var(--hairline);
  box-shadow: 0 -6px 18px -12px oklch(22% 0.012 70 / 0.3);
}

@media (width < 40rem) {
  .inv-count-page { padding-bottom: 5rem; }
  .inv-count-page > .page-header { display: none; }
  .inv-progress {
    position: sticky;
    z-index: 20;
    top: 3.125rem;
    margin: 0 -1rem;
    padding: 0.625rem 1rem;
    background: var(--surface);
    border-bottom: 1px solid var(--hairline);
  }
  .inv-legend,
  .inv-progress__money { display: none; }
}

.inv-count__lines {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  min-width: 0;
}

.inv-count__tools {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.segmented > button {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.3125rem;
  padding: 0 0.625rem;
  border-radius: calc(var(--radius-field) - 2px);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--ink-2);
  white-space: nowrap;
  cursor: pointer;
  transition: background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.segmented > button b {
  font-weight: 600;
  color: var(--ink-3);
}

.segmented > button[aria-pressed="true"] {
  background: var(--color-base-200);
  color: var(--ink-1);
  font-weight: 600;
  box-shadow: inset 0 0 0 1px var(--hairline);
}

.segmented > button:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 1px;
}

.inv-count__search {
  display: flex;
  align-items: center;
  height: 2.25rem;
  padding: 0 0.625rem;
  gap: 0.5rem;
  border: 1px solid var(--hairline-strong);
  border-radius: var(--radius-field);
  background: var(--surface);
  color: var(--ink-3);
}

.inv-count__search:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px var(--primary-tint);
}

.inv-count__search input {
  flex: 1;
  min-width: 0;
  height: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  font-size: var(--fs-sm);
  color: var(--ink-1);
}

.inv-lines__empty {
  padding: 1.5rem var(--pad-card);
  text-align: center;
  font-size: var(--fs-sm);
  color: var(--ink-3);
}

/* Una pieza del conteo. El filete de la izquierda dice en qué quedó. */
.inv-line {
  display: block;
  padding: 0.625rem var(--pad-card);
  outline: 0;
}

.inv-lines > [data-line] ~ [data-line] {
  border-top: 1px solid var(--hairline);
}

.inv-line--ok { box-shadow: inset 3px 0 0 var(--color-success); }
.inv-line--short { box-shadow: inset 3px 0 0 var(--color-error); }
.inv-line--over,
.inv-line--extra { box-shadow: inset 3px 0 0 var(--color-warning); }

.inv-line.is-current,
.inv-line:focus-visible {
  background: var(--primary-tint);
}

.inv-line__main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
}

.inv-line__name {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.inv-line__title {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--ink-1);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.inv-line__code {
  font-size: var(--fs-xs);
  color: var(--ink-3);
}

.inv-line__hay-m {
  font-weight: 600;
  color: var(--ink-2);
}

.inv-line__hay {
  display: none;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--ink-2);
}

.inv-line__state {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
}

.inv-line__ratio {
  font-size: var(--fs-sm);
  color: var(--ink-2);
}

/* "Están las N": verde de contorno, que se lee como la respuesta por defecto
   sin gritar más que el botón Cerrar. En el celu queda solo el ✓ grande. */
.inv-ok-btn {
  min-width: 2.75rem;
  height: 2.5rem;
  border: 1px solid var(--color-success);
  background: var(--success-tint);
  color: var(--success-ink);
}

.inv-ok-btn:hover {
  background: var(--success-tint-strong);
  border-color: var(--color-success);
}

.inv-ok-btn__label { display: none; }

.inv-link {
  padding: 0;
  border: 0;
  background: none;
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--primary-ink);
  cursor: pointer;
  white-space: nowrap;
}

.inv-link:hover { text-decoration: underline; }
.inv-link.text-error-ink { color: var(--error-ink); }

.inv-line__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.inv-line__toggle-label { display: none; }

.inv-line__toggle-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--hairline-strong);
  border-radius: var(--radius-field);
  font-size: 1.125rem;
  color: var(--ink-2);
}

.inv-line__note-text {
  margin: 0.375rem 0 0 3.75rem;
  font-size: var(--fs-xs);
  font-style: italic;
  color: var(--ink-3);
}

.inv-line__edit {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-top: 0.625rem;
  padding: 0.625rem 0.75rem;
  border-radius: var(--radius-field);
  background: var(--surface-sunken);
  font-size: var(--fs-sm);
}

.inv-line__edit[hidden] { display: none; }

.inv-line__ask {
  flex-basis: 100%;
  font-weight: 600;
  color: var(--ink-1);
}

.inv-line__note { flex: 1 1 12rem; min-width: 0; }
.inv-line__note[hidden] { display: none; }

.inv-count__actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: var(--pad-card);
}

.inv-extra > summary {
  list-style: none;
  white-space: normal;
}

.inv-extra > summary::-webkit-details-marker { display: none; }

.inv-count__keys {
  display: none;
  font-size: var(--fs-xs);
  color: var(--ink-3);
}

@media (width >= 40rem) {
  .inv-countbar { display: none; }
  .inv-count__tools {
    flex-direction: row;
    align-items: center;
  }
  .inv-count__tools .segmented { flex: 0 0 auto; width: auto; }
  .inv-count__tools .segmented > button { flex: 0 0 auto; padding: 0 0.75rem; }
  .inv-count__search { flex: 1; min-width: 0; }
  .inv-line { padding: 0.5rem var(--pad-card); }
  .inv-line__main { grid-template-columns: auto minmax(0, 1fr) 4.5rem minmax(13rem, auto); }
  .inv-line__hay-m { display: none; }
  .inv-line__hay { display: block; text-align: right; }
  .inv-ok-btn { height: 2rem; }
  .inv-ok-btn__label { display: inline; }
  .inv-line__toggle-label { display: inline; }
  .inv-line__toggle-icon { display: none; }
  .inv-line__ask { flex-basis: auto; }
  .inv-count__keys { display: block; }
  .inv-progress {
    padding: var(--pad-card);
    border: 1px solid var(--hairline);
    border-radius: var(--radius-box);
    background: var(--surface);
    box-shadow: var(--elev-1);
  }
  .inv-progress__back { display: none; }
  .inv-progress__label { display: block; }
}

/* Compu ancha: lista a la izquierda, panel de avance y acciones fijo a la
   derecha para que lo que falta esté siempre a la vista. */
@media (width >= 64rem) {
  .inv-count {
    grid-template-columns: minmax(0, 1fr) 18rem;
    grid-template-areas:
      "lines progress"
      "lines actions";
    grid-template-rows: auto 1fr;
    align-items: start;
    column-gap: 1.25rem;
  }
  .inv-count__lines { grid-area: lines; }
  .inv-count > .inv-progress { grid-area: progress; }
  .inv-count__actions { grid-area: actions; }
}

/* ── Informe y Faltantes ── */
.inv-hero {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.125rem var(--pad-card);
}

.inv-hero__main {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}

.inv-hero__label {
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--ink-3);
}

.inv-hero__value {
  font-family: var(--font-raleway);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--ink-1);
}

.inv-hero__value.text-error-ink { color: var(--error-ink); }
.inv-hero__value.text-success-ink { color: var(--success-ink); }

.inv-hero__hint {
  font-size: var(--fs-sm);
  color: var(--ink-3);
}

.inv-hero__chart {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.inv-hero__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  font-size: var(--fs-sm);
  color: var(--ink-2);
}

@media (width >= 40rem) {
  .inv-hero {
    flex-direction: row;
    align-items: center;
    gap: 2rem;
    padding: 1.25rem 1.5rem;
  }
  .inv-hero__main { flex: 0 0 auto; }
  .inv-hero__chart { flex: 1; min-width: 16rem; }
  .inv-hero__value { font-size: 2.25rem; }
}

.inv-hero--compact .inv-hero__value { font-size: 1.75rem; }

.inv-report-grid {
  display: grid;
  gap: 1rem;
  align-items: start;
}

@media (width >= 64rem) {
  .inv-report-grid { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
}

.inv-card-title {
  padding: 0.875rem var(--pad-card) 0.5rem;
  font-size: var(--fs-section);
  font-weight: 600;
  color: var(--ink-1);
}

.inv-card-hint {
  padding: 0 var(--pad-card) 0.5rem;
  margin-top: -0.25rem;
  font-size: var(--fs-xs);
  color: var(--ink-3);
}

details > summary.inv-card-title {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  list-style: none;
  cursor: pointer;
}

details > summary.inv-card-title::-webkit-details-marker { display: none; }

details > summary.inv-card-title::after {
  content: "";
  width: 0.4375rem;
  height: 0.4375rem;
  margin-left: auto;
  border-right: 1.5px solid var(--ink-3);
  border-bottom: 1.5px solid var(--ink-3);
  transform: rotate(45deg) translateY(-2px);
  transition: transform var(--t-fast) var(--ease);
}

details[open] > summary.inv-card-title::after { transform: rotate(-135deg); }
details:not([open]) > summary.inv-card-title { padding-bottom: 0.875rem; }

.inv-piece {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.inv-piece__name {
  display: block;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--ink-1);
}

a.inv-piece__name:hover { text-decoration: underline; }

.inv-piece__code {
  display: block;
  font-size: var(--fs-xs);
  color: var(--ink-3);
}

.inv-piece__detail {
  margin-top: 0.125rem;
  font-size: var(--fs-xs);
  color: var(--ink-2);
}

.inv-piece__note {
  margin-top: 0.125rem;
  font-size: var(--fs-xs);
  font-style: italic;
  color: var(--ink-3);
}

.inv-plain-list > li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.625rem var(--pad-card);
  border-top: 1px solid var(--hairline);
}

.inv-missing-group__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding-right: var(--pad-card);
}

.inv-missing-group__head .inv-card-title { padding-bottom: 0.125rem; }
.inv-missing-group__head p { padding: 0 var(--pad-card) 0.75rem; }

.inv-missing-group__total {
  padding-top: 0.875rem;
  font-family: var(--font-raleway);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--error-ink);
  white-space: nowrap;
}

.inv-missing-note {
  max-width: 18rem;
  font-size: var(--fs-xs);
  font-style: italic;
  color: var(--ink-2);
}

.inv-row-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
}

.inv-plain-list > li.inv-missing-item {
  flex-direction: column;
  align-items: stretch;
}

/* Ajustar stock (D252): stock de ahora → nuevo y el botón al pie. */
.inv-adjust__change {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: var(--fs-sm);
  white-space: nowrap;
}

.inv-adjust__actions {
  display: flex;
  justify-content: flex-end;
  padding: 0.75rem var(--pad-card);
  border-top: 1px solid var(--hairline);
}

/* ── Armar bolsas ── */
.inv-strip {
  padding: 0.75rem var(--pad-card);
  border: 1px solid color-mix(in oklch, var(--mustard) 35%, transparent);
  border-radius: var(--radius-box);
  background: var(--mustard-tint);
  color: var(--mustard-ink);
  font-size: var(--fs-sm);
  line-height: 1.5;
}

.inv-strip .link { color: inherit; text-decoration: underline; }

.inv-bagrows { list-style: none; }

.inv-bagrow {
  display: flex;
  align-items: flex-start;
  gap: 0.25rem;
  padding: 0.375rem 0.5rem;
}

.inv-bagrow + .inv-bagrow { border-top: 1px solid var(--hairline); }

.inv-bagrow__move {
  display: flex;
  flex-direction: column;
  padding-top: 0.125rem;
}

.inv-bagrow__body {
  flex: 1;
  min-width: 0;
}

.inv-bagrow__summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem 0.75rem;
  min-height: 3rem;
  padding: 0.5rem 0.5rem 0.5rem 0;
  list-style: none;
  cursor: pointer;
}

.inv-bagrow__summary::-webkit-details-marker { display: none; }

.inv-bagrow__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 999px;
  background: var(--color-base-200);
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--ink-2);
}

.inv-bagrow__chips { flex: 1 1 12rem; }

.inv-bagrow__count {
  font-size: var(--fs-sm);
  color: var(--ink-3);
}

.inv-bagrow__body[open] .inv-bagrow__edit { visibility: hidden; }

.inv-bagedit {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0 0.5rem 0.625rem 0;
  padding: 0.875rem var(--pad-card);
  border-radius: var(--radius-field);
  background: var(--surface-sunken);
  box-shadow: inset 3px 0 0 var(--color-primary);
}

.inv-bagedit__actions {
  display: flex;
  gap: 0.5rem;
}

.inv-bagedit__delete {
  padding-top: 0.625rem;
  border-top: 1px solid var(--hairline);
}

.inv-field {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.inv-field__label {
  margin-bottom: 0.375rem;
  padding: 0;
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--ink-2);
}

label.inv-field .inv-field__label { margin-bottom: 0; }

.inv-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}

/* Chips marcables: el checkbox queda oculto pero accesible; el chip marcado
   se tiñe del primario y suma un ✓. */
.inv-check {
  position: relative;
  cursor: pointer;
}

.inv-check input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}

.inv-check span {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  height: 2rem;
  padding: 0 0.75rem;
  border: 1px solid var(--hairline-strong);
  border-radius: 999px;
  background: var(--surface);
  font-size: var(--fs-sm);
  color: var(--ink-2);
  transition: background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}

.inv-check:hover span { border-color: var(--ink-4); }

.inv-check input:checked + span {
  border-color: var(--color-primary);
  background: var(--primary-tint);
  color: var(--primary-ink);
  font-weight: 600;
}

.inv-check input:checked + span::before { content: "✓"; }

.inv-check input:focus-visible + span {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.inv-newbag > .inv-bagedit {
  margin: 0 var(--pad-card) var(--pad-card);
}

/* Llenado inteligente: estado por campo, fuentes y pasos de espera (lote 3) */
.ai-hint { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12px; color: oklch(52% 0.011 74); }
.ai-restore { display: inline-flex; align-items: center; gap: 4px; min-height: 32px; padding: 6px 0; border: 0; background: none; font-size: 12px; font-weight: 600; color: var(--primary-ink); text-decoration: underline; cursor: pointer; }
.ai-restore:hover { color: oklch(22% 0.012 70); }
.ai-restore:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; border-radius: 4px; }
.ai-pill { display: inline-flex; align-items: center; border-radius: 999px; padding: 2px 8px; font-size: 11px; font-weight: 600; line-height: 1.4; white-space: nowrap; vertical-align: middle; }
.ai-pill--cambia { background: var(--warning-tint); color: var(--warning-ink); }
.ai-pill--nuevo { background: var(--info-tint); color: var(--info-ink); }
.ai-pill--igual { background: var(--color-base-200); color: oklch(41% 0.012 72); }
.ai-pill--conserva { border: 1px dashed oklch(90.2% 0.013 78); color: oklch(52% 0.011 74); }
.ai-pill--manual { background: var(--primary-tint); color: var(--primary-ink); }
.ai-src { display: inline-flex; border-radius: 6px; padding: 1px 6px; font-size: 11px; background: oklch(96.4% 0.008 82); color: oklch(41% 0.012 72); }
.input-man { border-color: var(--color-primary); background: var(--primary-tint); }

.ai-steps { flex-direction: column; gap: 12px; padding: 16px; border-radius: 12px; background: var(--primary-tint); font-size: 13px; }
.ai-steps:not(.hidden) { display: flex; }
.ai-steps.hidden { display: none; }
.ai-steps__list { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.ai-step { display: flex; align-items: center; gap: 10px; }
.ai-step__dot { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; box-sizing: border-box; width: 20px; height: 20px; border-radius: 999px; border: 2px solid oklch(90.2% 0.013 78); }
.ai-step__dot svg { display: none; width: 12px; height: 12px; }
.ai-step[data-state="done"] .ai-step__dot { border-color: var(--color-primary); background: var(--color-primary); color: #fff; }
.ai-step[data-state="done"] .ai-step__check { display: block; }
.ai-step[data-state="now"] .ai-step__dot { border-color: var(--color-primary); color: var(--color-primary); }
.ai-step[data-state="now"] .ai-step__arc { display: block; animation: ai-step-spin 0.9s linear infinite; }
.ai-step__text { color: oklch(52% 0.011 74); }
.ai-step[data-state="done"] .ai-step__text { color: oklch(41% 0.012 72); }
.ai-step[data-state="now"] .ai-step__text { color: oklch(22% 0.012 70); font-weight: 600; }
.ai-steps__note { margin: 0; font-size: 12px; color: oklch(52% 0.011 74); }
@keyframes ai-step-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ai-step[data-state="now"] .ai-step__arc { animation: none; } }

@media (max-width: 47.99rem) {
  .ai-restore { flex-basis: 100%; }
  .ai-steps, .ai-steps__list { gap: 14px; }
  .ai-steps { font-size: 14px; }
  .ai-step__dot { width: 22px; height: 22px; }
  .ai-fill-preview .input, .ai-fill-preview .textarea { font-size: 16px; }
}

/* ── Inventario · vista rápida de una pieza ─────────────────────────────
   El nombre de la pieza es un botón que abre la ventana sin salir de la
   pantalla. Verde con subrayado punteado para que se note que se toca. */
.inv-preview-trigger {
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-weight: 600;
  color: var(--primary-ink);
  text-align: left;
  text-decoration: underline dotted;
  text-underline-offset: 3px;
  cursor: pointer;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

.inv-preview-trigger:hover { text-decoration-style: solid; }

.inv-preview-trigger:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
  border-radius: 2px;
}

.inv-only-mobile-inline { display: inline; }
.inv-only-desktop-inline { display: none; }
.inv-only-desktop-group { display: none; }

@media (width >= 40rem) {
  .inv-only-mobile-inline { display: none; }
  .inv-only-desktop-inline { display: inline; }
  .inv-only-desktop-group { display: table-header-group; }
}

.modal-box.inv-preview__box {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-height: 94vh;
  padding: 0;
  overflow: hidden;
}

.inv-preview__grip {
  align-self: center;
  width: 2.5rem;
  height: 0.25rem;
  margin-top: 0.5rem;
  border-radius: 2px;
  background: var(--hairline);
}

.inv-preview__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.5rem 0.5rem 0.625rem 1rem;
}

.inv-preview__title {
  margin: 0;
  font-family: var(--font-raleway);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--ink-1);
  text-wrap: balance;
}

.inv-preview__code {
  margin: 0.125rem 0 0;
  font-size: var(--fs-sm);
  color: var(--ink-2);
}

.inv-preview__code b { color: var(--ink-1); }

.inv-preview__x {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 0;
  border-radius: var(--radius-field);
  background: transparent;
  color: var(--ink-2);
  cursor: pointer;
}

.inv-preview__x:hover { background: var(--surface-sunken); color: var(--ink-1); }

.inv-preview__body {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-height: 0;
  padding: 0 1rem 1rem;
  overflow-y: auto;
}

.inv-preview__label {
  display: block;
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ink-2);
}

.inv-preview__label--warn { color: var(--warning-ink); }

.inv-preview__count {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 0.625rem 0.75rem;
  border: 1px solid var(--warning-tint-strong);
  border-radius: var(--radius-field);
  background: var(--warning-tint);
}

.inv-preview__count-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem 0.875rem;
  font-size: 0.875rem;
}

.inv-preview__count-row .inv-preview__label { display: none; }

.inv-preview__pill {
  padding: 1px 0.625rem;
  border-radius: 999px;
  background: var(--warning-tint-strong);
  color: var(--warning-ink);
  font-weight: 600;
}

.inv-preview__pill--short {
  background: color-mix(in oklab, var(--color-error) 14%, var(--surface));
  color: var(--error-ink);
}

.inv-preview__hint {
  margin: 0;
  font-size: var(--fs-sm);
  line-height: 1.45;
  color: var(--warning-ink);
}

.inv-preview__grid {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.inv-preview__photo {
  display: block;
  width: 100%;
  height: 10rem;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: var(--radius-box);
  background: var(--surface-sunken);
}

.inv-preview__photo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.inv-preview__photo--empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  color: var(--ink-3);
  font-size: var(--fs-sm);
}

.inv-preview__side {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-width: 0;
}

.inv-preview__price {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--ink-1);
}

.inv-preview__tiles {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

.inv-preview__tile {
  display: flex;
  flex-direction: column;
  padding: 0.5rem 0.875rem;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-field);
  font-size: var(--fs-sm);
  color: var(--ink-2);
}

.inv-preview__tile b {
  font-size: 1.5rem;
  line-height: 1.25;
  color: var(--ink-1);
}

.inv-preview__section {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.inv-preview__orders {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.inv-preview__order {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.625rem 0.75rem;
  border-radius: var(--radius-field);
  background: var(--surface-sunken);
  font-size: 0.875rem;
}

.inv-preview__order--count {
  background: var(--warning-tint);
  box-shadow: inset 3px 0 0 var(--color-warning);
}

.inv-preview__order-meta {
  display: flex;
  flex: none;
  align-items: center;
  gap: 0.625rem;
}

.inv-preview__empty {
  margin: 0;
  font-size: 0.875rem;
  color: var(--ink-3);
}

.inv-preview__moves {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}

.inv-preview__moves th {
  padding: 0 0 0.375rem;
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-align: left;
  color: var(--ink-2);
}

.inv-preview__moves th.text-right { text-align: right; }

.inv-preview__moves td {
  padding: 0.4375rem 0.5rem 0.4375rem 0;
  border-top: 1px solid var(--hairline);
}

.inv-preview__moves td:last-child { padding-right: 0; }

.inv-preview__delta { font-weight: 600; }
.inv-preview__delta.is-down { color: var(--error-ink); }
.inv-preview__delta.is-up { color: var(--success-ink); }

.inv-preview__foot {
  display: flex;
  justify-content: flex-end;
  gap: 0.625rem;
  padding: 0.75rem 1rem 1.25rem;
  border-top: 1px solid var(--hairline);
}

.inv-preview__open {
  flex: 1;
  height: 3rem;
  gap: 0.5rem;
}

@media (width >= 40rem) {
  .inv-preview__grip { display: none; }

  .inv-preview__head {
    align-items: center;
    padding: 1.125rem 1rem 1.125rem 1.5rem;
    border-bottom: 1px solid var(--hairline);
  }

  .inv-preview__title { font-size: 1.375rem; }
  .inv-preview__code { font-size: 0.875rem; }

  .inv-preview__x { width: 2.25rem; height: 2.25rem; }

  .inv-preview__body {
    gap: 1.125rem;
    padding: 1rem 1.5rem;
  }

  .inv-preview__count { padding: 0.75rem 1rem; }
  .inv-preview__count-row { font-size: 0.9375rem; }
  .inv-preview__count-row .inv-preview__label { display: inline; }
  .inv-preview__hint { font-size: 0.875rem; }

  .inv-preview__grid {
    display: grid;
    grid-template-columns: 13.75rem minmax(0, 1fr);
    gap: 1.5rem;
  }

  .inv-preview__photo { width: 13.75rem; height: 13.75rem; }
  .inv-preview__side { gap: 1rem; }

  .inv-preview__foot {
    padding: 0.875rem 1.5rem;
    background: var(--surface-sunken);
  }

  .inv-preview__open { flex: none; height: 2.5rem; }
}

/* Panel de edición de una línea de compra (`purchase-line-panel` en la
   ficha). En el celular es la hoja de abajo de siempre; desde `sm` se pega al
   costado derecho con el alto entero de la pantalla, así la tabla de líneas
   sigue a la vista mientras se edita una. */
@media (width >= 40rem) {
  .sm\:modal-middle:has(> .modal-box.purchase-line-panel) {
    place-items: stretch end;
  }

  .sm\:modal-middle > .modal-box.purchase-line-panel {
    --modal-tr: 0;
    --modal-br: 0;
    height: 100dvh;
    max-height: 100dvh;
    width: min(100vw, 34rem);
    scale: 1;
    translate: 0 0;
  }
}
/* ── Finanzas · «Resultado primero» ──────────────────────────────────────────
   Pantalla /finance: resultado del mes arriba (número + cascada), dos paneles
   (gastos operativos / mercadería), mapa de calor y la tabla de gastos.
   Sin rojo nunca: lo que sube es ámbar (`--warning-ink`), lo que baja, gris.
   Los verdes h1-h5 del mapa son una rampa propia (matiz 170, el de la marca). */
:root {
  --fin-h1: oklch(95.5% 0.028 170);
  --fin-h2: oklch(89.5% 0.055 170);
  --fin-h3: oklch(81% 0.08 170);
  --fin-h4: oklch(66% 0.1 170);
  --fin-h5: oklch(51% 0.105 170);
  --fin-neutral-bar: oklch(80% 0.012 75);
}

.fin-hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  align-items: center;
  padding: 0.75rem;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: 0.75rem;
}

@media (width >= 48rem) {
  .fin-hero {
    grid-template-columns: 14.5rem minmax(0, 1fr);
    gap: 1.375rem;
    padding: 1rem 1.125rem;
  }
}

.fin-hero__label { font-size: 0.72rem; font-weight: 600; color: var(--ink-3); }

.fin-hero__big {
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--ink-1);
}

@media (width >= 48rem) { .fin-hero__big { font-size: 2.125rem; } }

.fin-hero__vs { margin-top: 0.125rem; font-size: 0.75rem; color: var(--ink-3); }
.fin-hero__vs b { font-weight: 600; color: var(--ink-1); font-variant-numeric: tabular-nums; }

.fin-wf { display: flex; flex-direction: column; gap: 0.375rem; }

.fin-wf__row {
  display: grid;
  grid-template-columns: 4.375rem minmax(0, 1fr) 4rem;
  gap: 0.375rem;
  align-items: center;
  font-size: 0.6875rem;
  font-variant-numeric: tabular-nums;
}

@media (width >= 40rem) {
  .fin-wf__row {
    grid-template-columns: 9.5rem minmax(0, 1fr) 6.25rem;
    gap: 0.625rem;
    font-size: 0.75rem;
  }
}

.fin-wf__track { position: relative; height: 1.125rem; }
.fin-wf__track i { position: absolute; top: 0; bottom: 0; border-radius: 4px; }
.fin-wf__track .is-sale { background: var(--color-primary); }
.fin-wf__track .is-neg { background: var(--fin-neutral-bar); }
.fin-wf__track .is-res { background: var(--primary-ink); }
.fin-wf__v { text-align: right; font-weight: 600; }
.fin-wf__row.is-result { border-top: 1px solid var(--hairline); padding-top: 0.375rem; }
.fin-wf__note { margin-top: 0.5rem; font-size: 0.6875rem; color: var(--ink-3); }

.fin-two { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.75rem; align-items: start; }

@media (width >= 51.25rem) {
  .fin-two { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
}

.fin-pane {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 0.6875rem 0.75rem;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: 0.625rem;
}

@media (width >= 40rem) { .fin-pane { padding: 0.875rem 1rem; } }

.fin-pane__title { font-size: 0.875rem; font-weight: 620; color: var(--ink-1); }
.fin-pane__what { margin-top: -0.5rem; font-size: 0.6875rem; color: var(--ink-3); }
.fin-pane__what--flow { margin-top: 0.125rem; }

.fin-ptot { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.625rem; }
.fin-ptot b { font-size: 1.375rem; font-weight: 650; font-variant-numeric: tabular-nums; }

.fin-cols {
  position: relative;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.3125rem;
  height: 4rem;
  align-items: end;
  padding-top: 0.25rem;
}

@media (width >= 40rem) { .fin-cols { gap: 0.5rem; height: 5.75rem; } }

.fin-cols > div {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  height: 100%;
  gap: 0.1875rem;
}

.fin-cols i { display: block; width: 62%; min-height: 2px; border-radius: 4px 4px 0 0; background: var(--fin-neutral-bar); }
.fin-cols .is-on i { background: var(--color-primary); }
.fin-cols b { font-size: 0.59rem; font-weight: 600; color: var(--ink-3); font-variant-numeric: tabular-nums; }

.fin-cols__avg {
  position: absolute;
  left: 0;
  right: 0;
  height: 0;
  border-top: 1.5px dashed var(--ink-4);
  pointer-events: none;
}

.fin-cols__avg span {
  position: absolute;
  left: 0;
  top: -0.875rem;
  padding: 0 0.1875rem;
  font-size: 0.59rem;
  color: var(--ink-3);
  background: var(--surface);
}

.fin-cols__labels {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.5rem;
  font-size: 0.625rem;
  color: var(--ink-3);
  text-align: center;
}

.fin-cols__labels .is-on { color: var(--ink-1); font-weight: 600; }

.fin-cat {
  display: grid;
  grid-template-columns: 6rem minmax(0, 1fr) 4.5rem;
  gap: 0.5rem;
  align-items: center;
  padding: 0.125rem 0;
  font-size: 0.6875rem;
  font-variant-numeric: tabular-nums;
}

.fin-cat__pct { display: none; text-align: right; font-size: 0.6875rem; color: var(--ink-3); }
.fin-cat__amount { text-align: right; }
.fin-cat__track { display: block; }
.fin-cat__track i { display: block; height: 0.5rem; min-width: 2px; border-radius: 0 4px 4px 0; background: var(--color-primary); }

@media (width >= 40rem) {
  .fin-cat { grid-template-columns: 8.125rem minmax(0, 1fr) 4.875rem 2.125rem; font-size: 0.75rem; }
  .fin-cat__pct { display: block; }
}

.fin-who { display: flex; flex-wrap: wrap; align-items: center; gap: 0.375rem; font-size: 0.71rem; }
.fin-who > span:not(.text-muted) { border: 1px solid var(--hairline); background: var(--surface-sunken); border-radius: 6px; padding: 0.1875rem 0.5rem; }
.fin-who b { font-variant-numeric: tabular-nums; }

.fin-eq { font-size: 0.75rem; font-variant-numeric: tabular-nums; color: var(--ink-3); line-height: 1.6; }
.fin-eq b { color: var(--ink-1); }

.fin-rec { display: flex; flex-direction: column; gap: 0.375rem; border-top: 1px solid var(--hairline); padding-top: 0.625rem; }
.fin-rec__top { display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; font-size: 0.75rem; font-variant-numeric: tabular-nums; }
.fin-rec__more { margin-left: auto; }
.fin-rec__more[open] { width: 100%; }
.fin-rec__more > summary { text-align: right; }

.fin-link,
.fin-more > summary,
.fin-rec__more > summary {
  cursor: pointer;
  color: var(--primary-ink);
  font-size: 0.75rem;
  font-weight: 600;
  list-style: none;
}

.fin-more > summary::-webkit-details-marker,
.fin-rec__more > summary::-webkit-details-marker { display: none; }

.fin-up { color: var(--warning-ink); font-weight: 600; }
.fin-dn { color: var(--ink-3); }

.fin-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem; font-size: 0.656rem; color: var(--ink-3); }
.fin-legend i { display: inline-block; width: 1.375rem; height: 0.625rem; border-radius: 2px; }
.fin-legend .h1, .fin-hm .h1 { background: var(--fin-h1); }
.fin-legend .h2, .fin-hm .h2 { background: var(--fin-h2); }
.fin-legend .h3, .fin-hm .h3 { background: var(--fin-h3); }
.fin-legend .h4, .fin-hm .h4 { background: var(--fin-h4); }
.fin-legend .h5, .fin-hm .h5 { background: var(--fin-h5); }

.fin-hm-scroll { overflow-x: auto; }

.fin-hm {
  width: 100%;
  min-width: 34rem;
  border-collapse: separate;
  border-spacing: 2px;
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
}

.fin-hm th {
  padding: 0.25rem 0.375rem;
  text-align: right;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--ink-3);
}

.fin-hm th:first-child,
.fin-hm th.fin-hm__var { text-align: left; }
.fin-hm td { padding: 0.375rem 0.4375rem; text-align: right; border-radius: 4px; }
.fin-hm td.fin-hm__k { padding-left: 0.125rem; text-align: left; font-weight: 600; white-space: nowrap; }
.fin-hm td.fin-hm__var { text-align: left; white-space: nowrap; font-size: 0.6875rem; }
.fin-hm .h0 { background: var(--surface-sunken); color: var(--ink-4); }
.fin-hm .h4,
.fin-hm .h5 { color: oklch(99% 0 0); }
.fin-hm .cur { outline: 2px solid var(--ink-1); outline-offset: -2px; }
.fin-hm__tot td { font-weight: 700; border-top: 1px solid var(--hairline); border-radius: 0; }

/* Controles que en la compu aparecen al pasar el mouse (`opacity-0
   group-hover:opacity-100`): en una pantalla táctil no hay hover, así que
   quedan siempre a la vista. Ej.: «Hacer principal» en las fotos del producto. */
@media (hover: none) {
  [data-touch-visible] {
    opacity: 1;
  }
}

/* «Llegó por» de Nuevo pedido: cinco canales que en el celular no caben en una
   fila de alto fijo ("Boca a boca" se cortaba), así que pasan a dos líneas. */
.segmented--wrap {
  height: auto;
  flex-wrap: wrap;
}

.segmented--wrap > .segmented__option {
  flex: 1 1 auto;
  min-height: 2rem;
  padding-inline: 0.5rem;
}

/* «Forma de pago» de Nuevo pedido: cuatro opciones en una fila del celular
   cortaban los nombres («Transfer…», «Todavía …»), así que ahí van de a dos
   por fila. Desde `sm` vuelven a ser una sola fila. */
@media (max-width: 639.98px) {
  .segmented--pairs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    height: auto;
  }

  .segmented--pairs > .segmented__option {
    min-height: 2rem;
  }
}
