/*! 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-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking: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-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-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:Inter, ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-800:oklch(47% .157 37.304);--color-orange-900:oklch(40.8% .123 38.172);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-emerald-950:oklch(26.2% .051 172.552);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--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;--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.7rem;--radius-lg:.9rem;--radius-xl:1rem;--radius-2xl:1.25rem;--radius-3xl:1.75rem;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-3xl:64px;--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);--font-display:Montserrat, Inter, sans-serif;--font-logo:"Poiret One", Montserrat, sans-serif;--color-ibri-50:#e6fbfb;--color-ibri-100:#c9f5f5;--color-ibri-200:#8fecec;--color-ibri-500:var(--ibri-500,#03c9c9);--color-ibri-600:#12a3a3;--color-ibri-700:#0a7d7d;--color-ibri-800:#086868;--color-acento-600:#12a3a3;--color-acento-700:#0a7d7d;--color-naranja-400:#ffd166;--color-naranja-500:#ffc233;--color-tinta-900:#1a1a1a;--color-tinta-700:#212529}}@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}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.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}.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}.inset-y-0{inset-block:0}.-top-1\.5{top:calc(var(--spacing) * -1.5)}.-top-2{top:calc(var(--spacing) * -2)}.-top-10{top:calc(var(--spacing) * -10)}.-top-24{top:calc(var(--spacing) * -24)}.top-0{top:0}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-full{top:100%}.-right-0\.5{right:calc(var(--spacing) * -.5)}.-right-2{right:calc(var(--spacing) * -2)}.-right-10{right:calc(var(--spacing) * -10)}.-right-24{right:calc(var(--spacing) * -24)}.right-0{right:0}.right-1\.5{right:calc(var(--spacing) * 1.5)}.-bottom-0\.5{bottom:calc(var(--spacing) * -.5)}.-bottom-1{bottom:calc(var(--spacing) * -1)}.-bottom-32{bottom:calc(var(--spacing) * -32)}.bottom-0{bottom:0}.-left-20{left:calc(var(--spacing) * -20)}.left-0{left:0}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.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-4{margin-inline:calc(var(--spacing) * -4)}.mx-auto{margin-inline:auto}.my-6{margin-block:calc(var(--spacing) * 6)}.my-8{margin-block:calc(var(--spacing) * 8)}.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)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-auto{margin-top:auto}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-1{margin-left:var(--spacing)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.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-16{height:calc(var(--spacing) * 16)}.h-80{height:calc(var(--spacing) * 80)}.h-\[140px\]{height:140px}.h-auto{height:auto}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.min-h-screen{min-height:100vh}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.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-11{width:calc(var(--spacing) * 11)}.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-40{width:calc(var(--spacing) * 40)}.w-52{width:calc(var(--spacing) * 52)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\[90vw\]{width:90vw}.w-\[92vw\]{width:92vw}.w-\[140px\]{width:140px}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-full{min-width:100%}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-zoom-in{cursor:zoom-in}.resize{resize:both}.scroll-mt-20{scroll-margin-top:calc(var(--spacing) * 20)}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.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-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}: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)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}: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-red-200>:not(:last-child)){border-color:var(--color-red-200)}:where(.divide-slate-100>:not(:last-child)){border-color:var(--color-slate-100)}.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-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-x-2{border-inline-style:var(--tw-border-style);border-inline-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-4{border-bottom-style:var(--tw-border-style);border-bottom-width:4px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-acento-600{border-color:var(--color-acento-600)}.border-amber-100{border-color:var(--color-amber-100)}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-300{border-color:var(--color-amber-300)}.border-emerald-100{border-color:var(--color-emerald-100)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-green-200{border-color:var(--color-green-200)}.border-green-300{border-color:var(--color-green-300)}.border-ibri-100{border-color:var(--color-ibri-100)}.border-ibri-200{border-color:var(--color-ibri-200)}.border-ibri-500{border-color:var(--color-ibri-500)}.border-ibri-600{border-color:var(--color-ibri-600)}.border-naranja-400{border-color:var(--color-naranja-400)}.border-orange-200{border-color:var(--color-orange-200)}.border-orange-300{border-color:var(--color-orange-300)}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-300{border-color:var(--color-purple-300)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300{border-color:var(--color-slate-300)}.bg-\[\#F8F9FA\]{background-color:#f8f9fa}.bg-acento-600{background-color:var(--color-acento-600)}.bg-acento-600\/10{background-color:#12a3a31a}@supports (color:color-mix(in lab, red, red)){.bg-acento-600\/10{background-color:color-mix(in oklab, var(--color-acento-600) 10%, transparent)}}.bg-acento-700{background-color:var(--color-acento-700)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-600{background-color:var(--color-amber-600)}.bg-black\/45{background-color:#00000073}@supports (color:color-mix(in lab, red, red)){.bg-black\/45{background-color:color-mix(in oklab, var(--color-black) 45%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-emerald-700{background-color:var(--color-emerald-700)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-600{background-color:var(--color-green-600)}.bg-ibri-50{background-color:var(--color-ibri-50)}.bg-ibri-100{background-color:var(--color-ibri-100)}.bg-ibri-500,.bg-ibri-500\/30{background-color:var(--color-ibri-500)}@supports (color:color-mix(in lab, red, red)){.bg-ibri-500\/30{background-color:color-mix(in oklab, var(--color-ibri-500) 30%, transparent)}}.bg-ibri-600{background-color:var(--color-ibri-600)}.bg-ibri-700{background-color:var(--color-ibri-700)}.bg-ibri-800{background-color:var(--color-ibri-800)}.bg-naranja-400{background-color:var(--color-naranja-400)}.bg-naranja-400\/20{background-color:#ffd16633}@supports (color:color-mix(in lab, red, red)){.bg-naranja-400\/20{background-color:color-mix(in oklab, var(--color-naranja-400) 20%, transparent)}}.bg-orange-50{background-color:var(--color-orange-50)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-600{background-color:var(--color-orange-600)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-700{background-color:var(--color-red-700)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-300{background-color:var(--color-slate-300)}.bg-slate-600{background-color:var(--color-slate-600)}.bg-slate-700{background-color:var(--color-slate-700)}.bg-slate-800{background-color:var(--color-slate-800)}.bg-tinta-900{background-color:var(--color-tinta-900)}.bg-white{background-color:var(--color-white)}.bg-white\/15{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.bg-white\/15{background-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.bg-white\/20{background-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.bg-white\/60{background-color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.bg-white\/70{background-color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.bg-white\/70{background-color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.bg-white\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-white\/90{background-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.bg-white\/95{background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.bg-white\/95{background-color:color-mix(in oklab, var(--color-white) 95%, transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-emerald-50{--tw-gradient-from:var(--color-emerald-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-ibri-50{--tw-gradient-from:var(--color-ibri-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-ibri-500{--tw-gradient-from:var(--color-ibri-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-ibri-700{--tw-gradient-to:var(--color-ibri-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-white{--tw-gradient-to:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.object-cover{object-fit:cover}.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-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-7{padding:calc(var(--spacing) * 7)}.p-8{padding:calc(var(--spacing) * 8)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.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-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-7{padding-inline:calc(var(--spacing) * 7)}.px-8{padding-inline:calc(var(--spacing) * 8)}.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-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.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-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-28{padding-top:calc(var(--spacing) * 28)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pb-1{padding-bottom:var(--spacing)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pb-20{padding-bottom:calc(var(--spacing) * 20)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pb-\[calc\(5rem\+env\(safe-area-inset-bottom\,0px\)\)\]{padding-bottom:calc(5rem + env(safe-area-inset-bottom,0px))}.pb-\[env\(safe-area-inset-bottom\,0px\)\]{padding-bottom:env(safe-area-inset-bottom,0px)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-\[20px\]{padding-left:20px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-display{font-family:var(--font-display)}.font-logo{font-family:var(--font-logo)}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.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-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.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-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.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-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-acento-700{color:var(--color-acento-700)}.text-amber-400{color:var(--color-amber-400)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-amber-950{color:var(--color-amber-950)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-800{color:var(--color-emerald-800)}.text-emerald-800\/80{color:#005f46cc}@supports (color:color-mix(in lab, red, red)){.text-emerald-800\/80{color:color-mix(in oklab, var(--color-emerald-800) 80%, transparent)}}.text-emerald-900{color:var(--color-emerald-900)}.text-emerald-950{color:var(--color-emerald-950)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-green-900{color:var(--color-green-900)}.text-ibri-50\/80{color:#e6fbfbcc}@supports (color:color-mix(in lab, red, red)){.text-ibri-50\/80{color:color-mix(in oklab, var(--color-ibri-50) 80%, transparent)}}.text-ibri-50\/90{color:#e6fbfbe6}@supports (color:color-mix(in lab, red, red)){.text-ibri-50\/90{color:color-mix(in oklab, var(--color-ibri-50) 90%, transparent)}}.text-ibri-500{color:var(--color-ibri-500)}.text-ibri-600{color:var(--color-ibri-600)}.text-ibri-700{color:var(--color-ibri-700)}.text-ibri-800{color:var(--color-ibri-800)}.text-naranja-500{color:var(--color-naranja-500)}.text-orange-700{color:var(--color-orange-700)}.text-orange-800{color:var(--color-orange-800)}.text-orange-900{color:var(--color-orange-900)}.text-purple-700{color:var(--color-purple-700)}.text-purple-800{color:var(--color-purple-800)}.text-purple-900{color:var(--color-purple-900)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-red-900{color:var(--color-red-900)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-tinta-700{color:var(--color-tinta-700)}.text-tinta-900{color:var(--color-tinta-900)}.text-white{color:var(--color-white)}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\/70{color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.text-white\/90{color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.uppercase{text-transform:uppercase}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.decoration-slate-300{-webkit-text-decoration-color:var(--color-slate-300);-webkit-text-decoration-color:var(--color-slate-300);text-decoration-color:var(--color-slate-300)}.decoration-dotted{text-decoration-style:dotted}.decoration-2{text-decoration-thickness:2px}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-ibri-600{accent-color:var(--color-ibri-600)}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow-\[0_-4px_12px_-4px_rgba\(16\,24\,40\,0\.08\)\]{--tw-shadow:0 -4px 12px -4px var(--tw-shadow-color,#10182814);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-float{--tw-shadow:0 18px 40px -12px var(--tw-shadow-color,#03c9c92e), 0 8px 16px -8px var(--tw-shadow-color,#1018280f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px 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)}.shadow-soft{--tw-shadow:0 4px 12px -2px var(--tw-shadow-color,#1018280f), 0 2px 6px -2px var(--tw-shadow-color,#1018280d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px 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-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-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + 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-ibri-100{--tw-ring-color:var(--color-ibri-100)}.ring-ibri-200{--tw-ring-color:var(--color-ibri-200)}.ring-slate-100{--tw-ring-color:var(--color-slate-100)}.ring-slate-200{--tw-ring-color:var(--color-slate-200)}.ring-white{--tw-ring-color:var(--color-white)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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-all{transition-property:all;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-shadow{transition-property:box-shadow;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}.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\:gap-2:is(:where(.group):hover *){gap:calc(var(--spacing) * 2)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.marker\:content-\[\'\'\] ::marker{--tw-content:"";content:var(--tw-content)}.marker\:content-\[\'\'\]::marker{--tw-content:"";content:var(--tw-content)}.marker\:content-\[\'\'\] ::-webkit-details-marker{--tw-content:"";content:var(--tw-content)}.marker\:content-\[\'\'\]::-webkit-details-marker{--tw-content:"";content:var(--tw-content)}.backdrop\:bg-tinta-900\/50::backdrop{background-color:#1a1a1a80}@supports (color:color-mix(in lab, red, red)){.backdrop\:bg-tinta-900\/50::backdrop{background-color:color-mix(in oklab, var(--color-tinta-900) 50%, transparent)}}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:pb-0:last-child{padding-bottom:0}.focus-within\:border-ibri-600:focus-within{border-color:var(--color-ibri-600)}.focus-within\:ring-2:focus-within{--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)}.focus-within\:ring-ibri-600:focus-within{--tw-ring-color:var(--color-ibri-600)}@media (hover:hover){.hover\:z-10:hover{z-index:10}.hover\:h-64:hover{height:calc(var(--spacing) * 64)}.hover\:w-64:hover{width:calc(var(--spacing) * 64)}.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:gap-2\.5:hover{gap:calc(var(--spacing) * 2.5)}.hover\:border-amber-300:hover{border-color:var(--color-amber-300)}.hover\:border-ibri-500:hover{border-color:var(--color-ibri-500)}.hover\:border-red-300:hover{border-color:var(--color-red-300)}.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:bg-acento-600:hover{background-color:var(--color-acento-600)}.hover\:bg-acento-600\/10:hover{background-color:#12a3a31a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-acento-600\/10:hover{background-color:color-mix(in oklab, var(--color-acento-600) 10%, transparent)}}.hover\:bg-amber-100:hover{background-color:var(--color-amber-100)}.hover\:bg-amber-700:hover{background-color:var(--color-amber-700)}.hover\:bg-emerald-700:hover{background-color:var(--color-emerald-700)}.hover\:bg-emerald-800:hover{background-color:var(--color-emerald-800)}.hover\:bg-green-50:hover{background-color:var(--color-green-50)}.hover\:bg-green-100:hover{background-color:var(--color-green-100)}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-ibri-50:hover{background-color:var(--color-ibri-50)}.hover\:bg-ibri-100:hover{background-color:var(--color-ibri-100)}.hover\:bg-ibri-600:hover{background-color:var(--color-ibri-600)}.hover\:bg-ibri-700:hover{background-color:var(--color-ibri-700)}.hover\:bg-ibri-800:hover{background-color:var(--color-ibri-800)}.hover\:bg-orange-50:hover{background-color:var(--color-orange-50)}.hover\:bg-orange-700:hover{background-color:var(--color-orange-700)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-red-800:hover{background-color:var(--color-red-800)}.hover\:bg-slate-50:hover{background-color:var(--color-slate-50)}.hover\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\:bg-slate-200:hover{background-color:var(--color-slate-200)}.hover\:bg-slate-700:hover{background-color:var(--color-slate-700)}.hover\:bg-slate-800:hover{background-color:var(--color-slate-800)}.hover\:bg-slate-900:hover{background-color:var(--color-slate-900)}.hover\:text-amber-800:hover{color:var(--color-amber-800)}.hover\:text-green-800:hover{color:var(--color-green-800)}.hover\:text-ibri-700:hover{color:var(--color-ibri-700)}.hover\:text-ibri-800:hover{color:var(--color-ibri-800)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-red-800:hover{color:var(--color-red-800)}.hover\:text-slate-700:hover{color:var(--color-slate-700)}.hover\:text-slate-800:hover{color:var(--color-slate-800)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-ibri-500:hover{-webkit-text-decoration-color:var(--color-ibri-500);-webkit-text-decoration-color:var(--color-ibri-500);text-decoration-color:var(--color-ibri-500)}.hover\:shadow-float:hover{--tw-shadow:0 18px 40px -12px var(--tw-shadow-color,#03c9c92e), 0 8px 16px -8px var(--tw-shadow-color,#1018280f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-lg:hover{--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)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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)}.hover\:ring-red-300:hover{--tw-ring-color:var(--color-red-300)}}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:absolute:focus{position:absolute}.focus\:top-2:focus{top:calc(var(--spacing) * 2)}.focus\:left-2:focus{left:calc(var(--spacing) * 2)}.focus\:z-50:focus{z-index:50}.focus\:rounded-xl:focus{border-radius:var(--radius-xl)}.focus\:border-ibri-500:focus{border-color:var(--color-ibri-500)}.focus\:border-ibri-600:focus{border-color:var(--color-ibri-600)}.focus\:border-red-600:focus{border-color:var(--color-red-600)}.focus\:bg-ibri-700:focus{background-color:var(--color-ibri-700)}.focus\:px-4:focus{padding-inline:calc(var(--spacing) * 4)}.focus\:py-2:focus{padding-block:calc(var(--spacing) * 2)}.focus\:text-white:focus{color:var(--color-white)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-1:focus{--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)}.focus\:ring-2:focus{--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)}.focus\:ring-acento-600:focus{--tw-ring-color:var(--color-acento-600)}.focus\:ring-amber-500:focus{--tw-ring-color:var(--color-amber-500)}.focus\:ring-amber-600:focus{--tw-ring-color:var(--color-amber-600)}.focus\:ring-emerald-600:focus{--tw-ring-color:var(--color-emerald-600)}.focus\:ring-ibri-500:focus{--tw-ring-color:var(--color-ibri-500)}.focus\:ring-ibri-600:focus{--tw-ring-color:var(--color-ibri-600)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-red-600:focus{--tw-ring-color:var(--color-red-600)}.focus\:ring-slate-400:focus{--tw-ring-color:var(--color-slate-400)}.focus\:ring-slate-600:focus{--tw-ring-color:var(--color-slate-600)}.focus\:ring-offset-1:focus{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:scale-90:active{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\:bg-ibri-700:active{background-color:var(--color-ibri-700)}.active\:ring-2:active{--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)}@media (hover:hover){.hover\:enabled\:bg-ibri-600:hover:enabled{background-color:var(--color-ibri-600)}.hover\:enabled\:text-white:hover:enabled{color:var(--color-white)}}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:text-slate-300:disabled{color:var(--color-slate-300)}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (hover:hover){.disabled\:hover\:bg-slate-50:disabled:hover{background-color:var(--color-slate-50)}}@media (min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-3{grid-column:span 3/span 3}.sm\:col-span-4{grid-column:span 4/span 4}.sm\:col-span-5{grid-column:span 5/span 5}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:inline-flex{display:inline-flex}.sm\:w-auto{width:auto}.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-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:p-12{padding:calc(var(--spacing) * 12)}.sm\:py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.sm\:py-20{padding-block:calc(var(--spacing) * 20)}.sm\:py-24{padding-block:calc(var(--spacing) * 24)}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}}@media (min-width:48rem){.md\:mt-0{margin-top:0}.md\:mt-2{margin-top:calc(var(--spacing) * 2)}.md\:mt-3{margin-top:calc(var(--spacing) * 3)}.md\:mt-4{margin-top:calc(var(--spacing) * 4)}.md\:mt-5{margin-top:calc(var(--spacing) * 5)}.md\:mt-8{margin-top:calc(var(--spacing) * 8)}.md\:ml-auto{margin-left:auto}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:inline{display:inline}.md\:inline-flex{display:inline-flex}.md\:h-7{height:calc(var(--spacing) * 7)}.md\:h-14{height:calc(var(--spacing) * 14)}.md\:w-7{width:calc(var(--spacing) * 7)}.md\:w-14{width:calc(var(--spacing) * 14)}.md\:w-auto{width:auto}.md\:flex-row{flex-direction:row}.md\:flex-wrap{flex-wrap:wrap}.md\:items-center{align-items:center}.md\:gap-4{gap:calc(var(--spacing) * 4)}.md\:gap-5{gap:calc(var(--spacing) * 5)}.md\:p-6{padding:calc(var(--spacing) * 6)}.md\:p-8{padding:calc(var(--spacing) * 8)}.md\:px-0{padding-inline:0}.md\:py-0{padding-block:0}.md\:py-10{padding-block:calc(var(--spacing) * 10)}.md\:py-12{padding-block:calc(var(--spacing) * 12)}.md\:pt-0{padding-top:0}.md\:pb-0{padding-bottom:0}.md\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.md\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.md\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.md\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:64rem){.lg\:col-span-3{grid-column:span 3/span 3}.lg\:mx-0{margin-inline:0}.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\:flex-row{flex-direction:row}.lg\:justify-start{justify-content:flex-start}.lg\:gap-12{gap:calc(var(--spacing) * 12)}.lg\:text-left{text-align:left}.lg\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}}@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-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{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-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-content{syntax:"*";inherits:false;initial-value:""}@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}@keyframes pulse{50%{opacity:.5}}

/* Estilos propios de iBri (complementan a Tailwind CDN).
   Filosofia visual "Spliiit": limpio, aireado, esquinas muy suaves,
   sin bordes duros -> se usan sombras difusas y fondos gris muy claro. */

