/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */ @layer properties; @layer theme, base, components, utilities; @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; --spacing: 0.25rem; --container-2xl: 42rem; --text-xs: 0.75rem; --text-xs--line-height: calc(1 / 0.75); --text-sm: 0.875rem; --text-sm--line-height: calc(1.25 / 0.875); --text-lg: 1.125rem; --text-lg--line-height: calc(1.75 / 1.125); --text-xl: 1.25rem; --text-xl--line-height: calc(1.75 / 1.25); --text-2xl: 1.5rem; --text-2xl--line-height: calc(2 / 1.5); --font-weight-bold: 700; --default-font-family: var(--font-sans); --default-mono-font-family: var(--font-mono); } } @layer base { *, ::after, ::before, ::backdrop, ::file-selector-button { box-sizing: border-box; margin: 0; padding: 0; border: 0 solid; } html, :host { line-height: 1.5; -webkit-text-size-adjust: 100%; tab-size: 4; 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; 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 { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.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 { display: block; vertical-align: middle; } img, video { max-width: 100%; height: auto; } button, input, select, optgroup, textarea, ::file-selector-button { font: inherit; font-feature-settings: inherit; font-variation-settings: inherit; letter-spacing: inherit; color: inherit; border-radius: 0; background-color: transparent; opacity: 1; } :where(select:is([multiple], [size])) optgroup { font-weight: bolder; } :where(select:is([multiple], [size])) optgroup option { padding-inline-start: 20px; } ::file-selector-button { margin-inline-end: 4px; } ::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)) { color: color-mix(in oklab, currentcolor 50%, transparent); } } } textarea { resize: vertical; } ::-webkit-search-decoration { -webkit-appearance: none; } ::-webkit-date-and-time-value { min-height: 1lh; text-align: inherit; } ::-webkit-datetime-edit { display: inline-flex; } ::-webkit-datetime-edit-fields-wrapper { padding: 0; } ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-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 { padding-block: 0; } :-moz-ui-invalid { box-shadow: none; } button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button { appearance: button; } ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { height: auto; } [hidden]:where(:not([hidden="until-found"])) { display: none !important; } } @layer utilities { .modal { pointer-events: none; visibility: hidden; position: fixed; inset: calc(0.25rem * 0); margin: calc(0.25rem * 0); display: grid; height: 100%; max-height: none; width: 100%; max-width: none; align-items: center; justify-items: center; background-color: transparent; padding: calc(0.25rem * 0); color: inherit; overflow-x: hidden; transition: translate 0.3s ease-out, visibility 0.3s allow-discrete, background-color 0.3s ease-out, opacity 0.1s ease-out; overflow-y: hidden; overscroll-behavior: contain; z-index: 999; &::backdrop { display: none; } &.modal-open, &[open], &:target { pointer-events: auto; visibility: visible; opacity: 100%; background-color: oklch(0% 0 0/ 0.4); .modal-box { translate: 0 0; scale: 1; opacity: 1; } } @starting-style { &.modal-open, &[open], &:target { visibility: hidden; opacity: 0%; } } } .menu { display: flex; width: fit-content; flex-direction: column; flex-wrap: wrap; padding: calc(0.25rem * 2); --menu-active-fg: var(--color-neutral-content); --menu-active-bg: var(--color-neutral); font-size: 0.875rem; :where(li ul) { position: relative; margin-inline-start: calc(0.25rem * 4); padding-inline-start: calc(0.25rem * 2); white-space: nowrap; &:before { position: absolute; inset-inline-start: calc(0.25rem * 0); top: calc(0.25rem * 3); bottom: calc(0.25rem * 3); background-color: var(--color-base-content); opacity: 10%; width: var(--border); content: ""; } } :where(li > .menu-dropdown:not(.menu-dropdown-show)) { display: none; } :where(li:not(.menu-title) > *:not(ul, details, .menu-title, .btn)), :where(li:not(.menu-title) > details > summary:not(.menu-title)) { display: grid; grid-auto-flow: column; align-content: flex-start; align-items: center; gap: calc(0.25rem * 2); border-radius: var(--radius-field); padding-inline: calc(0.25rem * 3); padding-block: calc(0.25rem * 1.5); text-align: start; transition-property: color, background-color, box-shadow; transition-duration: 0.2s; transition-timing-function: cubic-bezier(0, 0, 0.2, 1); grid-auto-columns: minmax(auto, max-content) auto max-content; text-wrap: balance; user-select: none; } :where(li > details > summary) { --tw-outline-style: none; outline-style: none; @media (forced-colors: active) { outline: 2px solid transparent; outline-offset: 2px; } &::-webkit-details-marker { display: none; } } :where(li > details > summary), :where(li > .menu-dropdown-toggle) { &:after { justify-self: flex-end; display: block; height: 0.375rem; width: 0.375rem; rotate: -135deg; translate: 0 -1px; transition-property: rotate, translate; transition-duration: 0.2s; content: ""; transform-origin: 50% 50%; box-shadow: 2px 2px inset; pointer-events: none; } } :where(li > details[open] > summary):after, :where(li > .menu-dropdown-toggle.menu-dropdown-show):after { rotate: 45deg; translate: 0 1px; } :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) { &.menu-focus, &:focus-visible { cursor: pointer; background-color: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); } color: var(--color-base-content); --tw-outline-style: none; outline-style: none; @media (forced-colors: active) { outline: 2px solid transparent; outline-offset: 2px; } } } :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 ) { cursor: pointer; background-color: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); } --tw-outline-style: none; outline-style: none; @media (forced-colors: active) { outline: 2px solid transparent; outline-offset: 2px; } box-shadow: 0 1px oklch(0% 0 0 / 0.01) inset, 0 -1px oklch(100% 0 0 / 0.01) inset; } :where(li:empty) { background-color: var(--color-base-content); opacity: 10%; margin: 0.5rem 1rem; height: 1px; } :where(li) { position: relative; display: flex; flex-shrink: 0; flex-direction: column; flex-wrap: wrap; align-items: stretch; .badge { justify-self: flex-end; } & > *:not(ul, .menu-title, details, .btn):active, & > *:not(ul, .menu-title, details, .btn).menu-active, & > details > summary:active { --tw-outline-style: none; outline-style: none; @media (forced-colors: active) { outline: 2px solid transparent; outline-offset: 2px; } color: var(--menu-active-fg); background-color: var(--menu-active-bg); background-size: auto, calc(var(--noise) * 100%); background-image: none, var(--fx-noise); &:not(&:active) { box-shadow: 0 2px calc(var(--depth) * 3px) -2px var(--menu-active-bg); } } &.menu-disabled { pointer-events: none; color: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { color: color-mix(in oklab, var(--color-base-content) 20%, transparent); } } } .dropdown:focus-within { .menu-dropdown-toggle:after { rotate: 45deg; translate: 0 1px; } } .dropdown-content { margin-top: calc(0.25rem * 2); padding: calc(0.25rem * 2); &:before { display: none; } } } .btn { :where(&) { width: unset; } display: inline-flex; flex-shrink: 0; cursor: pointer; flex-wrap: nowrap; align-items: center; justify-content: center; gap: calc(0.25rem * 1.5); text-align: center; vertical-align: middle; outline-offset: 2px; 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, 0.875rem); font-weight: 600; outline-color: var(--btn-color, var(--color-base-content)); transition-property: color, background-color, border-color, box-shadow; transition-timing-function: cubic-bezier(0, 0, 0.2, 1); transition-duration: 0.2s; border-start-start-radius: var(--join-ss, var(--radius-field)); border-start-end-radius: var(--join-se, var(--radius-field)); border-end-start-radius: var(--join-es, var(--radius-field)); border-end-end-radius: var(--join-ee, var(--radius-field)); 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 0.5px oklch(100% 0 0 / calc(var(--depth) * 0.15)); touch-action: manipulation; box-shadow: 0 0.5px 0 0.5px oklch(100% 0 0 / calc(var(--depth) * 6%)) inset, var(--btn-shadow); --size: calc(var(--size-field, 0.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); @supports (color: color-mix(in lab, red, red)) { --btn-border: color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%)); } --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-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-noise: var(--fx-noise); .prose & { text-decoration-line: none; } @media (hover: hover) { &:hover { --btn-bg: var(--btn-color, var(--color-base-200)); @supports (color: color-mix(in lab, red, red)) { --btn-bg: color-mix(in oklab, var(--btn-color, var(--color-base-200)), #000 7%); } } } &:focus-visible { outline-width: 2px; outline-style: solid; isolation: isolate; } &:active:not(.btn-active) { translate: 0 0.5px; --btn-bg: var(--btn-color, var(--color-base-200)); @supports (color: color-mix(in lab, red, red)) { --btn-bg: color-mix(in oklab, var(--btn-color, var(--color-base-200)), #000 5%); } --btn-border: var(--btn-color, var(--color-base-200)); @supports (color: color-mix(in lab, red, red)) { --btn-border: color-mix(in oklab, var(--btn-color, var(--color-base-200)), #000 7%); } --btn-shadow: 0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0); } &:is(:disabled, [disabled], .btn-disabled) { &:not(.btn-link, .btn-ghost) { background-color: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); } box-shadow: none; } pointer-events: none; --btn-border: #0000; --btn-noise: none; --btn-fg: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { --btn-fg: color-mix(in oklch, var(--color-base-content) 20%, #0000); } @media (hover: hover) { &:hover { pointer-events: none; background-color: var(--color-neutral); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-neutral) 20%, transparent); } --btn-border: #0000; --btn-fg: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { --btn-fg: color-mix(in oklch, var(--color-base-content) 20%, #0000); } } } } &:is(input[type="checkbox"], input[type="radio"]) { appearance: none; &::after { content: attr(aria-label); } } &:where(input:checked:not(.filter .btn)) { --btn-color: var(--color-primary); --btn-fg: var(--color-primary-content); isolation: isolate; } } .list { display: flex; flex-direction: column; font-size: 0.875rem; :where(.list-row) { --list-grid-cols: minmax(0, auto) 1fr; position: relative; display: grid; grid-auto-flow: column; gap: calc(0.25rem * 4); border-radius: var(--radius-box); padding: calc(0.25rem * 4); word-break: break-word; grid-template-columns: var(--list-grid-cols); &:has(.list-col-grow:nth-child(1)) { --list-grid-cols: 1fr; } &:has(.list-col-grow:nth-child(2)) { --list-grid-cols: minmax(0, auto) 1fr; } &:has(.list-col-grow:nth-child(3)) { --list-grid-cols: minmax(0, auto) minmax(0, auto) 1fr; } &:has(.list-col-grow:nth-child(4)) { --list-grid-cols: minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr; } &:has(.list-col-grow:nth-child(5)) { --list-grid-cols: minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr; } &:has(.list-col-grow:nth-child(6)) { --list-grid-cols: minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr; } :not(.list-col-wrap) { grid-row-start: 1; } } & > :not(:last-child) { &.list-row, .list-row { &:after { content: ""; border-bottom: var(--border) solid; inset-inline: var(--radius-box); position: absolute; bottom: calc(0.25rem * 0); border-color: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { border-color: color-mix(in oklab, var(--color-base-content) 5%, transparent); } } } } } .input { cursor: text; border: var(--border) solid #0000; position: relative; display: inline-flex; flex-shrink: 1; appearance: none; align-items: center; gap: calc(0.25rem * 2); background-color: var(--color-base-100); padding-inline: calc(0.25rem * 3); vertical-align: middle; white-space: nowrap; width: clamp(3rem, 20rem, 100%); height: var(--size); font-size: 0.875rem; touch-action: manipulation; border-start-start-radius: var(--join-ss, var(--radius-field)); border-start-end-radius: var(--join-se, var(--radius-field)); border-end-start-radius: var(--join-es, var(--radius-field)); border-end-end-radius: var(--join-ee, var(--radius-field)); border-color: var(--input-color); box-shadow: 0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; @supports (color: color-mix(in lab, red, red)) { 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; } --size: calc(var(--size-field, 0.25rem) * 10); --input-color: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000); } &:where(input) { display: inline-flex; } :where(input) { display: inline-flex; height: 100%; width: 100%; appearance: none; background-color: transparent; border: none; &:focus, &:focus-within { --tw-outline-style: none; outline-style: none; @media (forced-colors: active) { outline: 2px solid transparent; outline-offset: 2px; } } } :where(input[type="url"]), :where(input[type="email"]) { direction: ltr; } :where(input[type="date"]) { display: inline-block; } &:focus, &:focus-within { --input-color: var(--color-base-content); box-shadow: 0 1px var(--input-color); @supports (color: color-mix(in lab, red, red)) { box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000); } outline: 2px solid var(--input-color); outline-offset: 2px; isolation: isolate; z-index: 1; } &:has(> input[disabled]), &:is(:disabled, [disabled]) { cursor: not-allowed; border-color: var(--color-base-200); background-color: var(--color-base-200); color: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { color: color-mix(in oklab, var(--color-base-content) 40%, transparent); } &::placeholder { color: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { color: color-mix(in oklab, var(--color-base-content) 20%, transparent); } } box-shadow: none; } &:has(> input[disabled]) > input[disabled] { cursor: not-allowed; } &::-webkit-date-and-time-value { text-align: inherit; } &[type="number"] { &::-webkit-inner-spin-button { margin-block: calc(0.25rem * -3); margin-inline-end: calc(0.25rem * -3); } } &::-webkit-calendar-picker-indicator { position: absolute; inset-inline-end: 0.75em; } } .select { border: var(--border) solid #0000; position: relative; display: inline-flex; flex-shrink: 1; appearance: none; align-items: center; gap: calc(0.25rem * 1.5); background-color: var(--color-base-100); padding-inline-start: calc(0.25rem * 4); padding-inline-end: calc(0.25rem * 7); vertical-align: middle; width: clamp(3rem, 20rem, 100%); height: var(--size); font-size: 0.875rem; touch-action: manipulation; border-start-start-radius: var(--join-ss, var(--radius-field)); border-start-end-radius: var(--join-se, var(--radius-field)); border-end-start-radius: var(--join-es, var(--radius-field)); border-end-end-radius: var(--join-ee, var(--radius-field)); background-image: linear-gradient(45deg, #0000 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, #0000 50%); background-position: calc(100% - 20px) calc(1px + 50%), calc(100% - 16.1px) calc(1px + 50%); background-size: 4px 4px, 4px 4px; background-repeat: no-repeat; text-overflow: ellipsis; box-shadow: 0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; @supports (color: color-mix(in lab, red, red)) { 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; } border-color: var(--input-color); --input-color: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000); } --size: calc(var(--size-field, 0.25rem) * 10); [dir="rtl"] & { background-position: calc(0% + 12px) calc(1px + 50%), calc(0% + 16px) calc(1px + 50%); } select { margin-inline-start: calc(0.25rem * -4); margin-inline-end: calc(0.25rem * -7); width: calc(100% + 2.75rem); appearance: none; padding-inline-start: calc(0.25rem * 4); padding-inline-end: calc(0.25rem * 7); height: calc(100% - 2px); background: inherit; border-radius: inherit; border-style: none; &:focus, &:focus-within { --tw-outline-style: none; outline-style: none; @media (forced-colors: active) { outline: 2px solid transparent; outline-offset: 2px; } } &:not(:last-child) { margin-inline-end: calc(0.25rem * -5.5); background-image: none; } } &:focus, &:focus-within { --input-color: var(--color-base-content); box-shadow: 0 1px var(--input-color); @supports (color: color-mix(in lab, red, red)) { box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000); } outline: 2px solid var(--input-color); outline-offset: 2px; isolation: isolate; z-index: 1; } &:has(> select[disabled]), &:is(:disabled, [disabled]) { cursor: not-allowed; border-color: var(--color-base-200); background-color: var(--color-base-200); color: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { color: color-mix(in oklab, var(--color-base-content) 40%, transparent); } &::placeholder { color: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { color: color-mix(in oklab, var(--color-base-content) 20%, transparent); } } } &:has(> select[disabled]) > select[disabled] { cursor: not-allowed; } } .checkbox { border: var(--border) solid var(--input-color, var(--color-base-content)); @supports (color: color-mix(in lab, red, red)) { border: var(--border) solid var(--input-color, color-mix(in oklab, var(--color-base-content) 20%, #0000)); } position: relative; display: inline-block; flex-shrink: 0; cursor: pointer; appearance: none; border-radius: var(--radius-selector); padding: calc(0.25rem * 1); vertical-align: middle; color: var(--color-base-content); box-shadow: 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 0 #0000 inset, 0 0 #0000; transition: background-color 0.2s, box-shadow 0.2s; --size: calc(var(--size-selector, 0.25rem) * 6); width: var(--size); height: var(--size); background-size: auto, calc(var(--noise) * 100%); background-image: none, var(--fx-noise); &:before { --tw-content: ""; content: var(--tw-content); display: block; width: 100%; height: 100%; rotate: 45deg; background-color: currentColor; opacity: 0%; transition: clip-path 0.3s, opacity 0.1s, rotate 0.3s, translate 0.3s; transition-delay: 0.1s; clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 80%, 70% 80%, 70% 100%); box-shadow: 0px 3px 0 0px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; font-size: 1rem; line-height: 0.75; } &:focus-visible { outline: 2px solid var(--input-color, currentColor); outline-offset: 2px; } &:checked, &[aria-checked="true"] { background-color: var(--input-color, #0000); box-shadow: 0 0 #0000 inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1)); &:before { clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 0%, 70% 0%, 70% 100%); opacity: 100%; } @media (forced-colors: active) { &:before { rotate: 0deg; background-color: transparent; --tw-content: "✔︎"; clip-path: none; } } @media print { &:before { rotate: 0deg; background-color: transparent; --tw-content: "✔︎"; clip-path: none; } } } &:indeterminate { &:before { rotate: 0deg; opacity: 100%; translate: 0 -35%; clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 80%, 80% 80%, 80% 100%); } } &:disabled { cursor: not-allowed; opacity: 20%; } } .textarea { border: var(--border) solid #0000; min-height: calc(0.25rem * 20); flex-shrink: 1; appearance: none; border-radius: var(--radius-field); background-color: var(--color-base-100); padding-block: calc(0.25rem * 2); vertical-align: middle; width: clamp(3rem, 20rem, 100%); padding-inline-start: 0.75rem; padding-inline-end: 0.75rem; font-size: 0.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) * 0.1)) inset; @supports (color: color-mix(in lab, red, red)) { 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; } --input-color: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000); } textarea { appearance: none; background-color: transparent; border: none; &:focus, &:focus-within { --tw-outline-style: none; outline-style: none; @media (forced-colors: active) { outline: 2px solid transparent; outline-offset: 2px; } } } &:focus, &:focus-within { --input-color: var(--color-base-content); box-shadow: 0 1px var(--input-color); @supports (color: color-mix(in lab, red, red)) { box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000); } outline: 2px solid var(--input-color); outline-offset: 2px; isolation: isolate; } &:has(> textarea[disabled]), &:is(:disabled, [disabled]) { cursor: not-allowed; border-color: var(--color-base-200); background-color: var(--color-base-200); color: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { color: color-mix(in oklab, var(--color-base-content) 40%, transparent); } &::placeholder { color: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { color: color-mix(in oklab, var(--color-base-content) 20%, transparent); } } box-shadow: none; } &:has(> textarea[disabled]) > textarea[disabled] { cursor: not-allowed; } } .modal-box { grid-column-start: 1; grid-row-start: 1; max-height: 100vh; width: calc(11/12 * 100%); max-width: 32rem; background-color: var(--color-base-100); padding: calc(0.25rem * 6); transition: translate 0.3s ease-out, scale 0.3s ease-out, opacity 0.2s ease-out 0.05s, box-shadow 0.3s ease-out; border-top-left-radius: var(--modal-tl, var(--radius-box)); border-top-right-radius: var(--modal-tr, var(--radius-box)); border-bottom-left-radius: var(--modal-bl, var(--radius-box)); border-bottom-right-radius: var(--modal-br, var(--radius-box)); scale: 95%; opacity: 0; box-shadow: oklch(0% 0 0/ 0.25) 0px 25px 50px -12px; overflow-y: auto; overscroll-behavior: contain; } .input-sm { --size: calc(var(--size-field, 0.25rem) * 8); font-size: 0.75rem; &[type="number"] { &::-webkit-inner-spin-button { margin-block: calc(0.25rem * -2); margin-inline-end: calc(0.25rem * -3); } } } .label { display: inline-flex; align-items: center; gap: calc(0.25rem * 1.5); white-space: nowrap; color: currentColor; @supports (color: color-mix(in lab, red, red)) { color: color-mix(in oklab, currentColor 60%, transparent); } &:has(input) { cursor: pointer; } &:is(.input > *, .select > *) { display: flex; height: calc(100% - 0.5rem); align-items: center; padding-inline: calc(0.25rem * 3); white-space: nowrap; font-size: inherit; &:first-child { margin-inline-start: calc(0.25rem * -3); margin-inline-end: calc(0.25rem * 3); border-inline-end: var(--border) solid currentColor; @supports (color: color-mix(in lab, red, red)) { border-inline-end: var(--border) solid color-mix(in oklab, currentColor 10%, #0000); } } &:last-child { margin-inline-start: calc(0.25rem * 3); margin-inline-end: calc(0.25rem * -3); border-inline-start: var(--border) solid currentColor; @supports (color: color-mix(in lab, red, red)) { border-inline-start: var(--border) solid color-mix(in oklab, currentColor 10%, #0000); } } } } .modal-action { margin-top: calc(0.25rem * 6); display: flex; justify-content: flex-end; gap: calc(0.25rem * 2); } .mt-2 { margin-top: calc(var(--spacing) * 2); } .mt-3 { margin-top: calc(var(--spacing) * 3); } .mr-1 { margin-right: calc(var(--spacing) * 1); } .mr-3 { margin-right: calc(var(--spacing) * 3); } .fieldset-legend { margin-bottom: calc(0.25rem * -1); display: flex; align-items: center; justify-content: space-between; gap: calc(0.25rem * 2); padding-block: calc(0.25rem * 2); color: var(--color-base-content); font-weight: 600; } .mb-2 { margin-bottom: calc(var(--spacing) * 2); } .mb-3 { margin-bottom: calc(var(--spacing) * 3); } .mb-5 { margin-bottom: calc(var(--spacing) * 5); } .ml-auto { margin-left: auto; } .fieldset { display: grid; gap: calc(0.25rem * 1.5); padding-block: calc(0.25rem * 1); font-size: 0.75rem; grid-template-columns: 1fr; grid-auto-rows: max-content; } .flex { display: flex; } .hidden { display: none; } .modal-bottom { place-items: end; :where(.modal-box) { height: auto; width: 100%; max-width: none; max-height: calc(100vh - 5em); translate: 0 100%; scale: 1; --modal-tl: var(--radius-box); --modal-tr: var(--radius-box); --modal-bl: 0; --modal-br: 0; } } .btn-square { padding-inline: calc(0.25rem * 0); width: var(--size); height: var(--size); } .size-\[1\.6em\] { width: 1.6em; height: 1.6em; } .h-\[1\.2em\] { height: 1.2em; } .h-\[92px\] { height: 92px; } .h-full { height: 100%; } .h-screen { height: 100vh; } .w-32 { width: calc(var(--spacing) * 32); } .w-36 { width: calc(var(--spacing) * 36); } .w-56 { width: calc(var(--spacing) * 56); } .w-\[1\.5em\] { width: 1.5em; } .w-\[1\.6em\] { width: 1.6em; } .w-\[1\.7em\] { width: 1.7em; } .w-full { width: 100%; } .max-w-2xl { max-width: var(--container-2xl); } .grow { flex-grow: 1; } .link { cursor: pointer; text-decoration-line: underline; &:focus { --tw-outline-style: none; outline-style: none; @media (forced-colors: active) { outline: 2px solid transparent; outline-offset: 2px; } } &:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; } } .flex-col { flex-direction: column; } .flex-wrap { flex-wrap: wrap; } .items-center { align-items: center; } .justify-center { justify-content: center; } .gap-2 { gap: calc(var(--spacing) * 2); } .space-y-1 { :where(& > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse))); } } .space-y-3 { :where(& > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse))); } } .gap-y-3 { row-gap: calc(var(--spacing) * 3); } .overflow-y-auto { overflow-y: auto; } .rounded { border-radius: 0.25rem; } .bg-base-200 { background-color: var(--color-base-200); } .p-3 { padding: calc(var(--spacing) * 3); } .p-5 { padding: calc(var(--spacing) * 5); } .py-2 { padding-block: calc(var(--spacing) * 2); } .pt-3 { padding-top: calc(var(--spacing) * 3); } .pb-6 { padding-bottom: calc(var(--spacing) * 6); } .text-2xl { font-size: var(--text-2xl); line-height: var(--tw-leading, var(--text-2xl--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)); } .select-sm { --size: calc(var(--size-field, 0.25rem) * 8); font-size: 0.75rem; } .font-bold { --tw-font-weight: var(--font-weight-bold); font-weight: var(--font-weight-bold); } .opacity-50 { opacity: 50%; } .btn-ghost { &:not(.btn-active, :hover, :active:focus, :focus-visible) { --btn-shadow: ""; --btn-bg: #0000; --btn-border: #0000; --btn-noise: none; &:not(:disabled, [disabled], .btn-disabled) { outline-color: currentColor; --btn-fg: currentColor; } } @media (hover: none) { &:hover:not(.btn-active, :active, :focus-visible, :disabled, [disabled], .btn-disabled) { --btn-shadow: ""; --btn-bg: #0000; --btn-border: #0000; --btn-noise: none; --btn-fg: currentColor; } } } .btn-sm { --fontsize: 0.75rem; --btn-p: 0.75rem; --size: calc(var(--size-field, 0.25rem) * 8); } .btn-error { --btn-color: var(--color-error); --btn-fg: var(--color-error-content); } .btn-success { --btn-color: var(--color-success); --btn-fg: var(--color-success-content); } .hover\:cursor-pointer { &:hover { @media (hover: hover) { cursor: pointer; } } } .sm\:modal-middle { @media (width >= 40rem) { place-items: center; :where(.modal-box) { height: auto; width: calc(11/12 * 100%); max-width: 32rem; max-height: calc(100vh - 5em); translate: 0 2%; scale: 98%; --modal-tl: var(--radius-box); --modal-tr: var(--radius-box); --modal-bl: var(--radius-box); --modal-br: var(--radius-box); } } } } h2 { font-size: var(--text-xl); line-height: var(--tw-leading, var(--text-xl--line-height)); } h3 { font-size: var(--text-lg); line-height: var(--tw-leading, var(--text-lg--line-height)); } .desc { opacity: 80%; } @layer base { :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% 0.006 285.885); --color-primary: oklch(45% 0.24 277.023); --color-primary-content: oklch(93% 0.034 272.788); --color-secondary: oklch(65% 0.241 354.308); --color-secondary-content: oklch(94% 0.028 342.258); --color-accent: oklch(77% 0.152 181.912); --color-accent-content: oklch(38% 0.063 188.416); --color-neutral: oklch(14% 0.005 285.823); --color-neutral-content: oklch(92% 0.004 286.32); --color-info: oklch(74% 0.16 232.661); --color-info-content: oklch(29% 0.066 243.157); --color-success: oklch(76% 0.177 163.223); --color-success-content: oklch(37% 0.077 168.94); --color-warning: oklch(82% 0.189 84.429); --color-warning-content: oklch(41% 0.112 45.904); --color-error: oklch(71% 0.194 13.428); --color-error-content: oklch(27% 0.105 12.094); --radius-selector: 0.5rem; --radius-field: 0.25rem; --radius-box: 0.5rem; --size-selector: 0.25rem; --size-field: 0.25rem; --border: 1px; --depth: 1; --noise: 0; } } @layer base { @media (prefers-color-scheme: dark) { :root { color-scheme: dark; --color-base-100: oklch(25.33% 0.016 252.42); --color-base-200: oklch(23.26% 0.014 253.1); --color-base-300: oklch(21.15% 0.012 254.09); --color-base-content: oklch(97.807% 0.029 256.847); --color-primary: oklch(58% 0.233 277.117); --color-primary-content: oklch(96% 0.018 272.314); --color-secondary: oklch(65% 0.241 354.308); --color-secondary-content: oklch(94% 0.028 342.258); --color-accent: oklch(77% 0.152 181.912); --color-accent-content: oklch(38% 0.063 188.416); --color-neutral: oklch(14% 0.005 285.823); --color-neutral-content: oklch(92% 0.004 286.32); --color-info: oklch(74% 0.16 232.661); --color-info-content: oklch(29% 0.066 243.157); --color-success: oklch(76% 0.177 163.223); --color-success-content: oklch(37% 0.077 168.94); --color-warning: oklch(82% 0.189 84.429); --color-warning-content: oklch(41% 0.112 45.904); --color-error: oklch(71% 0.194 13.428); --color-error-content: oklch(27% 0.105 12.094); --radius-selector: 0.5rem; --radius-field: 0.25rem; --radius-box: 0.5rem; --size-selector: 0.25rem; --size-field: 0.25rem; --border: 1px; --depth: 1; --noise: 0; } } } @layer base { :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% 0.006 285.885); --color-primary: oklch(45% 0.24 277.023); --color-primary-content: oklch(93% 0.034 272.788); --color-secondary: oklch(65% 0.241 354.308); --color-secondary-content: oklch(94% 0.028 342.258); --color-accent: oklch(77% 0.152 181.912); --color-accent-content: oklch(38% 0.063 188.416); --color-neutral: oklch(14% 0.005 285.823); --color-neutral-content: oklch(92% 0.004 286.32); --color-info: oklch(74% 0.16 232.661); --color-info-content: oklch(29% 0.066 243.157); --color-success: oklch(76% 0.177 163.223); --color-success-content: oklch(37% 0.077 168.94); --color-warning: oklch(82% 0.189 84.429); --color-warning-content: oklch(41% 0.112 45.904); --color-error: oklch(71% 0.194 13.428); --color-error-content: oklch(27% 0.105 12.094); --radius-selector: 0.5rem; --radius-field: 0.25rem; --radius-box: 0.5rem; --size-selector: 0.25rem; --size-field: 0.25rem; --border: 1px; --depth: 1; --noise: 0; } } @layer base { :root:has(input.theme-controller[value=dark]:checked),[data-theme=dark] { color-scheme: dark; --color-base-100: oklch(25.33% 0.016 252.42); --color-base-200: oklch(23.26% 0.014 253.1); --color-base-300: oklch(21.15% 0.012 254.09); --color-base-content: oklch(97.807% 0.029 256.847); --color-primary: oklch(58% 0.233 277.117); --color-primary-content: oklch(96% 0.018 272.314); --color-secondary: oklch(65% 0.241 354.308); --color-secondary-content: oklch(94% 0.028 342.258); --color-accent: oklch(77% 0.152 181.912); --color-accent-content: oklch(38% 0.063 188.416); --color-neutral: oklch(14% 0.005 285.823); --color-neutral-content: oklch(92% 0.004 286.32); --color-info: oklch(74% 0.16 232.661); --color-info-content: oklch(29% 0.066 243.157); --color-success: oklch(76% 0.177 163.223); --color-success-content: oklch(37% 0.077 168.94); --color-warning: oklch(82% 0.189 84.429); --color-warning-content: oklch(41% 0.112 45.904); --color-error: oklch(71% 0.194 13.428); --color-error-content: oklch(27% 0.105 12.094); --radius-selector: 0.5rem; --radius-field: 0.25rem; --radius-box: 0.5rem; --size-selector: 0.25rem; --size-field: 0.25rem; --border: 1px; --depth: 1; --noise: 0; } } @layer base { :root { --fx-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E"); } } @layer base { :root, [data-theme] { background-color: var(--root-bg, var(--color-base-100)); color: var(--color-base-content); } } @layer base { :root:has( .modal-open, .modal[open], .modal:target, .modal-toggle:checked, .drawer:not([class*="drawer-open"]) > .drawer-toggle:checked ) { overflow: hidden; } } @layer base { @property --radialprogress { syntax: ""; inherits: true; initial-value: 0%; } } @layer base { :where( :root:has( .modal-open, .modal[open], .modal:target, .modal-toggle:checked, .drawer:not(.drawer-open) > .drawer-toggle:checked ) ) { scrollbar-gutter: stable; background-image: linear-gradient(var(--color-base-100), var(--color-base-100)); --root-bg: var(--color-base-100); @supports (color: color-mix(in lab, red, red)) { --root-bg: color-mix(in srgb, var(--color-base-100), oklch(0% 0 0) 40%); } } :where(.modal[open], .modal-open, .modal-toggle:checked + .modal):not(.modal-start, .modal-end) { scrollbar-gutter: stable; } } @layer base { :root { scrollbar-color: currentColor #0000; @supports (color: color-mix(in lab, red, red)) { scrollbar-color: color-mix(in oklch, currentColor 35%, #0000) #0000; } } } @keyframes progress { 50% { background-position-x: -115%; } } @keyframes rating { 0%, 40% { scale: 1.1; filter: brightness(1.05) contrast(1.05); } } @keyframes skeleton { 0% { background-position: 150%; } 100% { background-position: -50%; } } @keyframes dropdown { 0% { opacity: 0; } } @keyframes radio { 0% { padding: 5px; } 50% { padding: 3px; } } @keyframes toast { 0% { scale: 0.9; opacity: 0; } 100% { scale: 1; opacity: 1; } } @layer base { :where(:root),:root:has(input.theme-controller[value=night]:checked),[data-theme="night"] { color-scheme: dark; --color-base-100: oklch(20.768% 0.039 265.754); --color-base-200: oklch(19.314% 0.037 265.754); --color-base-300: oklch(17.86% 0.034 265.754); --color-base-content: oklch(84.153% 0.007 265.754); --color-primary: oklch(75.351% 0.138 232.661); --color-primary-content: oklch(15.07% 0.027 232.661); --color-secondary: oklch(68.011% 0.158 276.934); --color-secondary-content: oklch(13.602% 0.031 276.934); --color-accent: oklch(72.36% 0.176 350.048); --color-accent-content: oklch(14.472% 0.035 350.048); --color-neutral: oklch(27.949% 0.036 260.03); --color-neutral-content: oklch(85.589% 0.007 260.03); --color-info: oklch(68.455% 0.148 237.251); --color-info-content: oklch(0% 0 0); --color-success: oklch(78.452% 0.132 181.911); --color-success-content: oklch(15.69% 0.026 181.911); --color-warning: oklch(83.242% 0.139 82.95); --color-warning-content: oklch(16.648% 0.027 82.95); --color-error: oklch(71.785% 0.17 13.118); --color-error-content: oklch(14.357% 0.034 13.118); --radius-selector: 1rem; --radius-field: 0.5rem; --radius-box: 1rem; --size-selector: 0.25rem; --size-field: 0.25rem; --border: 1px; --depth: 0; --noise: 0; } } @property --tw-space-y-reverse { syntax: "*"; inherits: false; initial-value: 0; } @property --tw-font-weight { syntax: "*"; inherits: false; } @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-space-y-reverse: 0; --tw-font-weight: initial; } } }