this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

leaderboard

+4241 -3
+3875 -2
web/public/css/style.css
··· 1 - /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */ 2 - @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-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--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-9xl:8rem;--text-9xl--line-height:1;--font-weight-semibold:600;--font-weight-bold:700;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,: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,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-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{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}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Helvetica,Arial,Apple Color Emoji,Segoe UI Emoji}: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:has(input.theme-controller[value=forest]:checked),[data-theme=forest]{color-scheme:dark;--color-base-100:oklch(20.84% .008 17.911);--color-base-200:oklch(18.522% .007 17.911);--color-base-300:oklch(16.203% .007 17.911);--color-base-content:oklch(83.768% .001 17.911);--color-primary:oklch(68.628% .185 148.958);--color-primary-content:oklch(0% 0 0);--color-secondary:oklch(69.776% .135 168.327);--color-secondary-content:oklch(13.955% .027 168.327);--color-accent:oklch(70.628% .119 185.713);--color-accent-content:oklch(14.125% .023 185.713);--color-neutral:oklch(30.698% .039 171.364);--color-neutral-content:oklch(86.139% .007 171.364);--color-info:oklch(72.06% .191 231.6);--color-info-content:oklch(0% 0 0);--color-success:oklch(64.8% .15 160);--color-success-content:oklch(0% 0 0);--color-warning:oklch(84.71% .199 83.87);--color-warning-content:oklch(0% 0 0);--color-error:oklch(71.76% .221 22.18);--color-error-content:oklch(0% 0 0);--radius-selector:1rem;--radius-field:2rem;--radius-box:1rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}: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");scrollbar-color:currentColor #0000}@supports (color:color-mix(in lab, red, red)){:root{scrollbar-color:color-mix(in oklch,currentColor 35%,#0000)#0000}}@property --radialprogress{syntax: "<percentage>"; inherits: true; initial-value: 0%;}:root:not(span){overflow:var(--page-overflow)}:root{--page-scroll-bg-on:linear-gradient(var(--root-bg),var(--root-bg))var(--root-bg)}@supports (color:color-mix(in lab, red, red)){:root{--page-scroll-bg-on:linear-gradient(var(--root-bg),var(--root-bg))color-mix(in srgb,var(--root-bg),oklch(0% 0 0) calc(var(--page-has-backdrop,0)*40%))}}:root{--page-scroll-transition-on:background-color .3s ease-out;transition:var(--page-scroll-transition);scrollbar-gutter:var(--page-scroll-gutter,unset);scrollbar-gutter:if(style(--page-has-scroll: 1): var(--page-scroll-gutter,unset); else: unset)}:root:root{background:var(--page-scroll-bg,var(--root-bg,var(--color-base-100)))}@keyframes set-page-has-scroll{0%,to{--page-has-scroll:1}}:root,[data-theme]{background-color:var(--root-bg,var(--color-base-100));color:var(--color-base-content)}:where(:root,[data-theme]){--root-bg:var(--color-base-100)}}@layer components;@layer utilities{@layer daisyui.component{:where(.btn){width:unset}.btn{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;webkit-user-select:none;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto,calc(var(--noise)*100%);background-image:none,var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0/calc(var(--depth)*.15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0/calc(var(--depth)*6%))inset,var(--btn-shadow);--size:calc(var(--size-field,.25rem)*10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:var(--btn-bg);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;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-bg),#000 calc(var(--depth)*5%))}}.btn{--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-noise:var(--fx-noise)}@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:focus-visible,.btn:has(:focus-visible){isolation:isolate;outline-width:2px;outline-style:solid}.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){--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-shadow:0 0 0 0 oklch(0% 0 0/0),0 0 0 0 oklch(0% 0 0/0)}.btn:is(input[type=checkbox],input[type=radio]){appearance:none}.btn:is(input[type=checkbox],input[type=radio]):after{--tw-content:attr(aria-label);content:var(--tw-content)}.btn:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}.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='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");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.validator-hint{visibility:hidden;margin-top:.5rem;font-size:.75rem}.validator:user-valid{--input-color:var(--color-success)}.validator:user-valid:focus{--input-color:var(--color-success)}.validator:user-valid:checked{--input-color:var(--color-success)}.validator:user-valid[aria-checked=true]{--input-color:var(--color-success)}.validator:user-valid:focus-within{--input-color:var(--color-success)}.validator:has(:user-valid){--input-color:var(--color-success)}.validator:has(:user-valid):focus{--input-color:var(--color-success)}.validator:has(:user-valid):checked{--input-color:var(--color-success)}.validator:has(:user-valid)[aria-checked=true]{--input-color:var(--color-success)}.validator:has(:user-valid):focus-within{--input-color:var(--color-success)}.validator:user-invalid{--input-color:var(--color-error)}.validator:user-invalid:focus{--input-color:var(--color-error)}.validator:user-invalid:checked{--input-color:var(--color-error)}.validator:user-invalid[aria-checked=true]{--input-color:var(--color-error)}.validator:user-invalid:focus-within{--input-color:var(--color-error)}.validator:user-invalid~.validator-hint{visibility:visible;color:var(--color-error)}.validator:has(:user-invalid){--input-color:var(--color-error)}.validator:has(:user-invalid):focus{--input-color:var(--color-error)}.validator:has(:user-invalid):checked{--input-color:var(--color-error)}.validator:has(:user-invalid)[aria-checked=true]{--input-color:var(--color-error)}.validator:has(:user-invalid):focus-within{--input-color:var(--color-error)}.validator:has(:user-invalid)~.validator-hint{visibility:visible;color:var(--color-error)}:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false]))),:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false]))):focus,:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false]))):checked,:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false])))[aria-checked=true],:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false]))):focus-within{--input-color:var(--color-error)}:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false])))~.validator-hint{visibility:visible;color:var(--color-error)}.input{cursor:text;border:var(--border)solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);font-size:max(var(--font-size,.875rem),.875rem);touch-action:manipulation;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));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{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{--size:calc(var(--size-field,.25rem)*10);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.input{--input-color:color-mix(in oklab,var(--color-base-content)20%,#0000)}}.input:where(input){display:inline-flex}.input :where(input){appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex}.input :where(input):focus,.input :where(input):focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.input :where(input):focus,.input :where(input):focus-within{outline-offset:2px;outline:2px solid #0000}}.input :where(input[type=url]),.input :where(input[type=email]){direction:ltr}.input :where(input[type=date]){display:inline-flex}.input:focus,.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,.input:focus-within{box-shadow:0 1px color-mix(in oklab,var(--input-color)calc(var(--depth)*10%),#0000)}}.input:focus,.input:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate;z-index:1}@media (pointer:coarse){@supports (-webkit-touch-callout:none){.input:focus,.input:focus-within{--font-size:1rem}}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{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)){.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{color:color-mix(in oklab,var(--color-base-content)40%,transparent)}}:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:color-mix(in oklab,var(--color-base-content)20%,transparent)}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{box-shadow:none}.input:has(>input[disabled])>input[disabled]{cursor:not-allowed}.input::-webkit-date-and-time-value{text-align:inherit}.input[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.input::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}.input:has(>input[type=date]) :where(input[type=date]){webkit-appearance:none;appearance:none;display:inline-flex}.input:has(>input[type=date]) input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;width:1em;height:1em;position:absolute;inset-inline-end:.75em}.navbar{align-items:center;width:100%;min-height:4rem;padding:.5rem;display:flex}.card{border-radius:var(--radius-box);outline-offset:2px;outline:0 solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative}.card:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.card:focus{outline-offset:2px;outline:2px solid #0000}}.card:focus-visible{outline-color:currentColor}.card :where(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 :where(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}.card:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer;-webkit-user-select:none;user-select:none}.card:has(>:checked){outline:2px solid}.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}}@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}}.hero-content{isolation:isolate;justify-content:center;align-items:center;gap:1rem;max-width:80rem;padding:1rem;display:flex}.hero{background-position:50%;background-size:cover;place-items:center;width:100%;display:grid}.hero>*{grid-row-start:1;grid-column-start:1}.breadcrumbs{max-width:100%;padding-block:.5rem;overflow-x:auto}.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol{white-space:nowrap;align-items:center;min-height:min-content;display:flex}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li{align-items:center;display:flex}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>*{cursor:pointer;align-items:center;gap:.5rem;display:flex}@media (hover:hover){:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:hover{text-decoration-line:underline}}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:focus{outline-offset:2px;outline:2px solid #0000}}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:focus-visible{outline-offset:2px;outline:2px solid}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li+:before{content:"";opacity:.4;background-color:#0000;border-top:1px solid;border-right:1px solid;width:.375rem;height:.375rem;margin-left:.5rem;margin-right:.75rem;display:block;rotate:45deg}[dir=rtl] :is(:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li)+:before{rotate:-135deg}.fieldset-legend{color:var(--color-base-content);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:-.25rem;padding-block:.5rem;font-weight:600;display:flex}.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));width:fit-content;padding-inline:calc(.25rem*3 - var(--border));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);height:var(--size);justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.navbar-end{justify-content:flex-end;align-items:center;width:50%;display:inline-flex}.navbar-start{justify-content:flex-start;align-items:center;width:50%;display:inline-flex}.card-body{padding:var(--card-p,1.5rem);font-size:var(--card-fs,.875rem);flex-direction:column;flex:auto;gap:.5rem;display:flex}.card-body :where(p){flex-grow:1}.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)*100%);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)}.fieldset{grid-template-columns:1fr;grid-auto-rows:max-content;gap:.375rem;padding-block:.25rem;font-size:.75rem;display:grid}.card-actions{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.card-title{font-size:var(--cardtitle-fs,1.125rem);align-items:center;gap:.5rem;font-weight:600;display:flex}}@layer daisyui.modifier{.btn:disabled:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn:disabled:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.btn:disabled:not(.btn-link,.btn-ghost){box-shadow:none}.btn:disabled{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn:disabled{--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}.btn[disabled]:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn[disabled]:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab,var(--color-base-content)10%,transparent)}}.btn[disabled]:not(.btn-link,.btn-ghost){box-shadow:none}.btn[disabled]{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn[disabled]{--btn-fg:color-mix(in oklch,var(--color-base-content)20%,#0000)}}:where(.navbar){position:relative}.badge-lg{--size:calc(var(--size-selector,.25rem)*7);padding-inline:calc(.25rem*3.5 - var(--border));font-size:1rem}.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)}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)):not(:disabled,[disabled],.btn-disabled){--btn-fg:var(--btn-color,currentColor);outline-color:currentColor}@media (hover:none){.btn-ghost:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color,currentColor);--btn-border:#0000;--btn-noise:none;outline-color:currentColor}}.btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem)*12)}.btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem)*8)}.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)}}.validator:user-invalid~.validator-hint{display:revert-layer}.validator:has(:user-invalid)~.validator-hint{display:revert-layer}:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false])))~.validator-hint{display:revert-layer}.static{position:static}.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-auto{margin-inline:auto}.join-item:where(:not(:first-child,:disabled,[disabled],.btn-disabled)){margin-block-start:0;margin-inline-start:calc(var(--border,1px)*-1)}.join-item:where(:is(:disabled,[disabled],.btn-disabled)){border-width:var(--border,1px)0 var(--border,1px)var(--border,1px)}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.77778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.09091em;margin-bottom:1.09091em;font-size:1.22222em;line-height:1.45455}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.66667em;margin-bottom:1.66667em;padding-inline-start:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.833333em;font-size:2.66667em;line-height:1}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.86667em;margin-bottom:1.06667em;font-size:1.66667em;line-height:1.33333}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.66667em;margin-bottom:.666667em;font-size:1.33333em;line-height:1.5}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:.444444em;line-height:1.55556}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.222222em;padding-inline-end:.444444em;padding-bottom:.222222em;border-radius:.3125rem;padding-inline-start:.444444em;font-size:.888889em}.prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.866667em}.prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:1em;padding-inline-end:1.5em;padding-bottom:1em;border-radius:.375rem;margin-top:2em;margin-bottom:2em;padding-inline-start:1.5em;font-size:.888889em;line-height:1.75}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em;padding-inline-start:1.55556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;margin-bottom:.666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em}.prose-lg :where(.prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.prose-lg :where(.prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.33333em}.prose-lg :where(.prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.prose-lg :where(.prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.33333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em}.prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;padding-inline-start:1.55556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3.11111em;margin-bottom:3.11111em}.prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.75em;padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1em;font-size:.888889em;line-height:1.5}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.alert{border-width:var(--border);border-color:var(--alert-border-color,var(--color-base-200))}.join{--join-ss:0;--join-se:0;--join-es:0;--join-ee:0;align-items:stretch;display:inline-flex}.join :where(.join-item){border-start-start-radius:var(--join-ss,0);border-start-end-radius:var(--join-se,0);border-end-end-radius:var(--join-ee,0);border-end-start-radius:var(--join-es,0)}.join :where(.join-item) *{--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}.join>.join-item:where(:first-child),.join :first-child:not(:last-child) :where(.join-item){--join-ss:var(--radius-field);--join-se:0;--join-es:var(--radius-field);--join-ee:0}.join>.join-item:where(:last-child),.join :last-child:not(:first-child) :where(.join-item){--join-ss:0;--join-se:var(--radius-field);--join-es:0;--join-ee:var(--radius-field)}.join>.join-item:where(:only-child),.join :only-child :where(.join-item){--join-ss:var(--radius-field);--join-se:var(--radius-field);--join-es:var(--radius-field);--join-ee:var(--radius-field)}:root .prose{--tw-prose-body:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root .prose{--tw-prose-body:color-mix(in oklab,var(--color-base-content)80%,#0000)}}:root .prose{--tw-prose-headings:var(--color-base-content);--tw-prose-lead:var(--color-base-content);--tw-prose-links:var(--color-base-content);--tw-prose-bold:var(--color-base-content);--tw-prose-counters:var(--color-base-content);--tw-prose-bullets:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root .prose{--tw-prose-bullets:color-mix(in oklab,var(--color-base-content)50%,#0000)}}:root .prose{--tw-prose-hr:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root .prose{--tw-prose-hr:color-mix(in oklab,var(--color-base-content)20%,#0000)}}:root .prose{--tw-prose-quotes:var(--color-base-content);--tw-prose-quote-borders:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root .prose{--tw-prose-quote-borders:color-mix(in oklab,var(--color-base-content)20%,#0000)}}:root .prose{--tw-prose-captions:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root .prose{--tw-prose-captions:color-mix(in oklab,var(--color-base-content)50%,#0000)}}:root .prose{--tw-prose-code:var(--color-base-content);--tw-prose-pre-code:var(--color-neutral-content);--tw-prose-pre-bg:var(--color-neutral);--tw-prose-th-borders:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root .prose{--tw-prose-th-borders:color-mix(in oklab,var(--color-base-content)50%,#0000)}}:root .prose{--tw-prose-td-borders:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root .prose{--tw-prose-td-borders:color-mix(in oklab,var(--color-base-content)20%,#0000)}}:root .prose{--tw-prose-kbd:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root .prose{--tw-prose-kbd:color-mix(in oklab,var(--color-base-content)80%,#0000)}}:root .prose :where(code):not(pre>code){background-color:var(--color-base-200);border-radius:var(--radius-selector);border:var(--border)solid var(--color-base-300);font-weight:inherit;padding-block:.2em;padding-inline:.5em}:root .prose :where(code):not(pre>code):before,:root .prose :where(code):not(pre>code):after{display:none}.block{display:block}.flex{display:flex}.grid{display:grid}.inline-block{display:inline-block}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-24{height:calc(var(--spacing)*24)}.min-h-\[60vh\]{min-height:60vh}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing)*4)}.w-6{width:calc(var(--spacing)*6)}.w-full{width:100%}.max-w-5xl{max-width:var(--container-5xl)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.shrink-0{flex-shrink:0}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.justify-start{justify-content:flex-start}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}.bg-base-100{background-color:var(--color-base-100)}.stroke-current{stroke:currentColor}.px-4{padding-inline:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.text-center{text-align:center}.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-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-9xl{font-size:var(--text-9xl);line-height:var(--tw-leading,var(--text-9xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-base-content{color:var(--color-base-content)}.text-white{color:var(--color-white)}.prose :where(.btn-link):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:none}.opacity-70{opacity:.7}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.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)}.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)}.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))}@layer daisyui.modifier.color{.btn-error{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}.btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}.btn-success{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}}@media (hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}}@media (min-width:40rem){.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:48rem){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:64rem){.lg\:ml-8{margin-left:calc(var(--spacing)*8)}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row-reverse{flex-direction:row-reverse}.lg\:text-left{text-align:left}}}.advent-header{box-shadow:0 4px 6px -1px #0000001a}.advent-title{-webkit-text-fill-color:transparent;letter-spacing:-.025em;background:linear-gradient(90deg,#b91c1c 0%,#ef4444 22%,#f59e0b 50%,#22c55e 78%,#065f46 100%);-webkit-background-clip:text;background-clip:text;font-weight:800}@keyframes rating{0%,40%{filter:brightness(1.05)contrast(1.05);scale:1.1}}@keyframes dropdown{0%{opacity:0}}@keyframes radio{0%{padding:5px}50%{padding:3px}}@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 skeleton{0%{background-position:150%}to{background-position:-50%}}@keyframes progress{50%{background-position-x:-115%}}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-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} 1 + /*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */ 2 + @layer properties; 3 + @layer theme, base, components, utilities; 4 + @layer theme { 5 + :root, :host { 6 + --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", 7 + "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 8 + --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", 9 + "Courier New", monospace; 10 + --color-black: #000; 11 + --color-white: #fff; 12 + --spacing: 0.25rem; 13 + --container-sm: 24rem; 14 + --container-md: 28rem; 15 + --container-5xl: 64rem; 16 + --text-xs: 0.75rem; 17 + --text-xs--line-height: calc(1 / 0.75); 18 + --text-sm: 0.875rem; 19 + --text-sm--line-height: calc(1.25 / 0.875); 20 + --text-lg: 1.125rem; 21 + --text-lg--line-height: calc(1.75 / 1.125); 22 + --text-xl: 1.25rem; 23 + --text-xl--line-height: calc(1.75 / 1.25); 24 + --text-2xl: 1.5rem; 25 + --text-2xl--line-height: calc(2 / 1.5); 26 + --text-3xl: 1.875rem; 27 + --text-3xl--line-height: calc(2.25 / 1.875); 28 + --text-4xl: 2.25rem; 29 + --text-4xl--line-height: calc(2.5 / 2.25); 30 + --text-5xl: 3rem; 31 + --text-5xl--line-height: 1; 32 + --text-9xl: 8rem; 33 + --text-9xl--line-height: 1; 34 + --font-weight-semibold: 600; 35 + --font-weight-bold: 700; 36 + --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); 37 + --default-transition-duration: 150ms; 38 + --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); 39 + --default-font-family: var(--font-sans); 40 + --default-mono-font-family: var(--font-mono); 41 + } 42 + } 43 + @layer base { 44 + *, ::after, ::before, ::backdrop, ::file-selector-button { 45 + box-sizing: border-box; 46 + margin: 0; 47 + padding: 0; 48 + border: 0 solid; 49 + } 50 + html, :host { 51 + line-height: 1.5; 52 + -webkit-text-size-adjust: 100%; 53 + tab-size: 4; 54 + font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"); 55 + font-feature-settings: var(--default-font-feature-settings, normal); 56 + font-variation-settings: var(--default-font-variation-settings, normal); 57 + -webkit-tap-highlight-color: transparent; 58 + } 59 + hr { 60 + height: 0; 61 + color: inherit; 62 + border-top-width: 1px; 63 + } 64 + abbr:where([title]) { 65 + -webkit-text-decoration: underline dotted; 66 + text-decoration: underline dotted; 67 + } 68 + h1, h2, h3, h4, h5, h6 { 69 + font-size: inherit; 70 + font-weight: inherit; 71 + } 72 + a { 73 + color: inherit; 74 + -webkit-text-decoration: inherit; 75 + text-decoration: inherit; 76 + } 77 + b, strong { 78 + font-weight: bolder; 79 + } 80 + code, kbd, samp, pre { 81 + font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace); 82 + font-feature-settings: var(--default-mono-font-feature-settings, normal); 83 + font-variation-settings: var(--default-mono-font-variation-settings, normal); 84 + font-size: 1em; 85 + } 86 + small { 87 + font-size: 80%; 88 + } 89 + sub, sup { 90 + font-size: 75%; 91 + line-height: 0; 92 + position: relative; 93 + vertical-align: baseline; 94 + } 95 + sub { 96 + bottom: -0.25em; 97 + } 98 + sup { 99 + top: -0.5em; 100 + } 101 + table { 102 + text-indent: 0; 103 + border-color: inherit; 104 + border-collapse: collapse; 105 + } 106 + :-moz-focusring { 107 + outline: auto; 108 + } 109 + progress { 110 + vertical-align: baseline; 111 + } 112 + summary { 113 + display: list-item; 114 + } 115 + ol, ul, menu { 116 + list-style: none; 117 + } 118 + img, svg, video, canvas, audio, iframe, embed, object { 119 + display: block; 120 + vertical-align: middle; 121 + } 122 + img, video { 123 + max-width: 100%; 124 + height: auto; 125 + } 126 + button, input, select, optgroup, textarea, ::file-selector-button { 127 + font: inherit; 128 + font-feature-settings: inherit; 129 + font-variation-settings: inherit; 130 + letter-spacing: inherit; 131 + color: inherit; 132 + border-radius: 0; 133 + background-color: transparent; 134 + opacity: 1; 135 + } 136 + :where(select:is([multiple], [size])) optgroup { 137 + font-weight: bolder; 138 + } 139 + :where(select:is([multiple], [size])) optgroup option { 140 + padding-inline-start: 20px; 141 + } 142 + ::file-selector-button { 143 + margin-inline-end: 4px; 144 + } 145 + ::placeholder { 146 + opacity: 1; 147 + } 148 + @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) { 149 + ::placeholder { 150 + color: currentcolor; 151 + @supports (color: color-mix(in lab, red, red)) { 152 + color: color-mix(in oklab, currentcolor 50%, transparent); 153 + } 154 + } 155 + } 156 + textarea { 157 + resize: vertical; 158 + } 159 + ::-webkit-search-decoration { 160 + -webkit-appearance: none; 161 + } 162 + ::-webkit-date-and-time-value { 163 + min-height: 1lh; 164 + text-align: inherit; 165 + } 166 + ::-webkit-datetime-edit { 167 + display: inline-flex; 168 + } 169 + ::-webkit-datetime-edit-fields-wrapper { 170 + padding: 0; 171 + } 172 + ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field { 173 + padding-block: 0; 174 + } 175 + ::-webkit-calendar-picker-indicator { 176 + line-height: 1; 177 + } 178 + :-moz-ui-invalid { 179 + box-shadow: none; 180 + } 181 + button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button { 182 + appearance: button; 183 + } 184 + ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { 185 + height: auto; 186 + } 187 + [hidden]:where(:not([hidden="until-found"])) { 188 + display: none !important; 189 + } 190 + } 191 + @layer utilities { 192 + .menu { 193 + @layer daisyui.component { 194 + display: flex; 195 + width: fit-content; 196 + flex-direction: column; 197 + flex-wrap: wrap; 198 + padding: calc(0.25rem * 2); 199 + --menu-active-fg: var(--color-neutral-content); 200 + --menu-active-bg: var(--color-neutral); 201 + font-size: 0.875rem; 202 + :where(li ul) { 203 + position: relative; 204 + margin-inline-start: calc(0.25rem * 4); 205 + padding-inline-start: calc(0.25rem * 2); 206 + white-space: nowrap; 207 + &:before { 208 + position: absolute; 209 + inset-inline-start: calc(0.25rem * 0); 210 + top: calc(0.25rem * 3); 211 + bottom: calc(0.25rem * 3); 212 + background-color: var(--color-base-content); 213 + opacity: 10%; 214 + width: var(--border); 215 + content: ""; 216 + } 217 + } 218 + :where(li > .menu-dropdown:not(.menu-dropdown-show)) { 219 + display: none; 220 + } 221 + :where(li:not(.menu-title) > *:not(ul, details, .menu-title, .btn)), :where(li:not(.menu-title) > details > summary:not(.menu-title)) { 222 + display: grid; 223 + grid-auto-flow: column; 224 + align-content: flex-start; 225 + align-items: center; 226 + gap: calc(0.25rem * 2); 227 + border-radius: var(--radius-field); 228 + padding-inline: calc(0.25rem * 3); 229 + padding-block: calc(0.25rem * 1.5); 230 + text-align: start; 231 + transition-property: color, background-color, box-shadow; 232 + transition-duration: 0.2s; 233 + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); 234 + grid-auto-columns: minmax(auto, max-content) auto max-content; 235 + text-wrap: balance; 236 + user-select: none; 237 + } 238 + :where(li > details > summary) { 239 + --tw-outline-style: none; 240 + outline-style: none; 241 + @media (forced-colors: active) { 242 + outline: 2px solid transparent; 243 + outline-offset: 2px; 244 + } 245 + &::-webkit-details-marker { 246 + display: none; 247 + } 248 + } 249 + :where(li > details > summary), :where(li > .menu-dropdown-toggle) { 250 + &:after { 251 + justify-self: flex-end; 252 + display: block; 253 + height: 0.375rem; 254 + width: 0.375rem; 255 + rotate: -135deg; 256 + translate: 0 -1px; 257 + transition-property: rotate, translate; 258 + transition-duration: 0.2s; 259 + content: ""; 260 + transform-origin: 50% 50%; 261 + box-shadow: 2px 2px inset; 262 + pointer-events: none; 263 + } 264 + } 265 + details { 266 + overflow: hidden; 267 + interpolate-size: allow-keywords; 268 + } 269 + details::details-content { 270 + block-size: 0; 271 + @media (prefers-reduced-motion: no-preference) { 272 + transition-behavior: allow-discrete; 273 + transition-property: block-size, content-visibility; 274 + transition-duration: 0.2s; 275 + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); 276 + } 277 + } 278 + details[open]::details-content { 279 + block-size: auto; 280 + } 281 + :where(li > details[open] > summary):after, :where(li > .menu-dropdown-toggle.menu-dropdown-show):after { 282 + rotate: 45deg; 283 + translate: 0 1px; 284 + } 285 + :where( li:not(.menu-title, .disabled) > *:not(ul, details, .menu-title), li:not(.menu-title, .disabled) > details > summary:not(.menu-title) ):not(.menu-active, :active, .btn) { 286 + &.menu-focus, &:focus-visible { 287 + cursor: pointer; 288 + background-color: var(--color-base-content); 289 + @supports (color: color-mix(in lab, red, red)) { 290 + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); 291 + } 292 + color: var(--color-base-content); 293 + --tw-outline-style: none; 294 + outline-style: none; 295 + @media (forced-colors: active) { 296 + outline: 2px solid transparent; 297 + outline-offset: 2px; 298 + } 299 + } 300 + } 301 + :where( li:not(.menu-title, .disabled) > *:not(ul, 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 ) { 302 + cursor: pointer; 303 + background-color: var(--color-base-content); 304 + @supports (color: color-mix(in lab, red, red)) { 305 + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); 306 + } 307 + --tw-outline-style: none; 308 + outline-style: none; 309 + @media (forced-colors: active) { 310 + outline: 2px solid transparent; 311 + outline-offset: 2px; 312 + } 313 + box-shadow: 0 1px oklch(0% 0 0 / 0.01) inset, 0 -1px oklch(100% 0 0 / 0.01) inset; 314 + } 315 + :where(li:empty) { 316 + background-color: var(--color-base-content); 317 + opacity: 10%; 318 + margin: 0.5rem 1rem; 319 + height: 1px; 320 + } 321 + :where(li) { 322 + position: relative; 323 + display: flex; 324 + flex-shrink: 0; 325 + flex-direction: column; 326 + flex-wrap: wrap; 327 + align-items: stretch; 328 + .badge { 329 + justify-self: flex-end; 330 + } 331 + & > *:not(ul, .menu-title, details, .btn):active, & > *:not(ul, .menu-title, details, .btn).menu-active, & > details > summary:active { 332 + --tw-outline-style: none; 333 + outline-style: none; 334 + @media (forced-colors: active) { 335 + outline: 2px solid transparent; 336 + outline-offset: 2px; 337 + } 338 + color: var(--menu-active-fg); 339 + background-color: var(--menu-active-bg); 340 + background-size: auto, calc(var(--noise) * 100%); 341 + background-image: none, var(--fx-noise); 342 + &:not(&:active) { 343 + box-shadow: 0 2px calc(var(--depth) * 3px) -2px var(--menu-active-bg); 344 + } 345 + } 346 + &.menu-disabled { 347 + pointer-events: none; 348 + color: var(--color-base-content); 349 + @supports (color: color-mix(in lab, red, red)) { 350 + color: color-mix(in oklab, var(--color-base-content) 20%, transparent); 351 + } 352 + } 353 + } 354 + .dropdown:focus-within { 355 + .menu-dropdown-toggle:after { 356 + rotate: 45deg; 357 + translate: 0 1px; 358 + } 359 + } 360 + .dropdown-content { 361 + margin-top: calc(0.25rem * 2); 362 + padding: calc(0.25rem * 2); 363 + &:before { 364 + display: none; 365 + } 366 + } 367 + } 368 + } 369 + .dropdown { 370 + @layer daisyui.component { 371 + position: relative; 372 + display: inline-block; 373 + position-area: var(--anchor-v, bottom) var(--anchor-h, span-right); 374 + & > *:not(:has(~ [class*="dropdown-content"])):focus { 375 + --tw-outline-style: none; 376 + outline-style: none; 377 + @media (forced-colors: active) { 378 + outline: 2px solid transparent; 379 + outline-offset: 2px; 380 + } 381 + } 382 + .dropdown-content { 383 + position: absolute; 384 + } 385 + &.dropdown-close .dropdown-content, &:not(details, .dropdown-open, .dropdown-hover:hover, :focus-within) .dropdown-content, &.dropdown-hover:not(:hover) [tabindex]:first-child:focus:not(:focus-visible) ~ .dropdown-content { 386 + display: none; 387 + transform-origin: top; 388 + opacity: 0%; 389 + scale: 95%; 390 + } 391 + &[popover], .dropdown-content { 392 + z-index: 999; 393 + @media (prefers-reduced-motion: no-preference) { 394 + animation: dropdown 0.2s; 395 + transition-property: opacity, scale, display; 396 + transition-behavior: allow-discrete; 397 + transition-duration: 0.2s; 398 + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); 399 + } 400 + } 401 + @starting-style { 402 + &[popover], .dropdown-content { 403 + scale: 95%; 404 + opacity: 0; 405 + } 406 + } 407 + &:not(.dropdown-close) { 408 + &.dropdown-open, &:not(.dropdown-hover):focus, &:focus-within { 409 + > [tabindex]:first-child { 410 + pointer-events: none; 411 + } 412 + .dropdown-content { 413 + opacity: 100%; 414 + scale: 100%; 415 + } 416 + } 417 + &.dropdown-hover:hover { 418 + .dropdown-content { 419 + opacity: 100%; 420 + scale: 100%; 421 + } 422 + } 423 + } 424 + &:is(details) { 425 + summary { 426 + &::-webkit-details-marker { 427 + display: none; 428 + } 429 + } 430 + } 431 + &:where([popover]) { 432 + background: #0000; 433 + } 434 + &[popover] { 435 + position: fixed; 436 + color: inherit; 437 + @supports not (position-area: bottom) { 438 + margin: auto; 439 + &.dropdown-close, &.dropdown-open:not(:popover-open) { 440 + display: none; 441 + transform-origin: top; 442 + opacity: 0%; 443 + scale: 95%; 444 + } 445 + &::backdrop { 446 + background-color: color-mix(in oklab, #000 30%, #0000); 447 + } 448 + } 449 + &.dropdown-close, &:not(.dropdown-open, :popover-open) { 450 + display: none; 451 + transform-origin: top; 452 + opacity: 0%; 453 + scale: 95%; 454 + } 455 + } 456 + } 457 + } 458 + .btn { 459 + :where(&) { 460 + @layer daisyui.component { 461 + width: unset; 462 + } 463 + } 464 + @layer daisyui.component { 465 + display: inline-flex; 466 + flex-shrink: 0; 467 + cursor: pointer; 468 + flex-wrap: nowrap; 469 + align-items: center; 470 + justify-content: center; 471 + gap: calc(0.25rem * 1.5); 472 + text-align: center; 473 + vertical-align: middle; 474 + outline-offset: 2px; 475 + webkit-user-select: none; 476 + user-select: none; 477 + padding-inline: var(--btn-p); 478 + color: var(--btn-fg); 479 + --tw-prose-links: var(--btn-fg); 480 + height: var(--size); 481 + font-size: var(--fontsize, 0.875rem); 482 + font-weight: 600; 483 + outline-color: var(--btn-color, var(--color-base-content)); 484 + transition-property: color, background-color, border-color, box-shadow; 485 + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); 486 + transition-duration: 0.2s; 487 + border-start-start-radius: var(--join-ss, var(--radius-field)); 488 + border-start-end-radius: var(--join-se, var(--radius-field)); 489 + border-end-start-radius: var(--join-es, var(--radius-field)); 490 + border-end-end-radius: var(--join-ee, var(--radius-field)); 491 + background-color: var(--btn-bg); 492 + background-size: auto, calc(var(--noise) * 100%); 493 + background-image: none, var(--btn-noise); 494 + border-width: var(--border); 495 + border-style: solid; 496 + border-color: var(--btn-border); 497 + text-shadow: 0 0.5px oklch(100% 0 0 / calc(var(--depth) * 0.15)); 498 + touch-action: manipulation; 499 + box-shadow: 0 0.5px 0 0.5px oklch(100% 0 0 / calc(var(--depth) * 6%)) inset, var(--btn-shadow); 500 + --size: calc(var(--size-field, 0.25rem) * 10); 501 + --btn-bg: var(--btn-color, var(--color-base-200)); 502 + --btn-fg: var(--color-base-content); 503 + --btn-p: 1rem; 504 + --btn-border: var(--btn-bg); 505 + @supports (color: color-mix(in lab, red, red)) { 506 + --btn-border: color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%)); 507 + } 508 + --btn-shadow: 0 3px 2px -2px var(--btn-bg), 509 + 0 4px 3px -2px var(--btn-bg); 510 + @supports (color: color-mix(in lab, red, red)) { 511 + --btn-shadow: 0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), 512 + 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000); 513 + } 514 + --btn-noise: var(--fx-noise); 515 + @media (hover: hover) { 516 + &:hover { 517 + --btn-bg: var(--btn-color, var(--color-base-200)); 518 + @supports (color: color-mix(in lab, red, red)) { 519 + --btn-bg: color-mix(in oklab, var(--btn-color, var(--color-base-200)), #000 7%); 520 + } 521 + } 522 + } 523 + &:focus-visible, &:has(:focus-visible) { 524 + outline-width: 2px; 525 + outline-style: solid; 526 + isolation: isolate; 527 + } 528 + &:active:not(.btn-active) { 529 + translate: 0 0.5px; 530 + --btn-bg: var(--btn-color, var(--color-base-200)); 531 + @supports (color: color-mix(in lab, red, red)) { 532 + --btn-bg: color-mix(in oklab, var(--btn-color, var(--color-base-200)), #000 5%); 533 + } 534 + --btn-border: var(--btn-color, var(--color-base-200)); 535 + @supports (color: color-mix(in lab, red, red)) { 536 + --btn-border: color-mix(in oklab, var(--btn-color, var(--color-base-200)), #000 7%); 537 + } 538 + --btn-shadow: 0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0); 539 + } 540 + &:is(input[type="checkbox"], input[type="radio"]) { 541 + appearance: none; 542 + &::after { 543 + --tw-content: attr(aria-label); 544 + content: var(--tw-content); 545 + } 546 + } 547 + &:where(input:checked:not(.filter .btn)) { 548 + --btn-color: var(--color-primary); 549 + --btn-fg: var(--color-primary-content); 550 + isolation: isolate; 551 + } 552 + } 553 + &:disabled { 554 + @layer daisyui.modifier { 555 + &:not(.btn-link, .btn-ghost) { 556 + background-color: var(--color-base-content); 557 + @supports (color: color-mix(in lab, red, red)) { 558 + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); 559 + } 560 + box-shadow: none; 561 + } 562 + pointer-events: none; 563 + --btn-border: #0000; 564 + --btn-noise: none; 565 + --btn-fg: var(--color-base-content); 566 + @supports (color: color-mix(in lab, red, red)) { 567 + --btn-fg: color-mix(in oklch, var(--color-base-content) 20%, #0000); 568 + } 569 + } 570 + } 571 + &[disabled] { 572 + @layer daisyui.modifier { 573 + &:not(.btn-link, .btn-ghost) { 574 + background-color: var(--color-base-content); 575 + @supports (color: color-mix(in lab, red, red)) { 576 + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); 577 + } 578 + box-shadow: none; 579 + } 580 + pointer-events: none; 581 + --btn-border: #0000; 582 + --btn-noise: none; 583 + --btn-fg: var(--color-base-content); 584 + @supports (color: color-mix(in lab, red, red)) { 585 + --btn-fg: color-mix(in oklch, var(--color-base-content) 20%, #0000); 586 + } 587 + } 588 + } 589 + } 590 + .loading { 591 + @layer daisyui.component { 592 + pointer-events: none; 593 + display: inline-block; 594 + aspect-ratio: 1 / 1; 595 + background-color: currentcolor; 596 + vertical-align: middle; 597 + width: calc(var(--size-selector, 0.25rem) * 6); 598 + mask-size: 100%; 599 + mask-repeat: no-repeat; 600 + mask-position: center; 601 + 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"); 602 + } 603 + } 604 + .btn-disabled { 605 + @layer daisyui.modifier { 606 + &:not(.btn-link, .btn-ghost) { 607 + background-color: var(--color-base-content); 608 + @supports (color: color-mix(in lab, red, red)) { 609 + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); 610 + } 611 + box-shadow: none; 612 + } 613 + pointer-events: none; 614 + --btn-border: #0000; 615 + --btn-noise: none; 616 + --btn-fg: var(--color-base-content); 617 + @supports (color: color-mix(in lab, red, red)) { 618 + --btn-fg: color-mix(in oklch, var(--color-base-content) 20%, #0000); 619 + } 620 + } 621 + } 622 + .validator-hint { 623 + @layer daisyui.component { 624 + visibility: hidden; 625 + margin-top: calc(0.25rem * 2); 626 + font-size: 0.75rem; 627 + } 628 + } 629 + .validator { 630 + @layer daisyui.component { 631 + &:user-valid, &:has(:user-valid) { 632 + &, &:focus, &:checked, &[aria-checked="true"], &:focus-within { 633 + --input-color: var(--color-success); 634 + } 635 + } 636 + &:user-invalid, &:has(:user-invalid), &[aria-invalid]:not([aria-invalid="false"]), &:has([aria-invalid]:not([aria-invalid="false"])) { 637 + &, &:focus, &:checked, &[aria-checked="true"], &:focus-within { 638 + --input-color: var(--color-error); 639 + } 640 + & ~ .validator-hint { 641 + visibility: visible; 642 + color: var(--color-error); 643 + } 644 + } 645 + } 646 + &:user-invalid, &:has(:user-invalid), &[aria-invalid]:not([aria-invalid="false"]), &:has([aria-invalid]:not([aria-invalid="false"])) { 647 + & ~ .validator-hint { 648 + display: revert-layer; 649 + } 650 + } 651 + } 652 + .list { 653 + @layer daisyui.component { 654 + display: flex; 655 + flex-direction: column; 656 + font-size: 0.875rem; 657 + .list-row { 658 + --list-grid-cols: minmax(0, auto) 1fr; 659 + position: relative; 660 + display: grid; 661 + grid-auto-flow: column; 662 + gap: calc(0.25rem * 4); 663 + border-radius: var(--radius-box); 664 + padding: calc(0.25rem * 4); 665 + word-break: break-word; 666 + grid-template-columns: var(--list-grid-cols); 667 + } 668 + & > :not(:last-child) { 669 + &.list-row, .list-row { 670 + &:after { 671 + content: ""; 672 + border-bottom: var(--border) solid; 673 + inset-inline: var(--radius-box); 674 + position: absolute; 675 + bottom: calc(0.25rem * 0); 676 + border-color: var(--color-base-content); 677 + @supports (color: color-mix(in lab, red, red)) { 678 + border-color: color-mix(in oklab, var(--color-base-content) 5%, transparent); 679 + } 680 + } 681 + } 682 + } 683 + } 684 + @layer daisyui.modifier { 685 + .list-row { 686 + &:has(.list-col-grow:nth-child(1)) { 687 + --list-grid-cols: 1fr; 688 + } 689 + &:has(.list-col-grow:nth-child(2)) { 690 + --list-grid-cols: minmax(0, auto) 1fr; 691 + } 692 + &:has(.list-col-grow:nth-child(3)) { 693 + --list-grid-cols: minmax(0, auto) minmax(0, auto) 1fr; 694 + } 695 + &:has(.list-col-grow:nth-child(4)) { 696 + --list-grid-cols: minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr; 697 + } 698 + &:has(.list-col-grow:nth-child(5)) { 699 + --list-grid-cols: minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr; 700 + } 701 + &:has(.list-col-grow:nth-child(6)) { 702 + --list-grid-cols: minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 703 + minmax(0, auto) 1fr; 704 + } 705 + > :not(.list-col-wrap) { 706 + grid-row-start: 1; 707 + } 708 + } 709 + } 710 + } 711 + .toast { 712 + @layer daisyui.component { 713 + position: fixed; 714 + inset-inline-start: auto; 715 + inset-inline-end: calc(0.25rem * 4); 716 + top: auto; 717 + bottom: calc(0.25rem * 4); 718 + display: flex; 719 + flex-direction: column; 720 + gap: calc(0.25rem * 2); 721 + background-color: transparent; 722 + translate: var(--toast-x, 0) var(--toast-y, 0); 723 + width: max-content; 724 + max-width: calc(100vw - 2rem); 725 + & > * { 726 + @media (prefers-reduced-motion: no-preference) { 727 + animation: toast 0.25s ease-out; 728 + } 729 + } 730 + } 731 + } 732 + .input { 733 + @layer daisyui.component { 734 + cursor: text; 735 + border: var(--border) solid #0000; 736 + position: relative; 737 + display: inline-flex; 738 + flex-shrink: 1; 739 + appearance: none; 740 + align-items: center; 741 + gap: calc(0.25rem * 2); 742 + background-color: var(--color-base-100); 743 + padding-inline: calc(0.25rem * 3); 744 + vertical-align: middle; 745 + white-space: nowrap; 746 + width: clamp(3rem, 20rem, 100%); 747 + height: var(--size); 748 + font-size: max(var(--font-size, 0.875rem), 0.875rem); 749 + touch-action: manipulation; 750 + border-start-start-radius: var(--join-ss, var(--radius-field)); 751 + border-start-end-radius: var(--join-se, var(--radius-field)); 752 + border-end-start-radius: var(--join-es, var(--radius-field)); 753 + border-end-end-radius: var(--join-ee, var(--radius-field)); 754 + border-color: var(--input-color); 755 + box-shadow: 0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; 756 + @supports (color: color-mix(in lab, red, red)) { 757 + 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) * 0.1)) inset; 758 + } 759 + --size: calc(var(--size-field, 0.25rem) * 10); 760 + --input-color: var(--color-base-content); 761 + @supports (color: color-mix(in lab, red, red)) { 762 + --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000); 763 + } 764 + &:where(input) { 765 + display: inline-flex; 766 + } 767 + :where(input) { 768 + display: inline-flex; 769 + height: 100%; 770 + width: 100%; 771 + appearance: none; 772 + background-color: transparent; 773 + border: none; 774 + &:focus, &:focus-within { 775 + --tw-outline-style: none; 776 + outline-style: none; 777 + @media (forced-colors: active) { 778 + outline: 2px solid transparent; 779 + outline-offset: 2px; 780 + } 781 + } 782 + } 783 + :where(input[type="url"]), :where(input[type="email"]) { 784 + direction: ltr; 785 + } 786 + :where(input[type="date"]) { 787 + display: inline-flex; 788 + } 789 + &:focus, &:focus-within { 790 + --input-color: var(--color-base-content); 791 + box-shadow: 0 1px var(--input-color); 792 + @supports (color: color-mix(in lab, red, red)) { 793 + box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000); 794 + } 795 + outline: 2px solid var(--input-color); 796 + outline-offset: 2px; 797 + isolation: isolate; 798 + z-index: 1; 799 + } 800 + @media (pointer: coarse) { 801 + @supports (-webkit-touch-callout: none) { 802 + &:focus, &:focus-within { 803 + --font-size: 1rem; 804 + } 805 + } 806 + } 807 + &:has(> input[disabled]), &:is(:disabled, [disabled]), fieldset:disabled & { 808 + cursor: not-allowed; 809 + border-color: var(--color-base-200); 810 + background-color: var(--color-base-200); 811 + color: var(--color-base-content); 812 + @supports (color: color-mix(in lab, red, red)) { 813 + color: color-mix(in oklab, var(--color-base-content) 40%, transparent); 814 + } 815 + &::placeholder { 816 + color: var(--color-base-content); 817 + @supports (color: color-mix(in lab, red, red)) { 818 + color: color-mix(in oklab, var(--color-base-content) 20%, transparent); 819 + } 820 + } 821 + box-shadow: none; 822 + } 823 + &:has(> input[disabled]) > input[disabled] { 824 + cursor: not-allowed; 825 + } 826 + &::-webkit-date-and-time-value { 827 + text-align: inherit; 828 + } 829 + &[type="number"] { 830 + &::-webkit-inner-spin-button { 831 + margin-block: calc(0.25rem * -3); 832 + margin-inline-end: calc(0.25rem * -3); 833 + } 834 + } 835 + &::-webkit-calendar-picker-indicator { 836 + position: absolute; 837 + inset-inline-end: 0.75em; 838 + } 839 + &:has(> input[type="date"]) { 840 + :where(input[type="date"]) { 841 + display: inline-flex; 842 + webkit-appearance: none; 843 + appearance: none; 844 + } 845 + input[type="date"]::-webkit-calendar-picker-indicator { 846 + position: absolute; 847 + inset-inline-end: 0.75em; 848 + width: 1em; 849 + height: 1em; 850 + cursor: pointer; 851 + } 852 + } 853 + } 854 + } 855 + .table { 856 + @layer daisyui.component { 857 + font-size: 0.875rem; 858 + position: relative; 859 + width: 100%; 860 + border-radius: var(--radius-box); 861 + text-align: left; 862 + &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) { 863 + text-align: right; 864 + } 865 + tr.row-hover { 866 + &, &:nth-child(even) { 867 + &:hover { 868 + @media (hover: hover) { 869 + background-color: var(--color-base-200); 870 + } 871 + } 872 + } 873 + } 874 + :where(th, td) { 875 + padding-inline: calc(0.25rem * 4); 876 + padding-block: calc(0.25rem * 3); 877 + vertical-align: middle; 878 + } 879 + :where(thead, tfoot) { 880 + white-space: nowrap; 881 + color: var(--color-base-content); 882 + @supports (color: color-mix(in lab, red, red)) { 883 + color: color-mix(in oklab, var(--color-base-content) 60%, transparent); 884 + } 885 + font-size: 0.875rem; 886 + font-weight: 600; 887 + } 888 + :where(tfoot) { 889 + border-top: var(--border) solid var(--color-base-content); 890 + @supports (color: color-mix(in lab, red, red)) { 891 + border-top: var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000); 892 + } 893 + } 894 + :where(.table-pin-rows thead tr) { 895 + position: sticky; 896 + top: calc(0.25rem * 0); 897 + z-index: 1; 898 + background-color: var(--color-base-100); 899 + } 900 + :where(.table-pin-rows tfoot tr) { 901 + position: sticky; 902 + bottom: calc(0.25rem * 0); 903 + z-index: 1; 904 + background-color: var(--color-base-100); 905 + } 906 + :where(.table-pin-cols tr th) { 907 + position: sticky; 908 + right: calc(0.25rem * 0); 909 + left: calc(0.25rem * 0); 910 + background-color: var(--color-base-100); 911 + } 912 + :where(thead tr, tbody tr:not(:last-child)) { 913 + border-bottom: var(--border) solid var(--color-base-content); 914 + @supports (color: color-mix(in lab, red, red)) { 915 + border-bottom: var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000); 916 + } 917 + } 918 + } 919 + } 920 + .steps { 921 + @layer daisyui.component { 922 + display: inline-grid; 923 + grid-auto-flow: column; 924 + overflow: hidden; 925 + overflow-x: auto; 926 + counter-reset: step; 927 + grid-auto-columns: 1fr; 928 + .step { 929 + display: grid; 930 + grid-template-columns: repeat(1, minmax(0, 1fr)); 931 + grid-template-columns: auto; 932 + grid-template-rows: repeat(2, minmax(0, 1fr)); 933 + grid-template-rows: 40px 1fr; 934 + place-items: center; 935 + text-align: center; 936 + min-width: 4rem; 937 + --step-bg: var(--color-base-300); 938 + --step-fg: var(--color-base-content); 939 + &:before { 940 + top: calc(0.25rem * 0); 941 + grid-column-start: 1; 942 + grid-row-start: 1; 943 + height: calc(0.25rem * 2); 944 + width: 100%; 945 + border: 1px solid; 946 + color: var(--step-bg); 947 + background-color: var(--step-bg); 948 + content: ""; 949 + margin-inline-start: -100%; 950 + } 951 + > .step-icon, &:not(:has(.step-icon)):after { 952 + --tw-content: counter(step); 953 + content: var(--tw-content); 954 + counter-increment: step; 955 + z-index: 1; 956 + color: var(--step-fg); 957 + background-color: var(--step-bg); 958 + border: 1px solid var(--step-bg); 959 + position: relative; 960 + grid-column-start: 1; 961 + grid-row-start: 1; 962 + display: grid; 963 + height: calc(0.25rem * 8); 964 + width: calc(0.25rem * 8); 965 + place-items: center; 966 + place-self: center; 967 + border-radius: calc(infinity * 1px); 968 + } 969 + &:first-child:before { 970 + --tw-content: none; 971 + content: var(--tw-content); 972 + } 973 + &[data-content]:after { 974 + --tw-content: attr(data-content); 975 + content: var(--tw-content); 976 + } 977 + } 978 + } 979 + @layer daisyui.modifier { 980 + .step-neutral { 981 + + .step-neutral:before, &:after, > .step-icon { 982 + --step-bg: var(--color-neutral); 983 + --step-fg: var(--color-neutral-content); 984 + } 985 + } 986 + .step-primary { 987 + + .step-primary:before, &:after, > .step-icon { 988 + --step-bg: var(--color-primary); 989 + --step-fg: var(--color-primary-content); 990 + } 991 + } 992 + .step-secondary { 993 + + .step-secondary:before, &:after, > .step-icon { 994 + --step-bg: var(--color-secondary); 995 + --step-fg: var(--color-secondary-content); 996 + } 997 + } 998 + .step-accent { 999 + + .step-accent:before, &:after, > .step-icon { 1000 + --step-bg: var(--color-accent); 1001 + --step-fg: var(--color-accent-content); 1002 + } 1003 + } 1004 + .step-info { 1005 + + .step-info:before, &:after, > .step-icon { 1006 + --step-bg: var(--color-info); 1007 + --step-fg: var(--color-info-content); 1008 + } 1009 + } 1010 + .step-success { 1011 + + .step-success:before, &:after, > .step-icon { 1012 + --step-bg: var(--color-success); 1013 + --step-fg: var(--color-success-content); 1014 + } 1015 + } 1016 + .step-warning { 1017 + + .step-warning:before, &:after, > .step-icon { 1018 + --step-bg: var(--color-warning); 1019 + --step-fg: var(--color-warning-content); 1020 + } 1021 + } 1022 + .step-error { 1023 + + .step-error:before, &:after, > .step-icon { 1024 + --step-bg: var(--color-error); 1025 + --step-fg: var(--color-error-content); 1026 + } 1027 + } 1028 + } 1029 + } 1030 + .range { 1031 + @layer daisyui.component { 1032 + appearance: none; 1033 + webkit-appearance: none; 1034 + --range-thumb: var(--color-base-100); 1035 + --range-thumb-size: calc(var(--size-selector, 0.25rem) * 6); 1036 + --range-progress: currentColor; 1037 + --range-fill: 1; 1038 + --range-p: 0.25rem; 1039 + --range-bg: currentColor; 1040 + @supports (color: color-mix(in lab, red, red)) { 1041 + --range-bg: color-mix(in oklab, currentColor 10%, #0000); 1042 + } 1043 + cursor: pointer; 1044 + overflow: hidden; 1045 + background-color: transparent; 1046 + vertical-align: middle; 1047 + width: clamp(3rem, 20rem, 100%); 1048 + --radius-selector-max: calc( 1049 + var(--radius-selector) + var(--radius-selector) + var(--radius-selector) 1050 + ); 1051 + border-radius: calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max))); 1052 + border: none; 1053 + height: var(--range-thumb-size); 1054 + [dir="rtl"] & { 1055 + --range-dir: -1; 1056 + } 1057 + &:focus { 1058 + outline: none; 1059 + } 1060 + &:focus-visible { 1061 + outline: 2px solid; 1062 + outline-offset: 2px; 1063 + } 1064 + &::-webkit-slider-runnable-track { 1065 + width: 100%; 1066 + background-color: var(--range-bg); 1067 + border-radius: var(--radius-selector); 1068 + height: calc(var(--range-thumb-size) * 0.5); 1069 + } 1070 + @media (forced-colors: active) { 1071 + &::-webkit-slider-runnable-track { 1072 + border: 1px solid; 1073 + } 1074 + } 1075 + @media (forced-colors: active) { 1076 + &::-moz-range-track { 1077 + border: 1px solid; 1078 + } 1079 + } 1080 + &::-webkit-slider-thumb { 1081 + position: relative; 1082 + box-sizing: border-box; 1083 + border-radius: calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max))); 1084 + background-color: var(--range-thumb); 1085 + height: var(--range-thumb-size); 1086 + width: var(--range-thumb-size); 1087 + border: var(--range-p) solid; 1088 + appearance: none; 1089 + webkit-appearance: none; 1090 + top: 50%; 1091 + color: var(--range-progress); 1092 + transform: translateY(-50%); 1093 + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px currentColor, 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir, 1) * -100rem) - (var(--range-dir, 1) * var(--range-thumb-size) / 2)) 0 0 calc(100rem * var(--range-fill)); 1094 + @supports (color: color-mix(in lab, red, red)) { 1095 + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir, 1) * -100rem) - (var(--range-dir, 1) * var(--range-thumb-size) / 2)) 0 0 calc(100rem * var(--range-fill)); 1096 + } 1097 + } 1098 + &::-moz-range-track { 1099 + width: 100%; 1100 + background-color: var(--range-bg); 1101 + border-radius: var(--radius-selector); 1102 + height: calc(var(--range-thumb-size) * 0.5); 1103 + } 1104 + &::-moz-range-thumb { 1105 + position: relative; 1106 + box-sizing: border-box; 1107 + border-radius: calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max))); 1108 + background-color: currentColor; 1109 + height: var(--range-thumb-size); 1110 + width: var(--range-thumb-size); 1111 + border: var(--range-p) solid; 1112 + top: 50%; 1113 + color: var(--range-progress); 1114 + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px currentColor, 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir, 1) * -100rem) - (var(--range-dir, 1) * var(--range-thumb-size) / 2)) 0 0 calc(100rem * var(--range-fill)); 1115 + @supports (color: color-mix(in lab, red, red)) { 1116 + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir, 1) * -100rem) - (var(--range-dir, 1) * var(--range-thumb-size) / 2)) 0 0 calc(100rem * var(--range-fill)); 1117 + } 1118 + } 1119 + &:disabled { 1120 + cursor: not-allowed; 1121 + opacity: 30%; 1122 + } 1123 + } 1124 + } 1125 + .select { 1126 + @layer daisyui.component { 1127 + border: var(--border) solid #0000; 1128 + position: relative; 1129 + display: inline-flex; 1130 + flex-shrink: 1; 1131 + appearance: none; 1132 + align-items: center; 1133 + gap: calc(0.25rem * 1.5); 1134 + background-color: var(--color-base-100); 1135 + padding-inline-start: calc(0.25rem * 3); 1136 + padding-inline-end: calc(0.25rem * 7); 1137 + vertical-align: middle; 1138 + width: clamp(3rem, 20rem, 100%); 1139 + height: var(--size); 1140 + font-size: 0.875rem; 1141 + touch-action: manipulation; 1142 + border-start-start-radius: var(--join-ss, var(--radius-field)); 1143 + border-start-end-radius: var(--join-se, var(--radius-field)); 1144 + border-end-start-radius: var(--join-es, var(--radius-field)); 1145 + border-end-end-radius: var(--join-ee, var(--radius-field)); 1146 + background-image: linear-gradient(45deg, #0000 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, #0000 50%); 1147 + background-position: calc(100% - 20px) calc(1px + 50%), calc(100% - 16.1px) calc(1px + 50%); 1148 + background-size: 4px 4px, 4px 4px; 1149 + background-repeat: no-repeat; 1150 + white-space: nowrap; 1151 + overflow: hidden; 1152 + text-overflow: ellipsis; 1153 + box-shadow: 0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; 1154 + @supports (color: color-mix(in lab, red, red)) { 1155 + 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) * 0.1)) inset; 1156 + } 1157 + border-color: var(--input-color); 1158 + --input-color: var(--color-base-content); 1159 + @supports (color: color-mix(in lab, red, red)) { 1160 + --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000); 1161 + } 1162 + --size: calc(var(--size-field, 0.25rem) * 10); 1163 + [dir="rtl"] & { 1164 + background-position: calc(0% + 12px) calc(1px + 50%), calc(0% + 16px) calc(1px + 50%); 1165 + &::picker(select), select::picker(select) { 1166 + translate: 0.5rem 0; 1167 + } 1168 + } 1169 + &[multiple] { 1170 + height: auto; 1171 + overflow: auto; 1172 + padding-block: calc(0.25rem * 3); 1173 + padding-inline-end: calc(0.25rem * 3); 1174 + background-image: none; 1175 + } 1176 + select { 1177 + margin-inline-start: calc(0.25rem * -3); 1178 + margin-inline-end: calc(0.25rem * -7); 1179 + width: calc(100% + 2.75rem); 1180 + appearance: none; 1181 + padding-inline-start: calc(0.25rem * 3); 1182 + padding-inline-end: calc(0.25rem * 7); 1183 + height: calc(100% - calc(var(--border) * 2)); 1184 + align-items: center; 1185 + background: inherit; 1186 + border-radius: inherit; 1187 + border-style: none; 1188 + &:focus, &:focus-within { 1189 + --tw-outline-style: none; 1190 + outline-style: none; 1191 + @media (forced-colors: active) { 1192 + outline: 2px solid transparent; 1193 + outline-offset: 2px; 1194 + } 1195 + } 1196 + &:not(:last-child) { 1197 + margin-inline-end: calc(0.25rem * -5.5); 1198 + background-image: none; 1199 + } 1200 + } 1201 + &:focus, &:focus-within { 1202 + --input-color: var(--color-base-content); 1203 + box-shadow: 0 1px var(--input-color); 1204 + @supports (color: color-mix(in lab, red, red)) { 1205 + box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000); 1206 + } 1207 + outline: 2px solid var(--input-color); 1208 + outline-offset: 2px; 1209 + isolation: isolate; 1210 + z-index: 1; 1211 + } 1212 + &:has(> select[disabled]), &:is(:disabled, [disabled]), fieldset:disabled & { 1213 + cursor: not-allowed; 1214 + border-color: var(--color-base-200); 1215 + background-color: var(--color-base-200); 1216 + color: var(--color-base-content); 1217 + @supports (color: color-mix(in lab, red, red)) { 1218 + color: color-mix(in oklab, var(--color-base-content) 40%, transparent); 1219 + } 1220 + &::placeholder { 1221 + color: var(--color-base-content); 1222 + @supports (color: color-mix(in lab, red, red)) { 1223 + color: color-mix(in oklab, var(--color-base-content) 20%, transparent); 1224 + } 1225 + } 1226 + } 1227 + &:has(> select[disabled]) > select[disabled] { 1228 + cursor: not-allowed; 1229 + } 1230 + &, & select { 1231 + @supports (appearance: base-select) { 1232 + appearance: base-select; 1233 + } 1234 + @supports (appearance: base-select) { 1235 + &::picker(select) { 1236 + appearance: base-select; 1237 + } 1238 + } 1239 + &::picker(select) { 1240 + color: inherit; 1241 + max-height: min(24rem, 70dvh); 1242 + margin-inline: 0.5rem; 1243 + translate: -0.5rem 0; 1244 + border: var(--border) solid var(--color-base-200); 1245 + margin-block: calc(0.25rem * 2); 1246 + border-radius: var(--radius-box); 1247 + padding: calc(0.25rem * 2); 1248 + background-color: inherit; 1249 + box-shadow: 0 2px calc(var(--depth) * 3px) -2px oklch(0% 0 0/0.2); 1250 + box-shadow: 0 20px 25px -5px rgb(0 0 0 / calc(var(--depth) * 0.1)), 0 8px 10px -6px rgb(0 0 0 / calc(var(--depth) * 0.1)); 1251 + } 1252 + &::picker-icon { 1253 + display: none; 1254 + } 1255 + optgroup { 1256 + padding-top: 0.5em; 1257 + option { 1258 + &:nth-child(1) { 1259 + margin-top: 0.5em; 1260 + } 1261 + } 1262 + } 1263 + option { 1264 + border-radius: var(--radius-field); 1265 + padding-inline: calc(0.25rem * 3); 1266 + padding-block: calc(0.25rem * 1.5); 1267 + transition-property: color, background-color; 1268 + transition-duration: 0.2s; 1269 + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); 1270 + white-space: normal; 1271 + &:not(:disabled) { 1272 + &:hover, &:focus-visible { 1273 + cursor: pointer; 1274 + background-color: var(--color-base-content); 1275 + @supports (color: color-mix(in lab, red, red)) { 1276 + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); 1277 + } 1278 + --tw-outline-style: none; 1279 + outline-style: none; 1280 + @media (forced-colors: active) { 1281 + outline: 2px solid transparent; 1282 + outline-offset: 2px; 1283 + } 1284 + } 1285 + &:active { 1286 + background-color: var(--color-neutral); 1287 + color: var(--color-neutral-content); 1288 + box-shadow: 0 2px calc(var(--depth) * 3px) -2px var(--color-neutral); 1289 + } 1290 + } 1291 + } 1292 + } 1293 + } 1294 + } 1295 + .checkbox { 1296 + @layer daisyui.component { 1297 + border: var(--border) solid var(--input-color, var(--color-base-content)); 1298 + @supports (color: color-mix(in lab, red, red)) { 1299 + border: var(--border) solid var(--input-color, color-mix(in oklab, var(--color-base-content) 20%, #0000)); 1300 + } 1301 + position: relative; 1302 + display: inline-block; 1303 + flex-shrink: 0; 1304 + cursor: pointer; 1305 + appearance: none; 1306 + border-radius: var(--radius-selector); 1307 + padding: calc(0.25rem * 1); 1308 + vertical-align: middle; 1309 + color: var(--color-base-content); 1310 + box-shadow: 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 0 #0000 inset, 0 0 #0000; 1311 + transition: background-color 0.2s, box-shadow 0.2s; 1312 + --size: calc(var(--size-selector, 0.25rem) * 6); 1313 + width: var(--size); 1314 + height: var(--size); 1315 + background-size: auto, calc(var(--noise) * 100%); 1316 + background-image: none, var(--fx-noise); 1317 + &:before { 1318 + --tw-content: ""; 1319 + content: var(--tw-content); 1320 + display: block; 1321 + width: 100%; 1322 + height: 100%; 1323 + rotate: 45deg; 1324 + background-color: currentcolor; 1325 + opacity: 0%; 1326 + transition: clip-path 0.3s, opacity 0.1s, rotate 0.3s, translate 0.3s; 1327 + transition-delay: 0.1s; 1328 + clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 80%, 70% 80%, 70% 100%); 1329 + box-shadow: 0px 3px 0 0px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; 1330 + font-size: 1rem; 1331 + line-height: 0.75; 1332 + } 1333 + &:focus-visible { 1334 + outline: 2px solid var(--input-color, currentColor); 1335 + outline-offset: 2px; 1336 + } 1337 + &:checked, &[aria-checked="true"] { 1338 + background-color: var(--input-color, #0000); 1339 + box-shadow: 0 0 #0000 inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1)); 1340 + &:before { 1341 + clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 0%, 70% 0%, 70% 100%); 1342 + opacity: 100%; 1343 + } 1344 + @media (forced-colors: active) { 1345 + &:before { 1346 + rotate: 0deg; 1347 + background-color: transparent; 1348 + --tw-content: "✔︎"; 1349 + clip-path: none; 1350 + } 1351 + } 1352 + @media print { 1353 + &:before { 1354 + rotate: 0deg; 1355 + background-color: transparent; 1356 + --tw-content: "✔︎"; 1357 + clip-path: none; 1358 + } 1359 + } 1360 + } 1361 + &:indeterminate { 1362 + background-color: var( --input-color, var(--color-base-content) ); 1363 + @supports (color: color-mix(in lab, red, red)) { 1364 + background-color: var( --input-color, color-mix(in oklab, var(--color-base-content) 20%, #0000) ); 1365 + } 1366 + &:before { 1367 + rotate: 0deg; 1368 + opacity: 100%; 1369 + translate: 0 -35%; 1370 + clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 80%, 80% 80%, 80% 100%); 1371 + } 1372 + } 1373 + } 1374 + &:disabled { 1375 + @layer daisyui.modifier { 1376 + cursor: not-allowed; 1377 + opacity: 20%; 1378 + } 1379 + } 1380 + } 1381 + .radio { 1382 + @layer daisyui.component { 1383 + position: relative; 1384 + display: inline-block; 1385 + flex-shrink: 0; 1386 + cursor: pointer; 1387 + appearance: none; 1388 + border-radius: calc(infinity * 1px); 1389 + padding: calc(0.25rem * 1); 1390 + vertical-align: middle; 1391 + border: var(--border) solid var(--input-color, currentColor); 1392 + @supports (color: color-mix(in lab, red, red)) { 1393 + border: var(--border) solid var(--input-color, color-mix(in srgb, currentColor 20%, #0000)); 1394 + } 1395 + box-shadow: 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset; 1396 + --size: calc(var(--size-selector, 0.25rem) * 6); 1397 + width: var(--size); 1398 + height: var(--size); 1399 + color: var(--input-color, currentColor); 1400 + &:before { 1401 + display: block; 1402 + width: 100%; 1403 + height: 100%; 1404 + border-radius: calc(infinity * 1px); 1405 + --tw-content: ""; 1406 + content: var(--tw-content); 1407 + background-size: auto, calc(var(--noise) * 100%); 1408 + background-image: none, var(--fx-noise); 1409 + } 1410 + &:focus-visible { 1411 + outline: 2px solid currentColor; 1412 + } 1413 + &:checked, &[aria-checked="true"] { 1414 + border-color: currentcolor; 1415 + background-color: var(--color-base-100); 1416 + @media (prefers-reduced-motion: no-preference) { 1417 + animation: radio 0.2s ease-out; 1418 + } 1419 + &:before { 1420 + background-color: currentcolor; 1421 + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1)); 1422 + } 1423 + @media (forced-colors: active) { 1424 + &:before { 1425 + outline-style: var(--tw-outline-style); 1426 + outline-width: 1px; 1427 + outline-offset: calc(1px * -1); 1428 + } 1429 + } 1430 + @media print { 1431 + &:before { 1432 + outline: 0.25rem solid; 1433 + outline-offset: -1rem; 1434 + } 1435 + } 1436 + } 1437 + } 1438 + &:disabled { 1439 + @layer daisyui.modifier { 1440 + cursor: not-allowed; 1441 + opacity: 20%; 1442 + } 1443 + } 1444 + } 1445 + .rating { 1446 + @layer daisyui.component { 1447 + position: relative; 1448 + display: inline-flex; 1449 + vertical-align: middle; 1450 + & input { 1451 + border: none; 1452 + appearance: none; 1453 + } 1454 + :where(*) { 1455 + height: calc(0.25rem * 6); 1456 + width: calc(0.25rem * 6); 1457 + border-radius: 0; 1458 + background-color: var(--color-base-content); 1459 + opacity: 20%; 1460 + @media (prefers-reduced-motion: no-preference) { 1461 + animation: rating 0.25s ease-out; 1462 + } 1463 + &:is(input) { 1464 + cursor: pointer; 1465 + } 1466 + } 1467 + & .rating-hidden { 1468 + width: calc(0.25rem * 2); 1469 + background-color: transparent; 1470 + } 1471 + input[type="radio"]:checked { 1472 + background-image: none; 1473 + } 1474 + * { 1475 + &:checked, &[aria-checked="true"], &[aria-current="true"], &:has(~ *:checked, ~ *[aria-checked="true"], ~ *[aria-current="true"]) { 1476 + opacity: 100%; 1477 + } 1478 + &:focus-visible { 1479 + scale: 1.1; 1480 + @media (prefers-reduced-motion: no-preference) { 1481 + transition: scale 0.2s ease-out; 1482 + } 1483 + } 1484 + } 1485 + & *:active:focus { 1486 + animation: none; 1487 + scale: 1.1; 1488 + } 1489 + } 1490 + @layer daisyui.modifier { 1491 + &.rating-xs :where(*:not(.rating-hidden)) { 1492 + width: calc(0.25rem * 4); 1493 + height: calc(0.25rem * 4); 1494 + } 1495 + &.rating-sm :where(*:not(.rating-hidden)) { 1496 + width: calc(0.25rem * 5); 1497 + height: calc(0.25rem * 5); 1498 + } 1499 + &.rating-md :where(*:not(.rating-hidden)) { 1500 + width: calc(0.25rem * 6); 1501 + height: calc(0.25rem * 6); 1502 + } 1503 + &.rating-lg :where(*:not(.rating-hidden)) { 1504 + width: calc(0.25rem * 7); 1505 + height: calc(0.25rem * 7); 1506 + } 1507 + &.rating-xl :where(*:not(.rating-hidden)) { 1508 + width: calc(0.25rem * 8); 1509 + height: calc(0.25rem * 8); 1510 + } 1511 + } 1512 + } 1513 + .navbar { 1514 + @layer daisyui.component { 1515 + display: flex; 1516 + width: 100%; 1517 + align-items: center; 1518 + padding: 0.5rem; 1519 + min-height: 4rem; 1520 + } 1521 + :where(&) { 1522 + @layer daisyui.modifier { 1523 + position: relative; 1524 + } 1525 + } 1526 + } 1527 + .card { 1528 + @layer daisyui.component { 1529 + position: relative; 1530 + display: flex; 1531 + flex-direction: column; 1532 + border-radius: var(--radius-box); 1533 + outline-width: 2px; 1534 + transition: outline 0.2s ease-in-out; 1535 + outline: 0 solid #0000; 1536 + outline-offset: 2px; 1537 + &:focus { 1538 + --tw-outline-style: none; 1539 + outline-style: none; 1540 + @media (forced-colors: active) { 1541 + outline: 2px solid transparent; 1542 + outline-offset: 2px; 1543 + } 1544 + } 1545 + &:focus-visible { 1546 + outline-color: currentColor; 1547 + } 1548 + :where(figure:first-child) { 1549 + overflow: hidden; 1550 + border-start-start-radius: inherit; 1551 + border-start-end-radius: inherit; 1552 + border-end-start-radius: unset; 1553 + border-end-end-radius: unset; 1554 + } 1555 + :where(figure:last-child) { 1556 + overflow: hidden; 1557 + border-start-start-radius: unset; 1558 + border-start-end-radius: unset; 1559 + border-end-start-radius: inherit; 1560 + border-end-end-radius: inherit; 1561 + } 1562 + figure { 1563 + display: flex; 1564 + align-items: center; 1565 + justify-content: center; 1566 + } 1567 + &:has(> input:is(input[type="checkbox"], input[type="radio"])) { 1568 + cursor: pointer; 1569 + user-select: none; 1570 + } 1571 + &:has(> :checked) { 1572 + outline: 2px solid currentColor; 1573 + } 1574 + } 1575 + } 1576 + .progress { 1577 + @layer daisyui.component { 1578 + position: relative; 1579 + height: calc(0.25rem * 2); 1580 + width: 100%; 1581 + appearance: none; 1582 + overflow: hidden; 1583 + border-radius: var(--radius-box); 1584 + background-color: currentcolor; 1585 + @supports (color: color-mix(in lab, red, red)) { 1586 + background-color: color-mix(in oklab, currentcolor 20%, transparent); 1587 + } 1588 + color: var(--color-base-content); 1589 + &:indeterminate { 1590 + background-image: repeating-linear-gradient( 90deg, currentColor -1%, currentColor 10%, #0000 10%, #0000 90% ); 1591 + background-size: 200%; 1592 + background-position-x: 15%; 1593 + @media (prefers-reduced-motion: no-preference) { 1594 + animation: progress 5s ease-in-out infinite; 1595 + } 1596 + @supports (-moz-appearance: none) { 1597 + &::-moz-progress-bar { 1598 + background-color: transparent; 1599 + @media (prefers-reduced-motion: no-preference) { 1600 + animation: progress 5s ease-in-out infinite; 1601 + background-image: repeating-linear-gradient( 90deg, currentColor -1%, currentColor 10%, #0000 10%, #0000 90% ); 1602 + background-size: 200%; 1603 + background-position-x: 15%; 1604 + } 1605 + } 1606 + } 1607 + } 1608 + @supports (-moz-appearance: none) { 1609 + &::-moz-progress-bar { 1610 + border-radius: var(--radius-box); 1611 + background-color: currentcolor; 1612 + } 1613 + } 1614 + @supports (-webkit-appearance: none) { 1615 + &::-webkit-progress-bar { 1616 + border-radius: var(--radius-box); 1617 + background-color: transparent; 1618 + } 1619 + &::-webkit-progress-value { 1620 + border-radius: var(--radius-box); 1621 + background-color: currentColor; 1622 + } 1623 + } 1624 + } 1625 + } 1626 + .static { 1627 + position: static; 1628 + } 1629 + .start { 1630 + inset-inline-start: var(--spacing); 1631 + } 1632 + .end { 1633 + inset-inline-end: var(--spacing); 1634 + } 1635 + .hero-content { 1636 + @layer daisyui.component { 1637 + isolation: isolate; 1638 + display: flex; 1639 + max-width: 80rem; 1640 + align-items: center; 1641 + justify-content: center; 1642 + gap: calc(0.25rem * 4); 1643 + padding: calc(0.25rem * 4); 1644 + } 1645 + } 1646 + .textarea { 1647 + @layer daisyui.component { 1648 + border: var(--border) solid #0000; 1649 + min-height: calc(0.25rem * 20); 1650 + flex-shrink: 1; 1651 + appearance: none; 1652 + border-radius: var(--radius-field); 1653 + background-color: var(--color-base-100); 1654 + padding-block: calc(0.25rem * 2); 1655 + vertical-align: middle; 1656 + width: clamp(3rem, 20rem, 100%); 1657 + padding-inline-start: 0.75rem; 1658 + padding-inline-end: 0.75rem; 1659 + font-size: max(var(--font-size, 0.875rem), 0.875rem); 1660 + touch-action: manipulation; 1661 + border-color: var(--input-color); 1662 + box-shadow: 0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; 1663 + @supports (color: color-mix(in lab, red, red)) { 1664 + 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) * 0.1)) inset; 1665 + } 1666 + --input-color: var(--color-base-content); 1667 + @supports (color: color-mix(in lab, red, red)) { 1668 + --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000); 1669 + } 1670 + textarea { 1671 + appearance: none; 1672 + background-color: transparent; 1673 + border: none; 1674 + &:focus, &:focus-within { 1675 + --tw-outline-style: none; 1676 + outline-style: none; 1677 + @media (forced-colors: active) { 1678 + outline: 2px solid transparent; 1679 + outline-offset: 2px; 1680 + } 1681 + } 1682 + } 1683 + &:focus, &:focus-within { 1684 + --input-color: var(--color-base-content); 1685 + box-shadow: 0 1px var(--input-color); 1686 + @supports (color: color-mix(in lab, red, red)) { 1687 + box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000); 1688 + } 1689 + outline: 2px solid var(--input-color); 1690 + outline-offset: 2px; 1691 + isolation: isolate; 1692 + } 1693 + @media (pointer: coarse) { 1694 + @supports (-webkit-touch-callout: none) { 1695 + &:focus, &:focus-within { 1696 + --font-size: 1rem; 1697 + } 1698 + } 1699 + } 1700 + &:has(> textarea[disabled]), &:is(:disabled, [disabled]) { 1701 + cursor: not-allowed; 1702 + border-color: var(--color-base-200); 1703 + background-color: var(--color-base-200); 1704 + color: var(--color-base-content); 1705 + @supports (color: color-mix(in lab, red, red)) { 1706 + color: color-mix(in oklab, var(--color-base-content) 40%, transparent); 1707 + } 1708 + &::placeholder { 1709 + color: var(--color-base-content); 1710 + @supports (color: color-mix(in lab, red, red)) { 1711 + color: color-mix(in oklab, var(--color-base-content) 20%, transparent); 1712 + } 1713 + } 1714 + box-shadow: none; 1715 + } 1716 + &:has(> textarea[disabled]) > textarea[disabled] { 1717 + cursor: not-allowed; 1718 + } 1719 + } 1720 + } 1721 + .hero { 1722 + @layer daisyui.component { 1723 + display: grid; 1724 + width: 100%; 1725 + place-items: center; 1726 + background-size: cover; 1727 + background-position: center; 1728 + & > * { 1729 + grid-column-start: 1; 1730 + grid-row-start: 1; 1731 + } 1732 + } 1733 + } 1734 + .container { 1735 + width: 100%; 1736 + @media (width >= 40rem) { 1737 + max-width: 40rem; 1738 + } 1739 + @media (width >= 48rem) { 1740 + max-width: 48rem; 1741 + } 1742 + @media (width >= 64rem) { 1743 + max-width: 64rem; 1744 + } 1745 + @media (width >= 80rem) { 1746 + max-width: 80rem; 1747 + } 1748 + @media (width >= 96rem) { 1749 + max-width: 96rem; 1750 + } 1751 + } 1752 + .divider { 1753 + @layer daisyui.component { 1754 + display: flex; 1755 + height: calc(0.25rem * 4); 1756 + flex-direction: row; 1757 + align-items: center; 1758 + align-self: stretch; 1759 + white-space: nowrap; 1760 + margin: var(--divider-m, 1rem 0); 1761 + --divider-color: var(--color-base-content); 1762 + @supports (color: color-mix(in lab, red, red)) { 1763 + --divider-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); 1764 + } 1765 + &:before, &:after { 1766 + content: ""; 1767 + height: calc(0.25rem * 0.5); 1768 + width: 100%; 1769 + flex-grow: 1; 1770 + background-color: var(--divider-color); 1771 + } 1772 + @media print { 1773 + &:before, &:after { 1774 + border: 0.5px solid; 1775 + } 1776 + } 1777 + &:not(:empty) { 1778 + gap: calc(0.25rem * 4); 1779 + } 1780 + } 1781 + } 1782 + .filter { 1783 + @layer daisyui.component { 1784 + display: flex; 1785 + flex-wrap: wrap; 1786 + input[type="radio"] { 1787 + width: auto; 1788 + } 1789 + input { 1790 + overflow: hidden; 1791 + opacity: 100%; 1792 + scale: 1; 1793 + transition: margin 0.1s, opacity 0.3s, padding 0.3s, border-width 0.1s; 1794 + &:not(:last-child) { 1795 + margin-inline-end: calc(0.25rem * 1); 1796 + } 1797 + &.filter-reset { 1798 + aspect-ratio: 1 / 1; 1799 + &::after { 1800 + --tw-content: "×"; 1801 + content: var(--tw-content); 1802 + } 1803 + } 1804 + } 1805 + &:not(:has(input:checked:not(.filter-reset))) { 1806 + .filter-reset, input[type="reset"] { 1807 + scale: 0; 1808 + border-width: 0; 1809 + margin-inline: calc(0.25rem * 0); 1810 + width: calc(0.25rem * 0); 1811 + padding-inline: calc(0.25rem * 0); 1812 + opacity: 0%; 1813 + } 1814 + } 1815 + &:has(input:checked:not(.filter-reset)) { 1816 + input:not(:checked, .filter-reset, input[type="reset"]) { 1817 + scale: 0; 1818 + border-width: 0; 1819 + margin-inline: calc(0.25rem * 0); 1820 + width: calc(0.25rem * 0); 1821 + padding-inline: calc(0.25rem * 0); 1822 + opacity: 0%; 1823 + } 1824 + } 1825 + } 1826 + } 1827 + .mx-auto { 1828 + margin-inline: auto; 1829 + } 1830 + .label { 1831 + @layer daisyui.component { 1832 + display: inline-flex; 1833 + align-items: center; 1834 + gap: calc(0.25rem * 1.5); 1835 + white-space: nowrap; 1836 + color: currentcolor; 1837 + @supports (color: color-mix(in lab, red, red)) { 1838 + color: color-mix(in oklab, currentcolor 60%, transparent); 1839 + } 1840 + &:has(input) { 1841 + cursor: pointer; 1842 + } 1843 + &:is(.input > *, .select > *) { 1844 + display: flex; 1845 + height: calc(100% - 0.5rem); 1846 + align-items: center; 1847 + padding-inline: calc(0.25rem * 3); 1848 + white-space: nowrap; 1849 + font-size: inherit; 1850 + &:first-child { 1851 + margin-inline-start: calc(0.25rem * -3); 1852 + margin-inline-end: calc(0.25rem * 3); 1853 + border-inline-end: var(--border) solid currentColor; 1854 + @supports (color: color-mix(in lab, red, red)) { 1855 + border-inline-end: var(--border) solid color-mix(in oklab, currentColor 10%, #0000); 1856 + } 1857 + } 1858 + &:last-child { 1859 + margin-inline-start: calc(0.25rem * 3); 1860 + margin-inline-end: calc(0.25rem * -3); 1861 + border-inline-start: var(--border) solid currentColor; 1862 + @supports (color: color-mix(in lab, red, red)) { 1863 + border-inline-start: var(--border) solid color-mix(in oklab, currentColor 10%, #0000); 1864 + } 1865 + } 1866 + } 1867 + } 1868 + } 1869 + .join-item { 1870 + &:where(*:not(:first-child, :disabled, [disabled], .btn-disabled)) { 1871 + margin-inline-start: calc(var(--border, 1px) * -1); 1872 + margin-block-start: 0; 1873 + } 1874 + &:where(*:is(:disabled, [disabled], .btn-disabled)) { 1875 + border-width: var(--border, 1px) 0 var(--border, 1px) var(--border, 1px); 1876 + } 1877 + } 1878 + .prose { 1879 + color: var(--tw-prose-body); 1880 + max-width: 65ch; 1881 + :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1882 + margin-top: 1.25em; 1883 + margin-bottom: 1.25em; 1884 + } 1885 + :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1886 + color: var(--tw-prose-lead); 1887 + font-size: 1.25em; 1888 + line-height: 1.6; 1889 + margin-top: 1.2em; 1890 + margin-bottom: 1.2em; 1891 + } 1892 + :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1893 + color: var(--tw-prose-links); 1894 + text-decoration: underline; 1895 + font-weight: 500; 1896 + } 1897 + :where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1898 + color: var(--tw-prose-bold); 1899 + font-weight: 600; 1900 + } 1901 + :where(a strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1902 + color: inherit; 1903 + } 1904 + :where(blockquote strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1905 + color: inherit; 1906 + } 1907 + :where(thead th strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1908 + color: inherit; 1909 + } 1910 + :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1911 + list-style-type: decimal; 1912 + margin-top: 1.25em; 1913 + margin-bottom: 1.25em; 1914 + padding-inline-start: 1.625em; 1915 + } 1916 + :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1917 + list-style-type: upper-alpha; 1918 + } 1919 + :where(ol[type="a"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1920 + list-style-type: lower-alpha; 1921 + } 1922 + :where(ol[type="A" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1923 + list-style-type: upper-alpha; 1924 + } 1925 + :where(ol[type="a" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1926 + list-style-type: lower-alpha; 1927 + } 1928 + :where(ol[type="I"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1929 + list-style-type: upper-roman; 1930 + } 1931 + :where(ol[type="i"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1932 + list-style-type: lower-roman; 1933 + } 1934 + :where(ol[type="I" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1935 + list-style-type: upper-roman; 1936 + } 1937 + :where(ol[type="i" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1938 + list-style-type: lower-roman; 1939 + } 1940 + :where(ol[type="1"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1941 + list-style-type: decimal; 1942 + } 1943 + :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1944 + list-style-type: disc; 1945 + margin-top: 1.25em; 1946 + margin-bottom: 1.25em; 1947 + padding-inline-start: 1.625em; 1948 + } 1949 + :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { 1950 + font-weight: 400; 1951 + color: var(--tw-prose-counters); 1952 + } 1953 + :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { 1954 + color: var(--tw-prose-bullets); 1955 + } 1956 + :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1957 + color: var(--tw-prose-headings); 1958 + font-weight: 600; 1959 + margin-top: 1.25em; 1960 + } 1961 + :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1962 + border-color: var(--tw-prose-hr); 1963 + border-top-width: 1px; 1964 + margin-top: 3em; 1965 + margin-bottom: 3em; 1966 + } 1967 + :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1968 + font-weight: 500; 1969 + font-style: italic; 1970 + color: var(--tw-prose-quotes); 1971 + border-inline-start-width: 0.25rem; 1972 + border-inline-start-color: var(--tw-prose-quote-borders); 1973 + quotes: "\201C""\201D""\2018""\2019"; 1974 + margin-top: 1.6em; 1975 + margin-bottom: 1.6em; 1976 + padding-inline-start: 1em; 1977 + } 1978 + :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { 1979 + content: open-quote; 1980 + } 1981 + :where(blockquote p:last-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { 1982 + content: close-quote; 1983 + } 1984 + :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1985 + color: var(--tw-prose-headings); 1986 + font-weight: 800; 1987 + font-size: 2.25em; 1988 + margin-top: 0; 1989 + margin-bottom: 0.8888889em; 1990 + line-height: 1.1111111; 1991 + } 1992 + :where(h1 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1993 + font-weight: 900; 1994 + color: inherit; 1995 + } 1996 + :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 1997 + color: var(--tw-prose-headings); 1998 + font-weight: 700; 1999 + font-size: 1.5em; 2000 + margin-top: 2em; 2001 + margin-bottom: 1em; 2002 + line-height: 1.3333333; 2003 + } 2004 + :where(h2 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2005 + font-weight: 800; 2006 + color: inherit; 2007 + } 2008 + :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2009 + color: var(--tw-prose-headings); 2010 + font-weight: 600; 2011 + font-size: 1.25em; 2012 + margin-top: 1.6em; 2013 + margin-bottom: 0.6em; 2014 + line-height: 1.6; 2015 + } 2016 + :where(h3 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2017 + font-weight: 700; 2018 + color: inherit; 2019 + } 2020 + :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2021 + color: var(--tw-prose-headings); 2022 + font-weight: 600; 2023 + margin-top: 1.5em; 2024 + margin-bottom: 0.5em; 2025 + line-height: 1.5; 2026 + } 2027 + :where(h4 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2028 + font-weight: 700; 2029 + color: inherit; 2030 + } 2031 + :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2032 + margin-top: 2em; 2033 + margin-bottom: 2em; 2034 + } 2035 + :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2036 + display: block; 2037 + margin-top: 2em; 2038 + margin-bottom: 2em; 2039 + } 2040 + :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2041 + margin-top: 2em; 2042 + margin-bottom: 2em; 2043 + } 2044 + :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2045 + font-weight: 500; 2046 + font-family: inherit; 2047 + color: var(--tw-prose-kbd); 2048 + box-shadow: 0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows); 2049 + font-size: 0.875em; 2050 + border-radius: 0.3125rem; 2051 + padding-top: 0.1875em; 2052 + padding-inline-end: 0.375em; 2053 + padding-bottom: 0.1875em; 2054 + padding-inline-start: 0.375em; 2055 + } 2056 + :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2057 + color: var(--tw-prose-code); 2058 + font-weight: 600; 2059 + font-size: 0.875em; 2060 + } 2061 + :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { 2062 + content: "`"; 2063 + } 2064 + :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { 2065 + content: "`"; 2066 + } 2067 + :where(a code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2068 + color: inherit; 2069 + } 2070 + :where(h1 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2071 + color: inherit; 2072 + } 2073 + :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2074 + color: inherit; 2075 + font-size: 0.875em; 2076 + } 2077 + :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2078 + color: inherit; 2079 + font-size: 0.9em; 2080 + } 2081 + :where(h4 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2082 + color: inherit; 2083 + } 2084 + :where(blockquote code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2085 + color: inherit; 2086 + } 2087 + :where(thead th code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2088 + color: inherit; 2089 + } 2090 + :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2091 + color: var(--tw-prose-pre-code); 2092 + background-color: var(--tw-prose-pre-bg); 2093 + overflow-x: auto; 2094 + font-weight: 400; 2095 + font-size: 0.875em; 2096 + line-height: 1.7142857; 2097 + margin-top: 1.7142857em; 2098 + margin-bottom: 1.7142857em; 2099 + border-radius: 0.375rem; 2100 + padding-top: 0.8571429em; 2101 + padding-inline-end: 1.1428571em; 2102 + padding-bottom: 0.8571429em; 2103 + padding-inline-start: 1.1428571em; 2104 + } 2105 + :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2106 + background-color: transparent; 2107 + border-width: 0; 2108 + border-radius: 0; 2109 + padding: 0; 2110 + font-weight: inherit; 2111 + color: inherit; 2112 + font-size: inherit; 2113 + font-family: inherit; 2114 + line-height: inherit; 2115 + } 2116 + :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { 2117 + content: none; 2118 + } 2119 + :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { 2120 + content: none; 2121 + } 2122 + :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2123 + width: 100%; 2124 + table-layout: auto; 2125 + margin-top: 2em; 2126 + margin-bottom: 2em; 2127 + font-size: 0.875em; 2128 + line-height: 1.7142857; 2129 + } 2130 + :where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2131 + border-bottom-width: 1px; 2132 + border-bottom-color: var(--tw-prose-th-borders); 2133 + } 2134 + :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2135 + color: var(--tw-prose-headings); 2136 + font-weight: 600; 2137 + vertical-align: bottom; 2138 + padding-inline-end: 0.5714286em; 2139 + padding-bottom: 0.5714286em; 2140 + padding-inline-start: 0.5714286em; 2141 + } 2142 + :where(tbody tr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2143 + border-bottom-width: 1px; 2144 + border-bottom-color: var(--tw-prose-td-borders); 2145 + } 2146 + :where(tbody tr:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2147 + border-bottom-width: 0; 2148 + } 2149 + :where(tbody td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2150 + vertical-align: baseline; 2151 + } 2152 + :where(tfoot):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2153 + border-top-width: 1px; 2154 + border-top-color: var(--tw-prose-th-borders); 2155 + } 2156 + :where(tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2157 + vertical-align: top; 2158 + } 2159 + :where(th, td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2160 + text-align: start; 2161 + } 2162 + :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2163 + margin-top: 0; 2164 + margin-bottom: 0; 2165 + } 2166 + :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2167 + color: var(--tw-prose-captions); 2168 + font-size: 0.875em; 2169 + line-height: 1.4285714; 2170 + margin-top: 0.8571429em; 2171 + } 2172 + --tw-prose-body: oklch(37.3% 0.034 259.733); 2173 + --tw-prose-headings: oklch(21% 0.034 264.665); 2174 + --tw-prose-lead: oklch(44.6% 0.03 256.802); 2175 + --tw-prose-links: oklch(21% 0.034 264.665); 2176 + --tw-prose-bold: oklch(21% 0.034 264.665); 2177 + --tw-prose-counters: oklch(55.1% 0.027 264.364); 2178 + --tw-prose-bullets: oklch(87.2% 0.01 258.338); 2179 + --tw-prose-hr: oklch(92.8% 0.006 264.531); 2180 + --tw-prose-quotes: oklch(21% 0.034 264.665); 2181 + --tw-prose-quote-borders: oklch(92.8% 0.006 264.531); 2182 + --tw-prose-captions: oklch(55.1% 0.027 264.364); 2183 + --tw-prose-kbd: oklch(21% 0.034 264.665); 2184 + --tw-prose-kbd-shadows: color-mix(in oklab, oklch(21% 0.034 264.665) 10%, transparent); 2185 + --tw-prose-code: oklch(21% 0.034 264.665); 2186 + --tw-prose-pre-code: oklch(92.8% 0.006 264.531); 2187 + --tw-prose-pre-bg: oklch(27.8% 0.033 256.848); 2188 + --tw-prose-th-borders: oklch(87.2% 0.01 258.338); 2189 + --tw-prose-td-borders: oklch(92.8% 0.006 264.531); 2190 + --tw-prose-invert-body: oklch(87.2% 0.01 258.338); 2191 + --tw-prose-invert-headings: #fff; 2192 + --tw-prose-invert-lead: oklch(70.7% 0.022 261.325); 2193 + --tw-prose-invert-links: #fff; 2194 + --tw-prose-invert-bold: #fff; 2195 + --tw-prose-invert-counters: oklch(70.7% 0.022 261.325); 2196 + --tw-prose-invert-bullets: oklch(44.6% 0.03 256.802); 2197 + --tw-prose-invert-hr: oklch(37.3% 0.034 259.733); 2198 + --tw-prose-invert-quotes: oklch(96.7% 0.003 264.542); 2199 + --tw-prose-invert-quote-borders: oklch(37.3% 0.034 259.733); 2200 + --tw-prose-invert-captions: oklch(70.7% 0.022 261.325); 2201 + --tw-prose-invert-kbd: #fff; 2202 + --tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%); 2203 + --tw-prose-invert-code: #fff; 2204 + --tw-prose-invert-pre-code: oklch(87.2% 0.01 258.338); 2205 + --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%); 2206 + --tw-prose-invert-th-borders: oklch(44.6% 0.03 256.802); 2207 + --tw-prose-invert-td-borders: oklch(37.3% 0.034 259.733); 2208 + font-size: 1rem; 2209 + line-height: 1.75; 2210 + :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2211 + margin-top: 0; 2212 + margin-bottom: 0; 2213 + } 2214 + :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2215 + margin-top: 0.5em; 2216 + margin-bottom: 0.5em; 2217 + } 2218 + :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2219 + padding-inline-start: 0.375em; 2220 + } 2221 + :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2222 + padding-inline-start: 0.375em; 2223 + } 2224 + :where(.prose > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2225 + margin-top: 0.75em; 2226 + margin-bottom: 0.75em; 2227 + } 2228 + :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2229 + margin-top: 1.25em; 2230 + } 2231 + :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2232 + margin-bottom: 1.25em; 2233 + } 2234 + :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2235 + margin-top: 1.25em; 2236 + } 2237 + :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2238 + margin-bottom: 1.25em; 2239 + } 2240 + :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2241 + margin-top: 0.75em; 2242 + margin-bottom: 0.75em; 2243 + } 2244 + :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2245 + margin-top: 1.25em; 2246 + margin-bottom: 1.25em; 2247 + } 2248 + :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2249 + margin-top: 0.5em; 2250 + padding-inline-start: 1.625em; 2251 + } 2252 + :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2253 + margin-top: 0; 2254 + } 2255 + :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2256 + margin-top: 0; 2257 + } 2258 + :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2259 + margin-top: 0; 2260 + } 2261 + :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2262 + margin-top: 0; 2263 + } 2264 + :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2265 + padding-inline-start: 0; 2266 + } 2267 + :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2268 + padding-inline-end: 0; 2269 + } 2270 + :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2271 + padding-top: 0.5714286em; 2272 + padding-inline-end: 0.5714286em; 2273 + padding-bottom: 0.5714286em; 2274 + padding-inline-start: 0.5714286em; 2275 + } 2276 + :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2277 + padding-inline-start: 0; 2278 + } 2279 + :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2280 + padding-inline-end: 0; 2281 + } 2282 + :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2283 + margin-top: 2em; 2284 + margin-bottom: 2em; 2285 + } 2286 + :where(.prose > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2287 + margin-top: 0; 2288 + } 2289 + :where(.prose > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2290 + margin-bottom: 0; 2291 + } 2292 + } 2293 + .prose-lg { 2294 + font-size: 1.125rem; 2295 + line-height: 1.7777778; 2296 + :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2297 + margin-top: 1.3333333em; 2298 + margin-bottom: 1.3333333em; 2299 + } 2300 + :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2301 + font-size: 1.2222222em; 2302 + line-height: 1.4545455; 2303 + margin-top: 1.0909091em; 2304 + margin-bottom: 1.0909091em; 2305 + } 2306 + :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2307 + margin-top: 1.6666667em; 2308 + margin-bottom: 1.6666667em; 2309 + padding-inline-start: 1em; 2310 + } 2311 + :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2312 + font-size: 2.6666667em; 2313 + margin-top: 0; 2314 + margin-bottom: 0.8333333em; 2315 + line-height: 1; 2316 + } 2317 + :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2318 + font-size: 1.6666667em; 2319 + margin-top: 1.8666667em; 2320 + margin-bottom: 1.0666667em; 2321 + line-height: 1.3333333; 2322 + } 2323 + :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2324 + font-size: 1.3333333em; 2325 + margin-top: 1.6666667em; 2326 + margin-bottom: 0.6666667em; 2327 + line-height: 1.5; 2328 + } 2329 + :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2330 + margin-top: 1.7777778em; 2331 + margin-bottom: 0.4444444em; 2332 + line-height: 1.5555556; 2333 + } 2334 + :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2335 + margin-top: 1.7777778em; 2336 + margin-bottom: 1.7777778em; 2337 + } 2338 + :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2339 + margin-top: 1.7777778em; 2340 + margin-bottom: 1.7777778em; 2341 + } 2342 + :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2343 + margin-top: 0; 2344 + margin-bottom: 0; 2345 + } 2346 + :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2347 + margin-top: 1.7777778em; 2348 + margin-bottom: 1.7777778em; 2349 + } 2350 + :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2351 + font-size: 0.8888889em; 2352 + border-radius: 0.3125rem; 2353 + padding-top: 0.2222222em; 2354 + padding-inline-end: 0.4444444em; 2355 + padding-bottom: 0.2222222em; 2356 + padding-inline-start: 0.4444444em; 2357 + } 2358 + :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2359 + font-size: 0.8888889em; 2360 + } 2361 + :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2362 + font-size: 0.8666667em; 2363 + } 2364 + :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2365 + font-size: 0.875em; 2366 + } 2367 + :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2368 + font-size: 0.8888889em; 2369 + line-height: 1.75; 2370 + margin-top: 2em; 2371 + margin-bottom: 2em; 2372 + border-radius: 0.375rem; 2373 + padding-top: 1em; 2374 + padding-inline-end: 1.5em; 2375 + padding-bottom: 1em; 2376 + padding-inline-start: 1.5em; 2377 + } 2378 + :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2379 + margin-top: 1.3333333em; 2380 + margin-bottom: 1.3333333em; 2381 + padding-inline-start: 1.5555556em; 2382 + } 2383 + :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2384 + margin-top: 1.3333333em; 2385 + margin-bottom: 1.3333333em; 2386 + padding-inline-start: 1.5555556em; 2387 + } 2388 + :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2389 + margin-top: 0.6666667em; 2390 + margin-bottom: 0.6666667em; 2391 + } 2392 + :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2393 + padding-inline-start: 0.4444444em; 2394 + } 2395 + :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2396 + padding-inline-start: 0.4444444em; 2397 + } 2398 + :where(.prose-lg > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2399 + margin-top: 0.8888889em; 2400 + margin-bottom: 0.8888889em; 2401 + } 2402 + :where(.prose-lg > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2403 + margin-top: 1.3333333em; 2404 + } 2405 + :where(.prose-lg > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2406 + margin-bottom: 1.3333333em; 2407 + } 2408 + :where(.prose-lg > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2409 + margin-top: 1.3333333em; 2410 + } 2411 + :where(.prose-lg > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2412 + margin-bottom: 1.3333333em; 2413 + } 2414 + :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2415 + margin-top: 0.8888889em; 2416 + margin-bottom: 0.8888889em; 2417 + } 2418 + :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2419 + margin-top: 1.3333333em; 2420 + margin-bottom: 1.3333333em; 2421 + } 2422 + :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2423 + margin-top: 1.3333333em; 2424 + } 2425 + :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2426 + margin-top: 0.6666667em; 2427 + padding-inline-start: 1.5555556em; 2428 + } 2429 + :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2430 + margin-top: 3.1111111em; 2431 + margin-bottom: 3.1111111em; 2432 + } 2433 + :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2434 + margin-top: 0; 2435 + } 2436 + :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2437 + margin-top: 0; 2438 + } 2439 + :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2440 + margin-top: 0; 2441 + } 2442 + :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2443 + margin-top: 0; 2444 + } 2445 + :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2446 + font-size: 0.8888889em; 2447 + line-height: 1.5; 2448 + } 2449 + :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2450 + padding-inline-end: 0.75em; 2451 + padding-bottom: 0.75em; 2452 + padding-inline-start: 0.75em; 2453 + } 2454 + :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2455 + padding-inline-start: 0; 2456 + } 2457 + :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2458 + padding-inline-end: 0; 2459 + } 2460 + :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2461 + padding-top: 0.75em; 2462 + padding-inline-end: 0.75em; 2463 + padding-bottom: 0.75em; 2464 + padding-inline-start: 0.75em; 2465 + } 2466 + :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2467 + padding-inline-start: 0; 2468 + } 2469 + :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2470 + padding-inline-end: 0; 2471 + } 2472 + :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2473 + margin-top: 1.7777778em; 2474 + margin-bottom: 1.7777778em; 2475 + } 2476 + :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2477 + margin-top: 0; 2478 + margin-bottom: 0; 2479 + } 2480 + :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2481 + font-size: 0.8888889em; 2482 + line-height: 1.5; 2483 + margin-top: 1em; 2484 + } 2485 + :where(.prose-lg > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2486 + margin-top: 0; 2487 + } 2488 + :where(.prose-lg > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { 2489 + margin-bottom: 0; 2490 + } 2491 + } 2492 + .mt-4 { 2493 + margin-top: calc(var(--spacing) * 4); 2494 + } 2495 + .mt-6 { 2496 + margin-top: calc(var(--spacing) * 6); 2497 + } 2498 + .breadcrumbs { 2499 + @layer daisyui.component { 2500 + max-width: 100%; 2501 + overflow-x: auto; 2502 + padding-block: calc(0.25rem * 2); 2503 + > menu, > ul, > ol { 2504 + display: flex; 2505 + min-height: min-content; 2506 + align-items: center; 2507 + white-space: nowrap; 2508 + > li { 2509 + display: flex; 2510 + align-items: center; 2511 + > * { 2512 + display: flex; 2513 + cursor: pointer; 2514 + align-items: center; 2515 + gap: calc(0.25rem * 2); 2516 + &:hover { 2517 + @media (hover: hover) { 2518 + text-decoration-line: underline; 2519 + } 2520 + } 2521 + &:focus { 2522 + --tw-outline-style: none; 2523 + outline-style: none; 2524 + @media (forced-colors: active) { 2525 + outline: 2px solid transparent; 2526 + outline-offset: 2px; 2527 + } 2528 + } 2529 + &:focus-visible { 2530 + outline: 2px solid currentColor; 2531 + outline-offset: 2px; 2532 + } 2533 + } 2534 + & + *:before { 2535 + content: ""; 2536 + margin-right: calc(0.25rem * 3); 2537 + margin-left: calc(0.25rem * 2); 2538 + display: block; 2539 + height: calc(0.25rem * 1.5); 2540 + width: calc(0.25rem * 1.5); 2541 + opacity: 40%; 2542 + rotate: 45deg; 2543 + border-top: 1px solid; 2544 + border-right: 1px solid; 2545 + background-color: #0000; 2546 + } 2547 + [dir="rtl"] & + *:before { 2548 + rotate: -135deg; 2549 + } 2550 + } 2551 + } 2552 + } 2553 + } 2554 + .fieldset-legend { 2555 + @layer daisyui.component { 2556 + margin-bottom: calc(0.25rem * -1); 2557 + display: flex; 2558 + align-items: center; 2559 + justify-content: space-between; 2560 + gap: calc(0.25rem * 2); 2561 + padding-block: calc(0.25rem * 2); 2562 + color: var(--color-base-content); 2563 + font-weight: 600; 2564 + } 2565 + } 2566 + .mb-4 { 2567 + margin-bottom: calc(var(--spacing) * 4); 2568 + } 2569 + .mb-6 { 2570 + margin-bottom: calc(var(--spacing) * 6); 2571 + } 2572 + .mb-8 { 2573 + margin-bottom: calc(var(--spacing) * 8); 2574 + } 2575 + .status { 2576 + @layer daisyui.component { 2577 + display: inline-block; 2578 + aspect-ratio: 1 / 1; 2579 + width: calc(0.25rem * 2); 2580 + height: calc(0.25rem * 2); 2581 + border-radius: var(--radius-selector); 2582 + background-color: var(--color-base-content); 2583 + @supports (color: color-mix(in lab, red, red)) { 2584 + background-color: color-mix(in oklab, var(--color-base-content) 20%, transparent); 2585 + } 2586 + background-position: center; 2587 + background-repeat: no-repeat; 2588 + vertical-align: middle; 2589 + color: color-mix(in srgb, #000 30%, transparent); 2590 + @supports (color: color-mix(in lab, red, red)) { 2591 + color: color-mix(in oklab, var(--color-black) 30%, transparent); 2592 + } 2593 + background-image: radial-gradient( circle at 35% 30%, oklch(1 0 0 / calc(var(--depth) * 0.5)), #0000 ); 2594 + box-shadow: 0 2px 3px -1px currentColor; 2595 + @supports (color: color-mix(in lab, red, red)) { 2596 + box-shadow: 0 2px 3px -1px color-mix(in oklab, currentColor calc(var(--depth) * 100%), #0000); 2597 + } 2598 + } 2599 + } 2600 + .badge { 2601 + @layer daisyui.component { 2602 + display: inline-flex; 2603 + align-items: center; 2604 + justify-content: center; 2605 + gap: calc(0.25rem * 2); 2606 + border-radius: var(--radius-selector); 2607 + vertical-align: middle; 2608 + color: var(--badge-fg); 2609 + border: var(--border) solid var(--badge-color, var(--color-base-200)); 2610 + font-size: 0.875rem; 2611 + width: fit-content; 2612 + padding-inline: calc(0.25rem * 3 - var(--border)); 2613 + background-size: auto, calc(var(--noise) * 100%); 2614 + background-image: none, var(--fx-noise); 2615 + background-color: var(--badge-bg); 2616 + --badge-bg: var(--badge-color, var(--color-base-100)); 2617 + --badge-fg: var(--color-base-content); 2618 + --size: calc(var(--size-selector, 0.25rem) * 6); 2619 + height: var(--size); 2620 + } 2621 + } 2622 + .navbar-end { 2623 + @layer daisyui.component { 2624 + display: inline-flex; 2625 + align-items: center; 2626 + width: 50%; 2627 + justify-content: flex-end; 2628 + } 2629 + } 2630 + .navbar-start { 2631 + @layer daisyui.component { 2632 + display: inline-flex; 2633 + align-items: center; 2634 + width: 50%; 2635 + justify-content: flex-start; 2636 + } 2637 + } 2638 + .card-body { 2639 + @layer daisyui.component { 2640 + display: flex; 2641 + flex: auto; 2642 + flex-direction: column; 2643 + gap: calc(0.25rem * 2); 2644 + padding: var(--card-p, 1.5rem); 2645 + font-size: var(--card-fs, 0.875rem); 2646 + :where(p) { 2647 + flex-grow: 1; 2648 + } 2649 + } 2650 + } 2651 + .navbar-center { 2652 + @layer daisyui.component { 2653 + display: inline-flex; 2654 + align-items: center; 2655 + flex-shrink: 0; 2656 + } 2657 + } 2658 + .alert { 2659 + border-width: var(--border); 2660 + border-color: var(--alert-border-color, var(--color-base-200)); 2661 + @layer daisyui.component { 2662 + border-style: solid; 2663 + --alert-border-color: var(--color-base-200); 2664 + display: grid; 2665 + align-items: center; 2666 + gap: calc(0.25rem * 4); 2667 + border-radius: var(--radius-box); 2668 + padding-inline: calc(0.25rem * 4); 2669 + padding-block: calc(0.25rem * 3); 2670 + color: var(--color-base-content); 2671 + background-color: var(--alert-color, var(--color-base-200)); 2672 + justify-content: start; 2673 + justify-items: start; 2674 + grid-auto-flow: column; 2675 + grid-template-columns: auto; 2676 + text-align: start; 2677 + font-size: 0.875rem; 2678 + line-height: 1.25rem; 2679 + background-size: auto, calc(var(--noise) * 100%); 2680 + background-image: none, var(--fx-noise); 2681 + box-shadow: 0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * 0.08)) inset, 0 1px #000, 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * 0.08)); 2682 + @supports (color: color-mix(in lab, red, red)) { 2683 + box-shadow: 0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * 0.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) * 0.08)); 2684 + } 2685 + &:has(:nth-child(2)) { 2686 + grid-template-columns: auto minmax(auto, 1fr); 2687 + } 2688 + } 2689 + } 2690 + .fieldset { 2691 + @layer daisyui.component { 2692 + display: grid; 2693 + gap: calc(0.25rem * 1.5); 2694 + padding-block: calc(0.25rem * 1); 2695 + font-size: 0.75rem; 2696 + grid-template-columns: 1fr; 2697 + grid-auto-rows: max-content; 2698 + } 2699 + } 2700 + .card-actions { 2701 + @layer daisyui.component { 2702 + display: flex; 2703 + flex-wrap: wrap; 2704 + align-items: flex-start; 2705 + gap: calc(0.25rem * 2); 2706 + } 2707 + } 2708 + .card-title { 2709 + @layer daisyui.component { 2710 + display: flex; 2711 + align-items: center; 2712 + gap: calc(0.25rem * 2); 2713 + font-size: var(--cardtitle-fs, 1.125rem); 2714 + font-weight: 600; 2715 + } 2716 + } 2717 + .join { 2718 + display: inline-flex; 2719 + align-items: stretch; 2720 + --join-ss: 0; 2721 + --join-se: 0; 2722 + --join-es: 0; 2723 + --join-ee: 0; 2724 + :where(.join-item) { 2725 + border-start-start-radius: var(--join-ss, 0); 2726 + border-start-end-radius: var(--join-se, 0); 2727 + border-end-start-radius: var(--join-es, 0); 2728 + border-end-end-radius: var(--join-ee, 0); 2729 + * { 2730 + --join-ss: var(--radius-field); 2731 + --join-se: var(--radius-field); 2732 + --join-es: var(--radius-field); 2733 + --join-ee: var(--radius-field); 2734 + } 2735 + } 2736 + > .join-item:where(:first-child) { 2737 + --join-ss: var(--radius-field); 2738 + --join-se: 0; 2739 + --join-es: var(--radius-field); 2740 + --join-ee: 0; 2741 + } 2742 + :first-child:not(:last-child) { 2743 + :where(.join-item) { 2744 + --join-ss: var(--radius-field); 2745 + --join-se: 0; 2746 + --join-es: var(--radius-field); 2747 + --join-ee: 0; 2748 + } 2749 + } 2750 + > .join-item:where(:last-child) { 2751 + --join-ss: 0; 2752 + --join-se: var(--radius-field); 2753 + --join-es: 0; 2754 + --join-ee: var(--radius-field); 2755 + } 2756 + :last-child:not(:first-child) { 2757 + :where(.join-item) { 2758 + --join-ss: 0; 2759 + --join-se: var(--radius-field); 2760 + --join-es: 0; 2761 + --join-ee: var(--radius-field); 2762 + } 2763 + } 2764 + > .join-item:where(:only-child) { 2765 + --join-ss: var(--radius-field); 2766 + --join-se: var(--radius-field); 2767 + --join-es: var(--radius-field); 2768 + --join-ee: var(--radius-field); 2769 + } 2770 + :only-child { 2771 + :where(.join-item) { 2772 + --join-ss: var(--radius-field); 2773 + --join-se: var(--radius-field); 2774 + --join-es: var(--radius-field); 2775 + --join-ee: var(--radius-field); 2776 + } 2777 + } 2778 + } 2779 + .prose { 2780 + :root & { 2781 + --tw-prose-body: var(--color-base-content); 2782 + @supports (color: color-mix(in lab, red, red)) { 2783 + --tw-prose-body: color-mix(in oklab, var(--color-base-content) 80%, #0000); 2784 + } 2785 + --tw-prose-headings: var(--color-base-content); 2786 + --tw-prose-lead: var(--color-base-content); 2787 + --tw-prose-links: var(--color-base-content); 2788 + --tw-prose-bold: var(--color-base-content); 2789 + --tw-prose-counters: var(--color-base-content); 2790 + --tw-prose-bullets: var(--color-base-content); 2791 + @supports (color: color-mix(in lab, red, red)) { 2792 + --tw-prose-bullets: color-mix(in oklab, var(--color-base-content) 50%, #0000); 2793 + } 2794 + --tw-prose-hr: var(--color-base-content); 2795 + @supports (color: color-mix(in lab, red, red)) { 2796 + --tw-prose-hr: color-mix(in oklab, var(--color-base-content) 20%, #0000); 2797 + } 2798 + --tw-prose-quotes: var(--color-base-content); 2799 + --tw-prose-quote-borders: var(--color-base-content); 2800 + @supports (color: color-mix(in lab, red, red)) { 2801 + --tw-prose-quote-borders: color-mix(in oklab, var(--color-base-content) 20%, #0000); 2802 + } 2803 + --tw-prose-captions: var(--color-base-content); 2804 + @supports (color: color-mix(in lab, red, red)) { 2805 + --tw-prose-captions: color-mix(in oklab, var(--color-base-content) 50%, #0000); 2806 + } 2807 + --tw-prose-code: var(--color-base-content); 2808 + --tw-prose-pre-code: var(--color-neutral-content); 2809 + --tw-prose-pre-bg: var(--color-neutral); 2810 + --tw-prose-th-borders: var(--color-base-content); 2811 + @supports (color: color-mix(in lab, red, red)) { 2812 + --tw-prose-th-borders: color-mix(in oklab, var(--color-base-content) 50%, #0000); 2813 + } 2814 + --tw-prose-td-borders: var(--color-base-content); 2815 + @supports (color: color-mix(in lab, red, red)) { 2816 + --tw-prose-td-borders: color-mix(in oklab, var(--color-base-content) 20%, #0000); 2817 + } 2818 + --tw-prose-kbd: var(--color-base-content); 2819 + @supports (color: color-mix(in lab, red, red)) { 2820 + --tw-prose-kbd: color-mix(in oklab, var(--color-base-content) 80%, #0000); 2821 + } 2822 + :where(code):not(pre > code) { 2823 + background-color: var(--color-base-200); 2824 + border-radius: var(--radius-selector); 2825 + border: var(--border) solid var(--color-base-300); 2826 + padding-inline: 0.5em; 2827 + padding-block: 0.2em; 2828 + font-weight: inherit; 2829 + &:before, &:after { 2830 + display: none; 2831 + } 2832 + } 2833 + } 2834 + } 2835 + .block { 2836 + display: block; 2837 + } 2838 + .contents { 2839 + display: contents; 2840 + } 2841 + .flex { 2842 + display: flex; 2843 + } 2844 + .grid { 2845 + display: grid; 2846 + } 2847 + .hidden { 2848 + display: none; 2849 + } 2850 + .inline-block { 2851 + display: inline-block; 2852 + } 2853 + .table { 2854 + display: table; 2855 + } 2856 + .h-4 { 2857 + height: calc(var(--spacing) * 4); 2858 + } 2859 + .h-6 { 2860 + height: calc(var(--spacing) * 6); 2861 + } 2862 + .h-24 { 2863 + height: calc(var(--spacing) * 24); 2864 + } 2865 + .min-h-\[60vh\] { 2866 + min-height: 60vh; 2867 + } 2868 + .min-h-screen { 2869 + min-height: 100vh; 2870 + } 2871 + .w-4 { 2872 + width: calc(var(--spacing) * 4); 2873 + } 2874 + .w-6 { 2875 + width: calc(var(--spacing) * 6); 2876 + } 2877 + .w-16 { 2878 + width: calc(var(--spacing) * 16); 2879 + } 2880 + .w-32 { 2881 + width: calc(var(--spacing) * 32); 2882 + } 2883 + .w-36 { 2884 + width: calc(var(--spacing) * 36); 2885 + } 2886 + .w-52 { 2887 + width: calc(var(--spacing) * 52); 2888 + } 2889 + .w-full { 2890 + width: 100%; 2891 + } 2892 + .max-w-5xl { 2893 + max-width: var(--container-5xl); 2894 + } 2895 + .max-w-md { 2896 + max-width: var(--container-md); 2897 + } 2898 + .max-w-none { 2899 + max-width: none; 2900 + } 2901 + .max-w-sm { 2902 + max-width: var(--container-sm); 2903 + } 2904 + .min-w-32 { 2905 + min-width: calc(var(--spacing) * 32); 2906 + } 2907 + .min-w-48 { 2908 + min-width: calc(var(--spacing) * 48); 2909 + } 2910 + .flex-shrink { 2911 + flex-shrink: 1; 2912 + } 2913 + .shrink-0 { 2914 + flex-shrink: 0; 2915 + } 2916 + .flex-grow { 2917 + flex-grow: 1; 2918 + } 2919 + .border-collapse { 2920 + border-collapse: collapse; 2921 + } 2922 + .transform { 2923 + transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); 2924 + } 2925 + .skeleton { 2926 + @layer daisyui.component { 2927 + border-radius: var(--radius-box); 2928 + background-color: var(--color-base-300); 2929 + @media (prefers-reduced-motion: reduce) { 2930 + transition-duration: 15s; 2931 + } 2932 + will-change: background-position; 2933 + background-image: linear-gradient( 105deg, #0000 0% 40%, var(--color-base-100) 50%, #0000 60% 100% ); 2934 + background-size: 200% auto; 2935 + background-position-x: -50%; 2936 + @media (prefers-reduced-motion: no-preference) { 2937 + animation: skeleton 1.8s ease-in-out infinite; 2938 + } 2939 + } 2940 + } 2941 + .link { 2942 + @layer daisyui.component { 2943 + cursor: pointer; 2944 + text-decoration-line: underline; 2945 + &:focus { 2946 + --tw-outline-style: none; 2947 + outline-style: none; 2948 + @media (forced-colors: active) { 2949 + outline: 2px solid transparent; 2950 + outline-offset: 2px; 2951 + } 2952 + } 2953 + &:focus-visible { 2954 + outline: 2px solid currentColor; 2955 + outline-offset: 2px; 2956 + } 2957 + } 2958 + } 2959 + .resize { 2960 + resize: both; 2961 + } 2962 + .grid-cols-2 { 2963 + grid-template-columns: repeat(2, minmax(0, 1fr)); 2964 + } 2965 + .flex-col { 2966 + flex-direction: column; 2967 + } 2968 + .flex-wrap { 2969 + flex-wrap: wrap; 2970 + } 2971 + .justify-start { 2972 + justify-content: flex-start; 2973 + } 2974 + .gap-2 { 2975 + gap: calc(var(--spacing) * 2); 2976 + } 2977 + .gap-4 { 2978 + gap: calc(var(--spacing) * 4); 2979 + } 2980 + .overflow-x-auto { 2981 + overflow-x: auto; 2982 + } 2983 + .border { 2984 + border-style: var(--tw-border-style); 2985 + border-width: 1px; 2986 + } 2987 + .badge-ghost { 2988 + @layer daisyui.modifier { 2989 + border-color: var(--color-base-200); 2990 + background-color: var(--color-base-200); 2991 + color: var(--color-base-content); 2992 + background-image: none; 2993 + } 2994 + } 2995 + .table-zebra { 2996 + @layer daisyui.modifier { 2997 + tbody { 2998 + tr { 2999 + &:where(:nth-child(even)) { 3000 + background-color: var(--color-base-200); 3001 + :where(.table-pin-cols tr th) { 3002 + background-color: var(--color-base-200); 3003 + } 3004 + } 3005 + &.row-hover { 3006 + &, &:where(:nth-child(even)) { 3007 + &:hover { 3008 + @media (hover: hover) { 3009 + background-color: var(--color-base-300); 3010 + } 3011 + } 3012 + } 3013 + } 3014 + } 3015 + } 3016 + } 3017 + } 3018 + .bg-base-100 { 3019 + background-color: var(--color-base-100); 3020 + } 3021 + .mask-repeat { 3022 + mask-repeat: repeat; 3023 + } 3024 + .stroke-current { 3025 + stroke: currentcolor; 3026 + } 3027 + .badge-lg { 3028 + @layer daisyui.modifier { 3029 + --size: calc(var(--size-selector, 0.25rem) * 7); 3030 + font-size: 1rem; 3031 + padding-inline: calc(0.25rem * 3.5 - var(--border)); 3032 + } 3033 + } 3034 + .px-4 { 3035 + padding-inline: calc(var(--spacing) * 4); 3036 + } 3037 + .py-6 { 3038 + padding-block: calc(var(--spacing) * 6); 3039 + } 3040 + .py-8 { 3041 + padding-block: calc(var(--spacing) * 8); 3042 + } 3043 + .py-12 { 3044 + padding-block: calc(var(--spacing) * 12); 3045 + } 3046 + .text-center { 3047 + text-align: center; 3048 + } 3049 + .text-2xl { 3050 + font-size: var(--text-2xl); 3051 + line-height: var(--tw-leading, var(--text-2xl--line-height)); 3052 + } 3053 + .text-3xl { 3054 + font-size: var(--text-3xl); 3055 + line-height: var(--tw-leading, var(--text-3xl--line-height)); 3056 + } 3057 + .text-4xl { 3058 + font-size: var(--text-4xl); 3059 + line-height: var(--tw-leading, var(--text-4xl--line-height)); 3060 + } 3061 + .text-5xl { 3062 + font-size: var(--text-5xl); 3063 + line-height: var(--tw-leading, var(--text-5xl--line-height)); 3064 + } 3065 + .text-9xl { 3066 + font-size: var(--text-9xl); 3067 + line-height: var(--tw-leading, var(--text-9xl--line-height)); 3068 + } 3069 + .text-lg { 3070 + font-size: var(--text-lg); 3071 + line-height: var(--tw-leading, var(--text-lg--line-height)); 3072 + } 3073 + .text-sm { 3074 + font-size: var(--text-sm); 3075 + line-height: var(--tw-leading, var(--text-sm--line-height)); 3076 + } 3077 + .text-xl { 3078 + font-size: var(--text-xl); 3079 + line-height: var(--tw-leading, var(--text-xl--line-height)); 3080 + } 3081 + .text-xs { 3082 + font-size: var(--text-xs); 3083 + line-height: var(--tw-leading, var(--text-xs--line-height)); 3084 + } 3085 + .font-bold { 3086 + --tw-font-weight: var(--font-weight-bold); 3087 + font-weight: var(--font-weight-bold); 3088 + } 3089 + .font-semibold { 3090 + --tw-font-weight: var(--font-weight-semibold); 3091 + font-weight: var(--font-weight-semibold); 3092 + } 3093 + .text-wrap { 3094 + text-wrap: wrap; 3095 + } 3096 + .alert-error { 3097 + @layer daisyui.modifier { 3098 + color: var(--color-error-content); 3099 + --alert-border-color: var(--color-error); 3100 + --alert-color: var(--color-error); 3101 + } 3102 + } 3103 + .alert-info { 3104 + @layer daisyui.modifier { 3105 + color: var(--color-info-content); 3106 + --alert-border-color: var(--color-info); 3107 + --alert-color: var(--color-info); 3108 + } 3109 + } 3110 + .alert-success { 3111 + @layer daisyui.modifier { 3112 + color: var(--color-success-content); 3113 + --alert-border-color: var(--color-success); 3114 + --alert-color: var(--color-success); 3115 + } 3116 + } 3117 + .text-base-content { 3118 + color: var(--color-base-content); 3119 + } 3120 + .text-base-content\/60 { 3121 + color: var(--color-base-content); 3122 + @supports (color: color-mix(in lab, red, red)) { 3123 + color: color-mix(in oklab, var(--color-base-content) 60%, transparent); 3124 + } 3125 + } 3126 + .text-white { 3127 + color: var(--color-white); 3128 + } 3129 + .ordinal { 3130 + --tw-ordinal: ordinal; 3131 + font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,); 3132 + } 3133 + .prose { 3134 + & :where(.btn-link):not(:where([class~="not-prose"], [class~="not-prose"] *)) { 3135 + text-decoration-line: none; 3136 + } 3137 + } 3138 + .underline { 3139 + text-decoration-line: underline; 3140 + } 3141 + .opacity-70 { 3142 + opacity: 70%; 3143 + } 3144 + .shadow-2xl { 3145 + --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25)); 3146 + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); 3147 + } 3148 + .shadow-lg { 3149 + --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); 3150 + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); 3151 + } 3152 + .shadow-sm { 3153 + --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); 3154 + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); 3155 + } 3156 + .shadow-xl { 3157 + --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); 3158 + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); 3159 + } 3160 + .outline { 3161 + outline-style: var(--tw-outline-style); 3162 + outline-width: 1px; 3163 + } 3164 + .btn-ghost { 3165 + @layer daisyui.modifier { 3166 + &:not(.btn-active, :hover, :active:focus, :focus-visible, input:checked:not(.filter .btn)) { 3167 + --btn-shadow: ""; 3168 + --btn-bg: #0000; 3169 + --btn-border: #0000; 3170 + --btn-noise: none; 3171 + &:not(:disabled, [disabled], .btn-disabled) { 3172 + outline-color: currentcolor; 3173 + --btn-fg: var(--btn-color, currentColor); 3174 + } 3175 + } 3176 + @media (hover: none) { 3177 + &:not(.btn-active, :active, :focus-visible, input:checked:not(.filter .btn)):hover { 3178 + outline-color: currentcolor; 3179 + --btn-shadow: ""; 3180 + --btn-bg: #0000; 3181 + --btn-fg: var(--btn-color, currentColor); 3182 + --btn-border: #0000; 3183 + --btn-noise: none; 3184 + } 3185 + } 3186 + } 3187 + } 3188 + .filter { 3189 + 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,); 3190 + } 3191 + .transition { 3192 + 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; 3193 + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); 3194 + transition-duration: var(--tw-duration, var(--default-transition-duration)); 3195 + } 3196 + .transition-transform { 3197 + transition-property: transform, translate, scale, rotate; 3198 + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); 3199 + transition-duration: var(--tw-duration, var(--default-transition-duration)); 3200 + } 3201 + .ease-in-out { 3202 + --tw-ease: var(--ease-in-out); 3203 + transition-timing-function: var(--ease-in-out); 3204 + } 3205 + .btn-soft { 3206 + @layer daisyui.modifier { 3207 + &:not( .btn-active, :hover, :active:focus, :focus-visible, input:checked:not(.filter .btn), :disabled, [disabled], .btn-disabled ) { 3208 + --btn-shadow: ""; 3209 + --btn-fg: var(--btn-color, var(--color-base-content)); 3210 + --btn-bg: var(--btn-color, var(--color-base-content)); 3211 + @supports (color: color-mix(in lab, red, red)) { 3212 + --btn-bg: color-mix( 3213 + in oklab, 3214 + var(--btn-color, var(--color-base-content)) 8%, 3215 + var(--color-base-100) 3216 + ); 3217 + } 3218 + --btn-border: var(--btn-color, var(--color-base-content)); 3219 + @supports (color: color-mix(in lab, red, red)) { 3220 + --btn-border: color-mix( 3221 + in oklab, 3222 + var(--btn-color, var(--color-base-content)) 10%, 3223 + var(--color-base-100) 3224 + ); 3225 + } 3226 + --btn-noise: none; 3227 + } 3228 + @media (hover: none) { 3229 + &:not(.btn-active, :active, :focus-visible, input:checked:not(.filter .btn)):hover { 3230 + --btn-shadow: ""; 3231 + --btn-fg: var(--btn-color, var(--color-base-content)); 3232 + --btn-bg: var(--btn-color, var(--color-base-content)); 3233 + @supports (color: color-mix(in lab, red, red)) { 3234 + --btn-bg: color-mix( 3235 + in oklab, 3236 + var(--btn-color, var(--color-base-content)) 8%, 3237 + var(--color-base-100) 3238 + ); 3239 + } 3240 + --btn-border: var(--btn-color, var(--color-base-content)); 3241 + @supports (color: color-mix(in lab, red, red)) { 3242 + --btn-border: color-mix( 3243 + in oklab, 3244 + var(--btn-color, var(--color-base-content)) 10%, 3245 + var(--color-base-100) 3246 + ); 3247 + } 3248 + --btn-noise: none; 3249 + } 3250 + } 3251 + } 3252 + } 3253 + .btn-lg { 3254 + @layer daisyui.modifier { 3255 + --fontsize: 1.125rem; 3256 + --btn-p: 1.25rem; 3257 + --size: calc(var(--size-field, 0.25rem) * 12); 3258 + } 3259 + } 3260 + .btn-sm { 3261 + @layer daisyui.modifier { 3262 + --fontsize: 0.75rem; 3263 + --btn-p: 0.75rem; 3264 + --size: calc(var(--size-field, 0.25rem) * 8); 3265 + } 3266 + } 3267 + .badge-primary { 3268 + @layer daisyui.modifier { 3269 + --badge-color: var(--color-primary); 3270 + --badge-fg: var(--color-primary-content); 3271 + } 3272 + } 3273 + .badge-success { 3274 + @layer daisyui.modifier { 3275 + --badge-color: var(--color-success); 3276 + --badge-fg: var(--color-success-content); 3277 + } 3278 + } 3279 + .btn-error { 3280 + @layer daisyui.modifier.color { 3281 + --btn-color: var(--color-error); 3282 + --btn-fg: var(--color-error-content); 3283 + } 3284 + } 3285 + .btn-primary { 3286 + @layer daisyui.modifier.color { 3287 + --btn-color: var(--color-primary); 3288 + --btn-fg: var(--color-primary-content); 3289 + } 3290 + } 3291 + .btn-success { 3292 + @layer daisyui.modifier.color { 3293 + --btn-color: var(--color-success); 3294 + --btn-fg: var(--color-success-content); 3295 + } 3296 + } 3297 + .card-border { 3298 + @layer daisyui.modifier { 3299 + border: var(--border) solid var(--color-base-200); 3300 + } 3301 + } 3302 + .hover\:scale-105 { 3303 + &:hover { 3304 + @media (hover: hover) { 3305 + --tw-scale-x: 105%; 3306 + --tw-scale-y: 105%; 3307 + --tw-scale-z: 105%; 3308 + scale: var(--tw-scale-x) var(--tw-scale-y); 3309 + } 3310 + } 3311 + } 3312 + .sm\:grid-cols-3 { 3313 + @media (width >= 40rem) { 3314 + grid-template-columns: repeat(3, minmax(0, 1fr)); 3315 + } 3316 + } 3317 + .md\:grid-cols-4 { 3318 + @media (width >= 48rem) { 3319 + grid-template-columns: repeat(4, minmax(0, 1fr)); 3320 + } 3321 + } 3322 + .lg\:ml-8 { 3323 + @media (width >= 64rem) { 3324 + margin-left: calc(var(--spacing) * 8); 3325 + } 3326 + } 3327 + .lg\:grid-cols-5 { 3328 + @media (width >= 64rem) { 3329 + grid-template-columns: repeat(5, minmax(0, 1fr)); 3330 + } 3331 + } 3332 + .lg\:flex-row-reverse { 3333 + @media (width >= 64rem) { 3334 + flex-direction: row-reverse; 3335 + } 3336 + } 3337 + .lg\:text-left { 3338 + @media (width >= 64rem) { 3339 + text-align: left; 3340 + } 3341 + } 3342 + } 3343 + @layer base { 3344 + body { 3345 + font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"; 3346 + } 3347 + } 3348 + .advent-header { 3349 + box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1); 3350 + } 3351 + .advent-title { 3352 + background: linear-gradient(90deg, #b91c1c 0%, #ef4444 22%, #f59e0b 50%, #22c55e 78%, #065f46 100%); 3353 + -webkit-background-clip: text; 3354 + background-clip: text; 3355 + -webkit-text-fill-color: transparent; 3356 + font-weight: 800; 3357 + letter-spacing: -0.025em; 3358 + } 3359 + @layer base { 3360 + :where(:root),:root:has(input.theme-controller[value=light]:checked),[data-theme=light] { 3361 + color-scheme: light; 3362 + --color-base-100: oklch(100% 0 0); 3363 + --color-base-200: oklch(98% 0 0); 3364 + --color-base-300: oklch(95% 0 0); 3365 + --color-base-content: oklch(21% 0.006 285.885); 3366 + --color-primary: oklch(45% 0.24 277.023); 3367 + --color-primary-content: oklch(93% 0.034 272.788); 3368 + --color-secondary: oklch(65% 0.241 354.308); 3369 + --color-secondary-content: oklch(94% 0.028 342.258); 3370 + --color-accent: oklch(77% 0.152 181.912); 3371 + --color-accent-content: oklch(38% 0.063 188.416); 3372 + --color-neutral: oklch(14% 0.005 285.823); 3373 + --color-neutral-content: oklch(92% 0.004 286.32); 3374 + --color-info: oklch(74% 0.16 232.661); 3375 + --color-info-content: oklch(29% 0.066 243.157); 3376 + --color-success: oklch(76% 0.177 163.223); 3377 + --color-success-content: oklch(37% 0.077 168.94); 3378 + --color-warning: oklch(82% 0.189 84.429); 3379 + --color-warning-content: oklch(41% 0.112 45.904); 3380 + --color-error: oklch(71% 0.194 13.428); 3381 + --color-error-content: oklch(27% 0.105 12.094); 3382 + --radius-selector: 0.5rem; 3383 + --radius-field: 0.25rem; 3384 + --radius-box: 0.5rem; 3385 + --size-selector: 0.25rem; 3386 + --size-field: 0.25rem; 3387 + --border: 1px; 3388 + --depth: 1; 3389 + --noise: 0; 3390 + } 3391 + } 3392 + @layer base { 3393 + @media (prefers-color-scheme: dark) { 3394 + :root:not([data-theme]) { 3395 + color-scheme: dark; 3396 + --color-base-100: oklch(25.33% 0.016 252.42); 3397 + --color-base-200: oklch(23.26% 0.014 253.1); 3398 + --color-base-300: oklch(21.15% 0.012 254.09); 3399 + --color-base-content: oklch(97.807% 0.029 256.847); 3400 + --color-primary: oklch(58% 0.233 277.117); 3401 + --color-primary-content: oklch(96% 0.018 272.314); 3402 + --color-secondary: oklch(65% 0.241 354.308); 3403 + --color-secondary-content: oklch(94% 0.028 342.258); 3404 + --color-accent: oklch(77% 0.152 181.912); 3405 + --color-accent-content: oklch(38% 0.063 188.416); 3406 + --color-neutral: oklch(14% 0.005 285.823); 3407 + --color-neutral-content: oklch(92% 0.004 286.32); 3408 + --color-info: oklch(74% 0.16 232.661); 3409 + --color-info-content: oklch(29% 0.066 243.157); 3410 + --color-success: oklch(76% 0.177 163.223); 3411 + --color-success-content: oklch(37% 0.077 168.94); 3412 + --color-warning: oklch(82% 0.189 84.429); 3413 + --color-warning-content: oklch(41% 0.112 45.904); 3414 + --color-error: oklch(71% 0.194 13.428); 3415 + --color-error-content: oklch(27% 0.105 12.094); 3416 + --radius-selector: 0.5rem; 3417 + --radius-field: 0.25rem; 3418 + --radius-box: 0.5rem; 3419 + --size-selector: 0.25rem; 3420 + --size-field: 0.25rem; 3421 + --border: 1px; 3422 + --depth: 1; 3423 + --noise: 0; 3424 + } 3425 + } 3426 + } 3427 + @layer base { 3428 + :root:has(input.theme-controller[value=light]:checked),[data-theme=light] { 3429 + color-scheme: light; 3430 + --color-base-100: oklch(100% 0 0); 3431 + --color-base-200: oklch(98% 0 0); 3432 + --color-base-300: oklch(95% 0 0); 3433 + --color-base-content: oklch(21% 0.006 285.885); 3434 + --color-primary: oklch(45% 0.24 277.023); 3435 + --color-primary-content: oklch(93% 0.034 272.788); 3436 + --color-secondary: oklch(65% 0.241 354.308); 3437 + --color-secondary-content: oklch(94% 0.028 342.258); 3438 + --color-accent: oklch(77% 0.152 181.912); 3439 + --color-accent-content: oklch(38% 0.063 188.416); 3440 + --color-neutral: oklch(14% 0.005 285.823); 3441 + --color-neutral-content: oklch(92% 0.004 286.32); 3442 + --color-info: oklch(74% 0.16 232.661); 3443 + --color-info-content: oklch(29% 0.066 243.157); 3444 + --color-success: oklch(76% 0.177 163.223); 3445 + --color-success-content: oklch(37% 0.077 168.94); 3446 + --color-warning: oklch(82% 0.189 84.429); 3447 + --color-warning-content: oklch(41% 0.112 45.904); 3448 + --color-error: oklch(71% 0.194 13.428); 3449 + --color-error-content: oklch(27% 0.105 12.094); 3450 + --radius-selector: 0.5rem; 3451 + --radius-field: 0.25rem; 3452 + --radius-box: 0.5rem; 3453 + --size-selector: 0.25rem; 3454 + --size-field: 0.25rem; 3455 + --border: 1px; 3456 + --depth: 1; 3457 + --noise: 0; 3458 + } 3459 + } 3460 + @layer base { 3461 + :root:has(input.theme-controller[value=dark]:checked),[data-theme=dark] { 3462 + color-scheme: dark; 3463 + --color-base-100: oklch(25.33% 0.016 252.42); 3464 + --color-base-200: oklch(23.26% 0.014 253.1); 3465 + --color-base-300: oklch(21.15% 0.012 254.09); 3466 + --color-base-content: oklch(97.807% 0.029 256.847); 3467 + --color-primary: oklch(58% 0.233 277.117); 3468 + --color-primary-content: oklch(96% 0.018 272.314); 3469 + --color-secondary: oklch(65% 0.241 354.308); 3470 + --color-secondary-content: oklch(94% 0.028 342.258); 3471 + --color-accent: oklch(77% 0.152 181.912); 3472 + --color-accent-content: oklch(38% 0.063 188.416); 3473 + --color-neutral: oklch(14% 0.005 285.823); 3474 + --color-neutral-content: oklch(92% 0.004 286.32); 3475 + --color-info: oklch(74% 0.16 232.661); 3476 + --color-info-content: oklch(29% 0.066 243.157); 3477 + --color-success: oklch(76% 0.177 163.223); 3478 + --color-success-content: oklch(37% 0.077 168.94); 3479 + --color-warning: oklch(82% 0.189 84.429); 3480 + --color-warning-content: oklch(41% 0.112 45.904); 3481 + --color-error: oklch(71% 0.194 13.428); 3482 + --color-error-content: oklch(27% 0.105 12.094); 3483 + --radius-selector: 0.5rem; 3484 + --radius-field: 0.25rem; 3485 + --radius-box: 0.5rem; 3486 + --size-selector: 0.25rem; 3487 + --size-field: 0.25rem; 3488 + --border: 1px; 3489 + --depth: 1; 3490 + --noise: 0; 3491 + } 3492 + } 3493 + @layer base { 3494 + :root:has(input.theme-controller[value=forest]:checked),[data-theme=forest] { 3495 + color-scheme: dark; 3496 + --color-base-100: oklch(20.84% 0.008 17.911); 3497 + --color-base-200: oklch(18.522% 0.007 17.911); 3498 + --color-base-300: oklch(16.203% 0.007 17.911); 3499 + --color-base-content: oklch(83.768% 0.001 17.911); 3500 + --color-primary: oklch(68.628% 0.185 148.958); 3501 + --color-primary-content: oklch(0% 0 0); 3502 + --color-secondary: oklch(69.776% 0.135 168.327); 3503 + --color-secondary-content: oklch(13.955% 0.027 168.327); 3504 + --color-accent: oklch(70.628% 0.119 185.713); 3505 + --color-accent-content: oklch(14.125% 0.023 185.713); 3506 + --color-neutral: oklch(30.698% 0.039 171.364); 3507 + --color-neutral-content: oklch(86.139% 0.007 171.364); 3508 + --color-info: oklch(72.06% 0.191 231.6); 3509 + --color-info-content: oklch(0% 0 0); 3510 + --color-success: oklch(64.8% 0.15 160); 3511 + --color-success-content: oklch(0% 0 0); 3512 + --color-warning: oklch(84.71% 0.199 83.87); 3513 + --color-warning-content: oklch(0% 0 0); 3514 + --color-error: oklch(71.76% 0.221 22.18); 3515 + --color-error-content: oklch(0% 0 0); 3516 + --radius-selector: 1rem; 3517 + --radius-field: 2rem; 3518 + --radius-box: 1rem; 3519 + --size-selector: 0.25rem; 3520 + --size-field: 0.25rem; 3521 + --border: 1px; 3522 + --depth: 0; 3523 + --noise: 0; 3524 + } 3525 + } 3526 + @layer base { 3527 + :root { 3528 + --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"); 3529 + } 3530 + } 3531 + @layer base { 3532 + :root { 3533 + scrollbar-color: currentColor #0000; 3534 + @supports (color: color-mix(in lab, red, red)) { 3535 + scrollbar-color: color-mix(in oklch, currentColor 35%, #0000) #0000; 3536 + } 3537 + } 3538 + } 3539 + @layer base { 3540 + @property --radialprogress { 3541 + syntax: "<percentage>"; 3542 + inherits: true; 3543 + initial-value: 0%; 3544 + } 3545 + } 3546 + @layer base { 3547 + :root:not(span) { 3548 + overflow: var(--page-overflow); 3549 + } 3550 + } 3551 + @layer base { 3552 + :root { 3553 + --page-scroll-bg-on: linear-gradient(var(--root-bg), var(--root-bg)) 3554 + var(--root-bg); 3555 + @supports (color: color-mix(in lab, red, red)) { 3556 + --page-scroll-bg-on: linear-gradient(var(--root-bg), var(--root-bg)) 3557 + color-mix(in srgb, var(--root-bg), oklch(0% 0 0) calc(var(--page-has-backdrop, 0) * 40%)); 3558 + } 3559 + --page-scroll-transition-on: background-color 0.3s ease-out; 3560 + transition: var(--page-scroll-transition); 3561 + scrollbar-gutter: var(--page-scroll-gutter, unset); 3562 + scrollbar-gutter: if(style(--page-has-scroll: 1): var(--page-scroll-gutter, unset) ; else: unset); 3563 + } 3564 + :root:root { 3565 + background: var(--page-scroll-bg, var(--root-bg, var(--color-base-100))); 3566 + } 3567 + @keyframes set-page-has-scroll { 3568 + 0%, to { 3569 + --page-has-scroll: 1; 3570 + } 3571 + } 3572 + } 3573 + @layer base { 3574 + :root, [data-theme] { 3575 + background-color: var(--root-bg, var(--color-base-100)); 3576 + color: var(--color-base-content); 3577 + } 3578 + :where(:root, [data-theme]) { 3579 + --root-bg: var(--color-base-100); 3580 + } 3581 + } 3582 + @keyframes rating { 3583 + 0%, 40% { 3584 + scale: 1.1; 3585 + filter: brightness(1.05) contrast(1.05); 3586 + } 3587 + } 3588 + @keyframes dropdown { 3589 + 0% { 3590 + opacity: 0; 3591 + } 3592 + } 3593 + @keyframes radio { 3594 + 0% { 3595 + padding: 5px; 3596 + } 3597 + 50% { 3598 + padding: 3px; 3599 + } 3600 + } 3601 + @keyframes toast { 3602 + 0% { 3603 + scale: 0.9; 3604 + opacity: 0; 3605 + } 3606 + 100% { 3607 + scale: 1; 3608 + opacity: 1; 3609 + } 3610 + } 3611 + @keyframes rotator { 3612 + 89.9999%, 100% { 3613 + --first-item-position: 0 0%; 3614 + } 3615 + 90%, 99.9999% { 3616 + --first-item-position: 0 calc(var(--items) * 100%); 3617 + } 3618 + 100% { 3619 + translate: 0 -100%; 3620 + } 3621 + } 3622 + @keyframes skeleton { 3623 + 0% { 3624 + background-position: 150%; 3625 + } 3626 + 100% { 3627 + background-position: -50%; 3628 + } 3629 + } 3630 + @keyframes progress { 3631 + 50% { 3632 + background-position-x: -115%; 3633 + } 3634 + } 3635 + @property --tw-rotate-x { 3636 + syntax: "*"; 3637 + inherits: false; 3638 + } 3639 + @property --tw-rotate-y { 3640 + syntax: "*"; 3641 + inherits: false; 3642 + } 3643 + @property --tw-rotate-z { 3644 + syntax: "*"; 3645 + inherits: false; 3646 + } 3647 + @property --tw-skew-x { 3648 + syntax: "*"; 3649 + inherits: false; 3650 + } 3651 + @property --tw-skew-y { 3652 + syntax: "*"; 3653 + inherits: false; 3654 + } 3655 + @property --tw-border-style { 3656 + syntax: "*"; 3657 + inherits: false; 3658 + initial-value: solid; 3659 + } 3660 + @property --tw-font-weight { 3661 + syntax: "*"; 3662 + inherits: false; 3663 + } 3664 + @property --tw-ordinal { 3665 + syntax: "*"; 3666 + inherits: false; 3667 + } 3668 + @property --tw-slashed-zero { 3669 + syntax: "*"; 3670 + inherits: false; 3671 + } 3672 + @property --tw-numeric-figure { 3673 + syntax: "*"; 3674 + inherits: false; 3675 + } 3676 + @property --tw-numeric-spacing { 3677 + syntax: "*"; 3678 + inherits: false; 3679 + } 3680 + @property --tw-numeric-fraction { 3681 + syntax: "*"; 3682 + inherits: false; 3683 + } 3684 + @property --tw-shadow { 3685 + syntax: "*"; 3686 + inherits: false; 3687 + initial-value: 0 0 #0000; 3688 + } 3689 + @property --tw-shadow-color { 3690 + syntax: "*"; 3691 + inherits: false; 3692 + } 3693 + @property --tw-shadow-alpha { 3694 + syntax: "<percentage>"; 3695 + inherits: false; 3696 + initial-value: 100%; 3697 + } 3698 + @property --tw-inset-shadow { 3699 + syntax: "*"; 3700 + inherits: false; 3701 + initial-value: 0 0 #0000; 3702 + } 3703 + @property --tw-inset-shadow-color { 3704 + syntax: "*"; 3705 + inherits: false; 3706 + } 3707 + @property --tw-inset-shadow-alpha { 3708 + syntax: "<percentage>"; 3709 + inherits: false; 3710 + initial-value: 100%; 3711 + } 3712 + @property --tw-ring-color { 3713 + syntax: "*"; 3714 + inherits: false; 3715 + } 3716 + @property --tw-ring-shadow { 3717 + syntax: "*"; 3718 + inherits: false; 3719 + initial-value: 0 0 #0000; 3720 + } 3721 + @property --tw-inset-ring-color { 3722 + syntax: "*"; 3723 + inherits: false; 3724 + } 3725 + @property --tw-inset-ring-shadow { 3726 + syntax: "*"; 3727 + inherits: false; 3728 + initial-value: 0 0 #0000; 3729 + } 3730 + @property --tw-ring-inset { 3731 + syntax: "*"; 3732 + inherits: false; 3733 + } 3734 + @property --tw-ring-offset-width { 3735 + syntax: "<length>"; 3736 + inherits: false; 3737 + initial-value: 0px; 3738 + } 3739 + @property --tw-ring-offset-color { 3740 + syntax: "*"; 3741 + inherits: false; 3742 + initial-value: #fff; 3743 + } 3744 + @property --tw-ring-offset-shadow { 3745 + syntax: "*"; 3746 + inherits: false; 3747 + initial-value: 0 0 #0000; 3748 + } 3749 + @property --tw-outline-style { 3750 + syntax: "*"; 3751 + inherits: false; 3752 + initial-value: solid; 3753 + } 3754 + @property --tw-blur { 3755 + syntax: "*"; 3756 + inherits: false; 3757 + } 3758 + @property --tw-brightness { 3759 + syntax: "*"; 3760 + inherits: false; 3761 + } 3762 + @property --tw-contrast { 3763 + syntax: "*"; 3764 + inherits: false; 3765 + } 3766 + @property --tw-grayscale { 3767 + syntax: "*"; 3768 + inherits: false; 3769 + } 3770 + @property --tw-hue-rotate { 3771 + syntax: "*"; 3772 + inherits: false; 3773 + } 3774 + @property --tw-invert { 3775 + syntax: "*"; 3776 + inherits: false; 3777 + } 3778 + @property --tw-opacity { 3779 + syntax: "*"; 3780 + inherits: false; 3781 + } 3782 + @property --tw-saturate { 3783 + syntax: "*"; 3784 + inherits: false; 3785 + } 3786 + @property --tw-sepia { 3787 + syntax: "*"; 3788 + inherits: false; 3789 + } 3790 + @property --tw-drop-shadow { 3791 + syntax: "*"; 3792 + inherits: false; 3793 + } 3794 + @property --tw-drop-shadow-color { 3795 + syntax: "*"; 3796 + inherits: false; 3797 + } 3798 + @property --tw-drop-shadow-alpha { 3799 + syntax: "<percentage>"; 3800 + inherits: false; 3801 + initial-value: 100%; 3802 + } 3803 + @property --tw-drop-shadow-size { 3804 + syntax: "*"; 3805 + inherits: false; 3806 + } 3807 + @property --tw-ease { 3808 + syntax: "*"; 3809 + inherits: false; 3810 + } 3811 + @property --tw-scale-x { 3812 + syntax: "*"; 3813 + inherits: false; 3814 + initial-value: 1; 3815 + } 3816 + @property --tw-scale-y { 3817 + syntax: "*"; 3818 + inherits: false; 3819 + initial-value: 1; 3820 + } 3821 + @property --tw-scale-z { 3822 + syntax: "*"; 3823 + inherits: false; 3824 + initial-value: 1; 3825 + } 3826 + @layer properties { 3827 + @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { 3828 + *, ::before, ::after, ::backdrop { 3829 + --tw-rotate-x: initial; 3830 + --tw-rotate-y: initial; 3831 + --tw-rotate-z: initial; 3832 + --tw-skew-x: initial; 3833 + --tw-skew-y: initial; 3834 + --tw-border-style: solid; 3835 + --tw-font-weight: initial; 3836 + --tw-ordinal: initial; 3837 + --tw-slashed-zero: initial; 3838 + --tw-numeric-figure: initial; 3839 + --tw-numeric-spacing: initial; 3840 + --tw-numeric-fraction: initial; 3841 + --tw-shadow: 0 0 #0000; 3842 + --tw-shadow-color: initial; 3843 + --tw-shadow-alpha: 100%; 3844 + --tw-inset-shadow: 0 0 #0000; 3845 + --tw-inset-shadow-color: initial; 3846 + --tw-inset-shadow-alpha: 100%; 3847 + --tw-ring-color: initial; 3848 + --tw-ring-shadow: 0 0 #0000; 3849 + --tw-inset-ring-color: initial; 3850 + --tw-inset-ring-shadow: 0 0 #0000; 3851 + --tw-ring-inset: initial; 3852 + --tw-ring-offset-width: 0px; 3853 + --tw-ring-offset-color: #fff; 3854 + --tw-ring-offset-shadow: 0 0 #0000; 3855 + --tw-outline-style: solid; 3856 + --tw-blur: initial; 3857 + --tw-brightness: initial; 3858 + --tw-contrast: initial; 3859 + --tw-grayscale: initial; 3860 + --tw-hue-rotate: initial; 3861 + --tw-invert: initial; 3862 + --tw-opacity: initial; 3863 + --tw-saturate: initial; 3864 + --tw-sepia: initial; 3865 + --tw-drop-shadow: initial; 3866 + --tw-drop-shadow-color: initial; 3867 + --tw-drop-shadow-alpha: 100%; 3868 + --tw-drop-shadow-size: initial; 3869 + --tw-ease: initial; 3870 + --tw-scale-x: 1; 3871 + --tw-scale-y: 1; 3872 + --tw-scale-z: 1; 3873 + } 3874 + } 3875 + }
+199
web/src/handlers/leaderboard.rs
··· 1 + use atrium_api::types::string::Did; 2 + use atrium_common::resolver::Resolver; 3 + use axum::{ 4 + extract::{Query, State}, 5 + response::IntoResponse, 6 + }; 7 + use bb8_redis::redis::AsyncCommands; 8 + use shared::HandleResolver; 9 + use sqlx::PgPool; 10 + 11 + use crate::AppState; 12 + use crate::session::AxumSessionStore; 13 + use crate::templates::HtmlTemplate; 14 + use crate::templates::leaderboard::{LeaderboardEntry, LeaderboardQuery, LeaderboardTemplate}; 15 + 16 + const HANDLE_CACHE_PREFIX: &str = "handle_cache:"; 17 + const HANDLE_CACHE_TTL_SECS: u64 = 3600; // 1 hour 18 + 19 + pub async fn leaderboard_handler( 20 + State(app_state): State<AppState>, 21 + session: AxumSessionStore, 22 + Query(query): Query<LeaderboardQuery>, 23 + ) -> impl IntoResponse { 24 + let is_logged_in = session.logged_in(); 25 + let selected_day = query.day.filter(|d| (1..=25).contains(d)); 26 + let selected_part = query.part.unwrap_or(1).clamp(1, 2); 27 + let implemented_days = shared::advent::get_implemented_days(); 28 + 29 + let pool = &app_state.postgres_pool; 30 + 31 + let mut leaderboard = match selected_day { 32 + Some(day) => fetch_leaderboard(pool, day, selected_part).await, 33 + None => vec![], 34 + }; 35 + 36 + // Resolve all DIDs to handles 37 + for entry in &mut leaderboard { 38 + entry.user_handle = resolve_did_to_handle( 39 + &app_state.redis_pool, 40 + &app_state.handle_resolver, 41 + &entry.user_handle, 42 + ) 43 + .await; 44 + } 45 + 46 + HtmlTemplate(LeaderboardTemplate { 47 + title: "at://advent - Leaderboard", 48 + is_logged_in, 49 + implemented_days, 50 + selected_day, 51 + selected_part, 52 + leaderboard, 53 + }) 54 + } 55 + 56 + /// Resolve a DID to a human-readable @handle, cached in Redis for 1 hour. 57 + async fn resolve_did_to_handle( 58 + redis_pool: &bb8::Pool<bb8_redis::RedisConnectionManager>, 59 + handle_resolver: &HandleResolver, 60 + did: &str, 61 + ) -> String { 62 + let cache_key = format!("{}{}", HANDLE_CACHE_PREFIX, did); 63 + 64 + // Check Redis cache first 65 + if let Ok(mut conn) = redis_pool.get().await { 66 + if let Ok(Some(cached)) = conn.get::<_, Option<String>>(&cache_key).await { 67 + return cached; 68 + } 69 + } 70 + 71 + // Resolve via DID document 72 + let handle = match Did::new(did.to_string()) { 73 + Ok(did_obj) => match handle_resolver.resolve(&did_obj).await { 74 + Ok(did_doc) => did_doc 75 + .also_known_as 76 + .as_ref() 77 + .and_then(|aliases| aliases.first()) 78 + .and_then(|alias| alias.strip_prefix("at://")) 79 + .map(|h| format!("@{}", h)) 80 + .unwrap_or_else(|| did.to_string()), 81 + Err(e) => { 82 + log::warn!("Failed to resolve DID {}: {}", did, e); 83 + did.to_string() 84 + } 85 + }, 86 + Err(_) => did.to_string(), 87 + }; 88 + 89 + // Write to Redis with 1 hour TTL 90 + if let Ok(mut conn) = redis_pool.get().await { 91 + if let Err(e) = conn 92 + .set_ex::<_, _, ()>(&cache_key, &handle, HANDLE_CACHE_TTL_SECS) 93 + .await 94 + { 95 + log::warn!("Failed to cache handle for {}: {}", did, e); 96 + } 97 + } 98 + 99 + handle 100 + } 101 + 102 + async fn fetch_leaderboard(pool: &PgPool, day: u8, part: u8) -> Vec<LeaderboardEntry> { 103 + let day_i32 = day as i32; 104 + 105 + let entries = match part { 106 + 1 => { 107 + let rows = sqlx::query!( 108 + r#"SELECT 109 + user_did, 110 + EXTRACT(EPOCH FROM (time_challenge_one_completed - time_started))::BIGINT AS "duration_secs", 111 + time_challenge_one_completed AS "completed_at" 112 + FROM challenges 113 + WHERE day = $1 AND time_challenge_one_completed IS NOT NULL 114 + ORDER BY (time_challenge_one_completed - time_started) ASC 115 + LIMIT 50"#, 116 + day_i32 117 + ) 118 + .fetch_all(pool) 119 + .await; 120 + 121 + match rows { 122 + Ok(rows) => rows 123 + .into_iter() 124 + .enumerate() 125 + .map(|(i, row)| LeaderboardEntry { 126 + rank: i + 1, 127 + user_handle: row.user_did, 128 + completion_duration: format_duration_secs(row.duration_secs), 129 + completed_at: row 130 + .completed_at 131 + .map(|t| t.format("%Y-%m-%d %H:%M:%S UTC").to_string()) 132 + .unwrap_or_default(), 133 + }) 134 + .collect(), 135 + Err(e) => { 136 + log::error!("Failed to fetch leaderboard: {}", e); 137 + vec![] 138 + } 139 + } 140 + } 141 + 2 => { 142 + let rows = sqlx::query!( 143 + r#"SELECT 144 + user_did, 145 + EXTRACT(EPOCH FROM (time_challenge_two_completed - time_started))::BIGINT AS "duration_secs", 146 + time_challenge_two_completed AS "completed_at" 147 + FROM challenges 148 + WHERE day = $1 AND time_challenge_two_completed IS NOT NULL 149 + ORDER BY (time_challenge_two_completed - time_started) ASC 150 + LIMIT 50"#, 151 + day_i32 152 + ) 153 + .fetch_all(pool) 154 + .await; 155 + 156 + match rows { 157 + Ok(rows) => rows 158 + .into_iter() 159 + .enumerate() 160 + .map(|(i, row)| LeaderboardEntry { 161 + rank: i + 1, 162 + user_handle: row.user_did, 163 + completion_duration: format_duration_secs(row.duration_secs), 164 + completed_at: row 165 + .completed_at 166 + .map(|t| t.format("%Y-%m-%d %H:%M:%S UTC").to_string()) 167 + .unwrap_or_default(), 168 + }) 169 + .collect(), 170 + Err(e) => { 171 + log::error!("Failed to fetch leaderboard: {}", e); 172 + vec![] 173 + } 174 + } 175 + } 176 + _ => vec![], 177 + }; 178 + 179 + entries 180 + } 181 + 182 + fn format_duration_secs(secs: Option<i64>) -> String { 183 + let total_secs = match secs { 184 + Some(s) if s >= 0 => s, 185 + _ => return "N/A".to_string(), 186 + }; 187 + 188 + let hours = total_secs / 3600; 189 + let minutes = (total_secs % 3600) / 60; 190 + let seconds = total_secs % 60; 191 + 192 + if hours > 0 { 193 + format!("{}h {}m {}s", hours, minutes, seconds) 194 + } else if minutes > 0 { 195 + format!("{}m {}s", minutes, seconds) 196 + } else { 197 + format!("{}s", seconds) 198 + } 199 + }
+1
web/src/handlers/mod.rs
··· 1 1 pub mod auth; 2 2 pub mod day; 3 + pub mod leaderboard; 3 4 pub mod oauth_metadata;
+2 -1
web/src/main.rs
··· 65 65 struct Assets; 66 66 67 67 #[derive(Clone)] 68 - struct AppState { 68 + pub(crate) struct AppState { 69 69 postgres_pool: PgPool, 70 70 redis_pool: bb8::Pool<RedisConnectionManager>, 71 71 oauth_client: OAuthClientType, ··· 294 294 "/day/5/{user_did}", 295 295 get(handlers::day::day_five_create_record_handler), 296 296 ) 297 + .route("/leaderboard", get(handlers::leaderboard::leaderboard_handler)) 297 298 .route("/login", get(handlers::auth::login_page_handler)) 298 299 .route("/logout", get(handlers::auth::logout_handler)) 299 300 .route("/redirect/login", get(handlers::auth::login_handle))
+39
web/src/templates/leaderboard.rs
··· 1 + use askama::Template; 2 + 3 + /// One row in the ranked leaderboard for a specific day+part 4 + pub struct LeaderboardEntry { 5 + pub rank: usize, 6 + pub user_handle: String, 7 + /// Duration from time_started to completion, formatted as "Xh Ym Zs" 8 + pub completion_duration: String, 9 + /// The raw completion timestamp, formatted for display 10 + pub completed_at: String, 11 + } 12 + 13 + /// Query params deserialized from the URL 14 + #[derive(Debug, serde::Deserialize)] 15 + pub struct LeaderboardQuery { 16 + pub day: Option<u8>, 17 + pub part: Option<u8>, 18 + } 19 + 20 + #[derive(Template)] 21 + #[template(path = "leaderboard.askama.html")] 22 + pub struct LeaderboardTemplate { 23 + pub title: &'static str, 24 + pub is_logged_in: bool, 25 + /// Days that have been implemented and can be selected 26 + pub implemented_days: Vec<u8>, 27 + /// The currently selected day (None = no leaderboard shown) 28 + pub selected_day: Option<u8>, 29 + /// The currently selected part (1 or 2), defaults to 1 30 + pub selected_part: u8, 31 + /// Ranked leaderboard entries for the selected day+part 32 + pub leaderboard: Vec<LeaderboardEntry>, 33 + } 34 + 35 + impl LeaderboardTemplate { 36 + fn is_selected_day(&self, day: &u8) -> bool { 37 + self.selected_day == Some(*day) 38 + } 39 + }
+1
web/src/templates/mod.rs
··· 5 5 pub mod day; 6 6 pub mod error; 7 7 pub mod home; 8 + pub mod leaderboard; 8 9 pub mod login; 9 10 10 11 pub struct HtmlTemplate<T>(pub T);
+3
web/templates/layout.askama.html
··· 12 12 <div class="navbar-start"> 13 13 <a href="/" class="text-3xl font-bold advent-title">at://advent</a> 14 14 </div> 15 + <div class="navbar-center"> 16 + <a href="/leaderboard" class="btn btn-ghost btn-sm">Leaderboard</a> 17 + </div> 15 18 <div class="navbar-end"> 16 19 {% if is_logged_in %} 17 20 <a href="/logout" class="btn btn-ghost btn-sm">Logout</a>
+121
web/templates/leaderboard.askama.html
··· 1 + {% extends "layout.askama.html" %} 2 + 3 + {% block content %} 4 + <div class="mb-6"> 5 + <div class="breadcrumbs text-sm"> 6 + <ul> 7 + <li><a href="/">Home</a></li> 8 + <li>Leaderboard</li> 9 + </ul> 10 + </div> 11 + <h2 class="text-4xl font-bold">Leaderboard</h2> 12 + </div> 13 + 14 + <div class="card bg-base-100 shadow-sm card-border mb-6"> 15 + <div class="card-body"> 16 + <h3 class="card-title text-lg">Select Day</h3> 17 + <div class="flex flex-wrap gap-2"> 18 + {% for d in implemented_days %} 19 + {% if self.is_selected_day(d) %} 20 + <a href="/leaderboard?day={{ d }}&part={{ selected_part }}" 21 + class="btn btn-sm btn-primary"> 22 + Day {{ d }} 23 + </a> 24 + {% else %} 25 + <a href="/leaderboard?day={{ d }}&part={{ selected_part }}" 26 + class="btn btn-sm btn-soft"> 27 + Day {{ d }} 28 + </a> 29 + {% endif %} 30 + {% endfor %} 31 + </div> 32 + 33 + {% match selected_day %} 34 + {% when Some with (day) %} 35 + <div class="divider"></div> 36 + <h3 class="card-title text-lg">Select Part</h3> 37 + <div class="join"> 38 + {% if selected_part == 1 %} 39 + <a href="/leaderboard?day={{ day }}&part=1" 40 + class="btn btn-sm join-item btn-primary"> 41 + Part 1 42 + </a> 43 + <a href="/leaderboard?day={{ day }}&part=2" 44 + class="btn btn-sm join-item btn-soft"> 45 + Part 2 46 + </a> 47 + {% else %} 48 + <a href="/leaderboard?day={{ day }}&part=1" 49 + class="btn btn-sm join-item btn-soft"> 50 + Part 1 51 + </a> 52 + <a href="/leaderboard?day={{ day }}&part=2" 53 + class="btn btn-sm join-item btn-primary"> 54 + Part 2 55 + </a> 56 + {% endif %} 57 + </div> 58 + {% when None %} 59 + {% endmatch %} 60 + </div> 61 + </div> 62 + 63 + {% match selected_day %} 64 + {% when Some with (day) %} 65 + <div class="card bg-base-100 shadow-sm card-border"> 66 + <div class="card-body"> 67 + <h3 class="card-title text-lg"> 68 + Day {{ day }} — Part {{ selected_part }} Rankings 69 + </h3> 70 + {% if leaderboard.is_empty() %} 71 + <div class="alert alert-info"> 72 + <span>No completions yet for this day and part.</span> 73 + </div> 74 + {% else %} 75 + <div class="overflow-x-auto"> 76 + <table class="table table-zebra"> 77 + <thead> 78 + <tr> 79 + <th class="w-16">Rank</th> 80 + <th class="w-32">User</th> 81 + <th class="w-36">Time</th> 82 + <th class="w-52">Completed At</th> 83 + </tr> 84 + </thead> 85 + <tbody> 86 + {% for entry in leaderboard %} 87 + <tr> 88 + <td class="text-center"> 89 + {% if entry.rank == 1 %} 90 + <span class="text-xl">&#x1F947;</span> 91 + {% else if entry.rank == 2 %} 92 + <span class="text-xl">&#x1F948;</span> 93 + {% else if entry.rank == 3 %} 94 + <span class="text-xl">&#x1F949;</span> 95 + {% else %} 96 + {{ entry.rank }} 97 + {% endif %} 98 + </td> 99 + <td> 100 + <span class="font-semibold">{{ entry.user_handle }}</span> 101 + </td> 102 + <td> 103 + <span class="badge badge-ghost">{{ entry.completion_duration }}</span> 104 + </td> 105 + <td class="text-sm opacity-70">{{ entry.completed_at }}</td> 106 + </tr> 107 + {% endfor %} 108 + </tbody> 109 + </table> 110 + </div> 111 + {% endif %} 112 + </div> 113 + </div> 114 + {% when None %} 115 + <div class="card bg-base-100 shadow-sm card-border"> 116 + <div class="card-body text-center py-12"> 117 + <p class="text-base-content/60">Select a day above to view the leaderboard.</p> 118 + </div> 119 + </div> 120 + {% endmatch %} 121 + {% endblock %}