:root {
  --ibri-cyan: #03C9C9;
  --ibri-cyan-deep: #0a7d7d;
  --ibri-ink: #1A1A1A;
}

:focus-visible {
  outline-offset: 2px;
}

/* Tailwind preflight pone margin:0 en TODOS los elementos, incluido
   <dialog> -- eso rompe el centrado nativo del navegador para dialog::modal
   (que depende de margin:auto). Lo restauramos, y le sumamos una entrada
   suave (fade + escala) para que se sienta elegante en vez de "aparecer de
   golpe". Si el navegador no soporta la animacion simplemente no anima,
   no rompe nada. */
dialog {
  margin: auto;
}
dialog[open] {
  animation: ibri-dialog-in 0.16s ease-out;
}
dialog::backdrop {
  animation: ibri-backdrop-in 0.16s ease-out;
}
@keyframes ibri-dialog-in {
  from { opacity: 0; transform: scale(0.96); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes ibri-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* --- Banner de mensaje flash: entrada + check animado ---------------------
   Aplica SIEMPRE (escritorio y movil): fundido + leve deslizamiento al
   aparecer. En movil, .ibri-toast (mas abajo) se agrega ADEMAS via JS y su
   propia animacion gana (misma prioridad de cascada, declarada despues en
   este archivo) -- ahi flota y se autodesvanece; aqui solo se queda quieto
   una vez que entro. El check se "dibuja" con stroke-dashoffset usando
   pathLength="100" en el SVG (normaliza cualquier forma a un largo de 100,
   sin calcular perimetros a mano). */
.ibri-flash {
  animation: ibri-flash-in 0.25s ease-out;
}
@keyframes ibri-flash-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}
.ibri-flash-check circle,
.ibri-flash-check path {
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
  animation: ibri-check-draw 0.45s ease-out forwards;
}
.ibri-flash-check path {
  animation-delay: 0.2s;
}
@keyframes ibri-check-draw {
  to { stroke-dashoffset: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .ibri-flash,
  .ibri-flash-check circle,
  .ibri-flash-check path {
    animation: none;
  }
}

/* --- Tarjeta de compra realizada / solicitud enviada (confeti) ------------
   Vive DENTRO del dialog.ibri-sheet de purchase_success_dialog (mismo
   patron que "Grupo creado": hoja completa desde abajo en movil, centrado
   con fade en escritorio -- se define solo abajo, en el bloque de
   dialog.ibri-sheet, cero CSS nuevo necesario para esa parte). Aqui solo
   el check que se dibuja y el confeti que cae dentro de la tarjeta. */
.ibri-drawn-check path {
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
  animation: ibri-check-draw 0.5s ease-out 0.15s forwards;
}
.ibri-confetti {
  position: absolute;
  inset: 0;
  overflow: visible;
  pointer-events: none;
}
.ibri-confetti-piece {
  position: absolute;
  top: -6px;
  width: 7px;
  height: 12px;
  border-radius: 2px;
  opacity: 0;
  animation: ibri-confetti-fall 1.15s ease-in forwards;
}
@keyframes ibri-confetti-fall {
  0% { opacity: 1; transform: translate(0, 0) rotate(0deg); }
  100% { opacity: 0; transform: translate(var(--x, 0px), 150px) rotate(var(--r, 180deg)); }
}
@media (prefers-reduced-motion: reduce) {
  .ibri-drawn-check path {
    animation: none;
    stroke-dashoffset: 0;
  }
  .ibri-confetti-piece {
    display: none;
  }
}

/* Titulos con la sans-serif geometrica (Montserrat). */
h1, h2, h3, .font-display {
  font-family: "Montserrat", "Inter", sans-serif;
  letter-spacing: -0.01em;
}

/* Logotipo con Poiret One (geometrica, moderna, amigable). */
.font-logo {
  font-family: "Poiret One", "Montserrat", sans-serif;
}

/* Spliiit evita bordes solidos visibles: las tarjetas "flotan" con sombra
   suave sobre gris muy claro. Suavizamos los bordes slate heredados para no
   tener que tocar plantilla por plantilla (DRY). */
.border-slate-200,
.border-slate-100 {
  border-color: transparent !important;
}
.border.border-slate-200,
.border.border-slate-100 {
  box-shadow: 0 4px 12px -2px rgba(16, 24, 40, 0.06),
              0 2px 6px -2px rgba(16, 24, 40, 0.05);
}

/* Transicion suave y micro-elevacion al pasar el mouse sobre tarjetas. */
article,
.card-hover {
  transition: transform .18s ease, box-shadow .18s ease;
}
article:hover {
  transform: translateY(-2px);
}

/* Barras de progreso / pills mas redondeadas por defecto. */
button, a, input, select, .rounded, .rounded-md {
  transition: background-color .15s ease, color .15s ease, box-shadow .15s ease;
}

/* --- Ajustes especificos para MOVIL (no afectan escritorio) --------------- */
@media (max-width: 767px) {
  /* Evita el zoom automatico de iOS al enfocar un campo: fuente >= 16px. */
  input, select, textarea {
    font-size: 16px !important;
  }
  /* Areas tactiles comodas en controles interactivos. */
  .tap, .bottom-tab {
    min-height: 44px;
  }
  /* En pantallas tactiles, quita el 'salto' de las tarjetas al tocar. */
  article:hover {
    transform: none;
  }
  /* Barra de scroll invisible: se siente a app nativa, y evita que se vea
     encima de las transiciones de pestana de aqui abajo. El scroll sigue
     funcionando igual -- solo se oculta el track/thumb visual. */
  html, body {
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  html::-webkit-scrollbar, body::-webkit-scrollbar {
    display: none;
  }
  /* OJO -- bug real encontrado probando en telefono real (2 rondas):
     el deslizamiento de <main> (aqui abajo) mueve el contenido 16px MAS
     ALLA del borde derecho de la pantalla durante el primer frame de la
     animacion. La PRIMERA correccion le puso overflow-x:hidden al <body>
     -- eso SI recorta el sobrante, pero introdujo un bug distinto y peor:
     en Safari de iPhone (y algunos Android), poner cualquier `overflow`
     que no sea `visible` en <body>/<html> puede romper el calculo de
     `position: fixed` de sus descendientes -- la barra inferior fija
     empezaba a "saltar"/temblar de nuevo, a veces la pagina entera. Por
     eso el contenedor de recorte NO va en <body> -- va en un <div> propio
     que envuelve SOLO a <main> (ver base.html, .ibri-slide-viewport),
     dejando <body>/<html> completamente sin tocar. */
  .ibri-slide-viewport {
    overflow-x: hidden;
  }

  /* --- Deslizamiento lateral entre pestanas del menu inferior ------------
     <main> es lo unico que cambia entre pestanas (header/nav siguen fijos),
     asi que aqui se aplica la animacion de ENTRADA (la pagina vieja ya no
     esta -- fue una recarga real, no se puede animar su salida). La
     direccion la decide el SERVIDOR (ver base.html, ?from=N) para que la
     clase ya venga en el primer HTML -- asi no hay parpadeo. Desplazamiento
     chico (16px) + fundido -- elegante y sutil, no un movimiento grande
     tipo diapositiva. */
  main.ibri-tab-slide-right {
    animation: ibri-tab-slide-in-right 0.26s cubic-bezier(.4,0,.2,1);
  }
  main.ibri-tab-slide-left {
    animation: ibri-tab-slide-in-left 0.26s cubic-bezier(.4,0,.2,1);
  }
  @keyframes ibri-tab-slide-in-right {
    from { transform: translateX(16px); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
  }
  @keyframes ibri-tab-slide-in-left {
    from { transform: translateX(-16px); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
  }
}
@media (prefers-reduced-motion: reduce) {
  main.ibri-tab-slide-right,
  main.ibri-tab-slide-left {
    animation: none;
  }
}

/* Franja deslizable horizontal (chips de categorias / navegacion) en movil:
   oculta la barra de scroll para un look de app, pero deja un degradado a
   la derecha para que sea obvio que hay mas contenido (antes se veia
   "cortado" sin ninguna pista de que se podia deslizar). El degradado se
   oculta solo si el contenido ya cabe completo (scroll-x-fade--end). */
.scroll-x-wrap {
  position: relative;
}
.scroll-x-wrap::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 2.5rem;
  pointer-events: none;
  background: linear-gradient(to right, transparent, rgba(248, 249, 250, 0.95));
}
.scroll-x-wrap.scroll-x-fade--end::after {
  display: none;
}
@media (min-width: 768px) {
  /* En md+ el nav pasa a flex-wrap (ya no hace scroll horizontal). */
  .scroll-x-wrap::after {
    display: none;
  }
}
.scroll-x {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.scroll-x::-webkit-scrollbar {
  display: none;
}

/* --- Toggle Manual/Automatico de precio (servicios) ----------------------- */
.price-mode-tab {
  color: #64748b; /* slate-500 */
  transition: background-color 0.15s ease, color 0.15s ease;
}
.price-mode-tab--active {
  background: #ffffff;
  color: var(--ibri-cyan-deep);
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.12);
}

/* --- Selector de metodo de pago (checkout) -------------------------------- */
.method-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  border-radius: 1rem;
  border: 2px solid #e2e8f0; /* slate-200 */
  background: #fff;
  padding: 1rem 0.5rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: #64748b; /* slate-500 */
  cursor: pointer;
}
.method-btn:hover:not(:disabled) {
  border-color: #99f6e4;
  color: #0f766e;
}
.method-btn--active {
  border-color: var(--ibri-cyan-deep);
  background: #ecfeff;
  color: var(--ibri-cyan-deep);
}

/* --- Vistas de transicion entre paginas (View Transitions API) -----------
   Progresiva: si el navegador la soporta, las navegaciones completas (no
   son SPA) hacen un fundido suave en vez de "salto" duro. Si no la soporta,
   este bloque simplemente se ignora -- cero riesgo, cero JS. */
@view-transition {
  navigation: auto;
}

/* --- Hoja inferior en movil para <dialog> (Plan B UX) ---------------------
   En escritorio el dialogo sigue centrado igual que antes. En movil, sube
   desde abajo pegado al borde -- patron nativo de apps (bottom sheet) en
   vez de una tarjeta flotando en medio de la pantalla. */
.sheet-grabber {
  display: none;
}
@media (max-width: 767px) {
  dialog.ibri-sheet {
    margin: auto 0 0 0;
    width: 100%;
    max-width: 100%;
    border-radius: 20px 20px 0 0;
    max-height: 85vh;
    overflow-y: auto;
  }
  dialog.ibri-sheet[open] {
    animation: ibri-sheet-in 0.22s ease-out;
  }
  dialog.ibri-sheet .sheet-grabber {
    display: block;
    width: 40px;
    height: 4px;
    border-radius: 999px;
    background: #e2e8f0;
    margin: 10px auto 0 auto;
  }
  dialog.ibri-sheet .dialog-body {
    padding-bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
  }
  @keyframes ibri-sheet-in {
    from { transform: translateY(100%); }
    to { transform: translateY(0); }
  }
}

/* --- Campanita de notificaciones: <dialog class="ibri-sheet notif-dialog">
   En movil hereda todo lo de .ibri-sheet de arriba (hoja inferior, fondo
   oscurecido). En escritorio SI hay espacio y mouse (ver charla de diseno):
   el mismo <dialog> se reposiciona junto a la campanita como un dropdown
   anclado de toda la vida, y su fondo se vuelve transparente -- sigue
   siendo un <dialog> real por debajo (bloquea clics fuera, foco atrapado,
   Escape cierra solo), solo que ya no se ve ni se siente como un modal
   pesado tapando media pantalla.

   El top/right de aqui abajo son solo un RESPALDO por si el JS no llegara
   a correr (ver ibriOpenNotifDialog / ibriPositionNotifDialog en
   base.html): la posicion real de cada apertura se calcula en JS contra la
   campanita de verdad y se asigna por inline style, que siempre gana sobre
   esta regla. Un valor fijo aqui NO puede ser la posicion definitiva --
   el header vive centrado dentro de un contenedor max-w-6xl, asi que en
   monitores anchos la campanita no esta pegada al borde real de la
   ventana y un top/right fijo terminaria abriendo el dialogo lejos del
   boton que lo disparo. */
.notif-list {
  /* Se ajusta solo al contenido (pocas notificaciones = dialogo chico); si
     hay muchas, no crece sin limite -- hace scroll interno aqui adentro. */
  max-height: min(60vh, 420px);
}
@media (min-width: 768px) {
  dialog.notif-dialog {
    position: fixed;
    inset: auto;
    top: 68px;
    right: 20px;
    left: auto;
    bottom: auto;
    margin: 0;
    width: 320px;
    max-width: 320px;
  }
  dialog.notif-dialog::backdrop {
    background: transparent;
  }
  dialog.notif-dialog .notif-list {
    max-height: 360px;
  }
}

/* --- Panel del carrito (icono del header): en pantallas angostas un
   w-72 (288px) anclado con right:0 a un boton de 44px puede sobrar por
   la IZQUIERDA del viewport (si el icono no esta pegado al borde derecho
   real de la pantalla), cortando el texto de cada linea -- por eso se
   veia "de lado" e incompleto. En movil lo pasamos a position:fixed con
   left/right en rem (nunca se sale de la pantalla) en vez de un ancho
   fijo anclado al icono; en escritorio se queda igual que siempre. */
@media (max-width: 767px) {
  #cart-widget .cart-panel {
    position: fixed;
    top: 64px;
    left: 1rem;
    right: 1rem;
    width: auto;
    max-width: 22rem;
    margin-left: auto;
  }
}

/* --- Toast/snackbar para mensajes flash, SOLO en movil --------------------
   En escritorio el banner de exito/error se queda exactamente igual que
   siempre (estatico, arriba del contenido). En movil, base.html convierte
   cualquier [role=status] sin id (el patron que usan TODOS los mensajes
   flash del sitio) en un aviso flotante que se autodesvanece -- se siente
   a notificacion de app, no a banner de formulario web. */
@media (max-width: 767px) {
  .ibri-toast {
    position: fixed !important;
    left: 1rem;
    right: 1rem;
    bottom: 1.25rem;
    z-index: 70;
    margin: 0 !important;
    box-shadow: 0 12px 28px -8px rgba(16, 24, 40, 0.28);
    animation: ibri-toast-in 0.22s ease-out;
  }
  body.pb-bottom-nav .ibri-toast {
    bottom: calc(4.5rem + env(safe-area-inset-bottom, 0px));
  }
  .ibri-toast.ibri-toast-out {
    animation: ibri-toast-out-anim 0.18s ease-in forwards;
  }
  @keyframes ibri-toast-in {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: translateY(0); }
  }
  @keyframes ibri-toast-out-anim {
    to { opacity: 0; transform: translateY(14px); }
  }
}

/* --- Boton de accion pegado abajo en formularios largos (solo movil) ------
   El formulario que lo use envuelve su boton final en
   <div class="mobile-sticky-cta">...</div>, DENTRO del <form> (para que el
   contenedor sea alto y sticky tenga espacio donde pegarse). En escritorio
   no hace nada (position: static). Al ser sticky (no fixed), el boton deja
   de verse en cuanto el formulario termina su scroll -- no flota para
   siempre tapando el resto de la pagina. */
@media (max-width: 767px) {
  .mobile-sticky-cta {
    position: sticky;
    bottom: 0;
    /* Debe quedar POR DEBAJO del header (sticky top-0, z-40) y de la barra
       inferior (fixed bottom-0, z-40): si comparte su mismo z-index, al
       cruzarse durante el scroll gana el que aparece despues en el DOM (este
       boton, que vive dentro de <main>) y tapa el header en vez de
       escondersele detras -- por eso va mas bajo, en 30. */
    z-index: 30;
    margin-top: 1rem;
    background: #ffffff;
    padding-top: 0.75rem;
    padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -10px 12px -12px rgba(16, 24, 40, 0.25);
  }
  body.pb-bottom-nav .mobile-sticky-cta {
    bottom: calc(4rem + env(safe-area-inset-bottom, 0px));
  }
}

/* --- Shimmer generico para estados de carga (htmx) ------------------------
   Uso: <div class="ibri-skeleton h-10 w-full rounded-lg"></div>. Universal
   (escritorio y movil): reemplaza el "vacio -> aparece de golpe" por un
   placeholder que se siente vivo mientras hx-get trae el contenido real. */
.ibri-skeleton {
  background: linear-gradient(90deg, #eef1f4 25%, #e2e8f0 37%, #eef1f4 63%);
  background-size: 400% 100%;
  animation: ibri-shimmer 1.4s ease infinite;
}
@keyframes ibri-shimmer {
  0% { background-position: 100% 50%; }
  100% { background-position: 0 50%; }
}

/* --- Insignia del carrito (barra inferior / header): entra con un "pop" ---
   Se re-dispara en cada render (cada vez que la pagina recarga tras agregar
   algo al carrito), asi da sensacion de feedback aunque no sea un cambio
   en vivo via AJAX. */
.ibri-badge-pop {
  animation: ibri-badge-pop-in 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes ibri-badge-pop-in {
  0% { transform: scale(0); opacity: 0; }
  60% { transform: scale(1.25); opacity: 1; }
  100% { transform: scale(1); }
}

/* --- Crossfade de icono en el header (ej. carrito -> check -> carrito) ----
   El MISMO boton cambia de icono suavemente (fundido, sin "pop"/rebote):
   sale con ibri-icon-fade-out, el JS reemplaza el SVG en cuanto termina, y
   el nuevo entra con ibri-icon-fade-in. El check en si se dibuja aparte via
   .ibri-drawn-check (mismo mecanismo que el resto del sitio). */
.ibri-icon-fade-out {
  /* transition:none es a proposito: el boton de agregar al carrito trae
     "transition-all" de Tailwind (por el active:scale-95 de hover/tap).
     Sin esto, esa transicion compite con esta animacion por las mismas
     propiedades (opacity/transform) y el resultado en telefonos reales
     era un "salto" en vez de un fundido suave -- la transicion y la
     animacion peleando por quien manda en el mismo frame. */
  transition: none;
  animation: ibri-icon-fade-out 0.18s ease-in forwards;
}
.ibri-icon-fade-in {
  transition: none;
  animation: ibri-icon-fade-in 0.22s ease-out forwards;
}
@keyframes ibri-icon-fade-out {
  to { opacity: 0; transform: scale(0.75); }
}
@keyframes ibri-icon-fade-in {
  from { opacity: 0; transform: scale(0.75); }
  to { opacity: 1; transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .ibri-icon-fade-out,
  .ibri-icon-fade-in {
    animation: none;
  }
}


/* --- Indicador nativo de HTMX: solo se ve si la peticion tarda de verdad --
   htmx ya trae el mecanismo de fabrica (clase .htmx-request en el elemento
   mientras dura el fetch); aqui solo se afina el timing. El truco es el
   transition-delay: si la respuesta llega rapido y la clase se quita antes
   de que pase el delay, la transicion de opacidad ni siquiera llega a
   arrancar -- cero parpadeo en peticiones veloces (filtros de la
   billetera, campanita, carrito). Solo se percibe si de verdad tarda. */
.htmx-indicator {
  opacity: 0;
  transition: opacity 0.15s ease 0.2s;
}
.htmx-request.htmx-indicator,
.htmx-request .htmx-indicator {
  opacity: 1;
}

/* --- Micro-spinner dentro de un boton al enviar un formulario -------------
   Uso: static/loading.js le agrega esta clase + disabled al boton que se
   acaba de enviar. El truco de visibility (no color/display) es a
   proposito: oculta TODO el contenido original del boton (texto, iconos)
   sin tocar la propiedad color -- asi el ::after de abajo puede usar
   currentColor y el spinner sale del mismo color que el texto original,
   se vea el boton primario (texto blanco) o secundario (texto de color),
   sin tener que adivinar el color a mano por cada variante de boton. */
.ibri-btn-loading {
  position: relative;
  visibility: hidden;
  pointer-events: none;
}
.ibri-btn-loading::after {
  content: "";
  visibility: visible;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1em;
  height: 1em;
  margin: -0.5em 0 0 -0.5em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: ibri-btn-spin 0.6s linear infinite;
}
@keyframes ibri-btn-spin {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .ibri-btn-loading::after {
    animation-duration: 1.2s;
  }
}
