summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/static/css/main.css3
-rw-r--r--core/static/css/output.css2433
-rw-r--r--core/templates/core/base.html21
-rw-r--r--core/templates/core/index.html160
4 files changed, 2529 insertions, 88 deletions
diff --git a/core/static/css/main.css b/core/static/css/main.css
new file mode 100644
index 0000000..5be59b4
--- /dev/null
+++ b/core/static/css/main.css
@@ -0,0 +1,3 @@
+@import 'tailwindcss/base';
+@import 'tailwindcss/components';
+@import 'tailwindcss/utilities'; \ No newline at end of file
diff --git a/core/static/css/output.css b/core/static/css/output.css
new file mode 100644
index 0000000..e8bd71c
--- /dev/null
+++ b/core/static/css/output.css
@@ -0,0 +1,2433 @@
+/*
+! tailwindcss v3.4.10 | MIT License | https://tailwindcss.com
+*/
+
+/*
+1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
+2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
+*/
+
+*,
+::before,
+::after {
+ box-sizing: border-box;
+ /* 1 */
+ border-width: 0;
+ /* 2 */
+ border-style: solid;
+ /* 2 */
+ border-color: #e5e7eb;
+ /* 2 */
+}
+
+::before,
+::after {
+ --tw-content: '';
+}
+
+/*
+1. Use a consistent sensible line-height in all browsers.
+2. Prevent adjustments of font size after orientation changes in iOS.
+3. Use a more readable tab size.
+4. Use the user's configured `sans` font-family by default.
+5. Use the user's configured `sans` font-feature-settings by default.
+6. Use the user's configured `sans` font-variation-settings by default.
+7. Disable tap highlights on iOS
+*/
+
+html,
+:host {
+ line-height: 1.5;
+ /* 1 */
+ -webkit-text-size-adjust: 100%;
+ /* 2 */
+ -moz-tab-size: 4;
+ /* 3 */
+ -o-tab-size: 4;
+ tab-size: 4;
+ /* 3 */
+ font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+ /* 4 */
+ font-feature-settings: normal;
+ /* 5 */
+ font-variation-settings: normal;
+ /* 6 */
+ -webkit-tap-highlight-color: transparent;
+ /* 7 */
+}
+
+/*
+1. Remove the margin in all browsers.
+2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
+*/
+
+body {
+ margin: 0;
+ /* 1 */
+ line-height: inherit;
+ /* 2 */
+}
+
+/*
+1. Add the correct height in Firefox.
+2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
+3. Ensure horizontal rules are visible by default.
+*/
+
+hr {
+ height: 0;
+ /* 1 */
+ color: inherit;
+ /* 2 */
+ border-top-width: 1px;
+ /* 3 */
+}
+
+/*
+Add the correct text decoration in Chrome, Edge, and Safari.
+*/
+
+abbr:where([title]) {
+ -webkit-text-decoration: underline dotted;
+ text-decoration: underline dotted;
+}
+
+/*
+Remove the default font size and weight for headings.
+*/
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: inherit;
+ font-weight: inherit;
+}
+
+/*
+Reset links to optimize for opt-in styling instead of opt-out.
+*/
+
+a {
+ color: inherit;
+ text-decoration: inherit;
+}
+
+/*
+Add the correct font weight in Edge and Safari.
+*/
+
+b,
+strong {
+ font-weight: bolder;
+}
+
+/*
+1. Use the user's configured `mono` font-family by default.
+2. Use the user's configured `mono` font-feature-settings by default.
+3. Use the user's configured `mono` font-variation-settings by default.
+4. Correct the odd `em` font sizing in all browsers.
+*/
+
+code,
+kbd,
+samp,
+pre {
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+ /* 1 */
+ font-feature-settings: normal;
+ /* 2 */
+ font-variation-settings: normal;
+ /* 3 */
+ font-size: 1em;
+ /* 4 */
+}
+
+/*
+Add the correct font size in all browsers.
+*/
+
+small {
+ font-size: 80%;
+}
+
+/*
+Prevent `sub` and `sup` elements from affecting the line height in all browsers.
+*/
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+sup {
+ top: -0.5em;
+}
+
+/*
+1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
+2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
+3. Remove gaps between table borders by default.
+*/
+
+table {
+ text-indent: 0;
+ /* 1 */
+ border-color: inherit;
+ /* 2 */
+ border-collapse: collapse;
+ /* 3 */
+}
+
+/*
+1. Change the font styles in all browsers.
+2. Remove the margin in Firefox and Safari.
+3. Remove default padding in all browsers.
+*/
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ font-family: inherit;
+ /* 1 */
+ font-feature-settings: inherit;
+ /* 1 */
+ font-variation-settings: inherit;
+ /* 1 */
+ font-size: 100%;
+ /* 1 */
+ font-weight: inherit;
+ /* 1 */
+ line-height: inherit;
+ /* 1 */
+ letter-spacing: inherit;
+ /* 1 */
+ color: inherit;
+ /* 1 */
+ margin: 0;
+ /* 2 */
+ padding: 0;
+ /* 3 */
+}
+
+/*
+Remove the inheritance of text transform in Edge and Firefox.
+*/
+
+button,
+select {
+ text-transform: none;
+}
+
+/*
+1. Correct the inability to style clickable types in iOS and Safari.
+2. Remove default button styles.
+*/
+
+button,
+input:where([type='button']),
+input:where([type='reset']),
+input:where([type='submit']) {
+ -webkit-appearance: button;
+ /* 1 */
+ background-color: transparent;
+ /* 2 */
+ background-image: none;
+ /* 2 */
+}
+
+/*
+Use the modern Firefox focus style for all focusable elements.
+*/
+
+:-moz-focusring {
+ outline: auto;
+}
+
+/*
+Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
+*/
+
+:-moz-ui-invalid {
+ box-shadow: none;
+}
+
+/*
+Add the correct vertical alignment in Chrome and Firefox.
+*/
+
+progress {
+ vertical-align: baseline;
+}
+
+/*
+Correct the cursor style of increment and decrement buttons in Safari.
+*/
+
+::-webkit-inner-spin-button,
+::-webkit-outer-spin-button {
+ height: auto;
+}
+
+/*
+1. Correct the odd appearance in Chrome and Safari.
+2. Correct the outline style in Safari.
+*/
+
+[type='search'] {
+ -webkit-appearance: textfield;
+ /* 1 */
+ outline-offset: -2px;
+ /* 2 */
+}
+
+/*
+Remove the inner padding in Chrome and Safari on macOS.
+*/
+
+::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/*
+1. Correct the inability to style clickable types in iOS and Safari.
+2. Change font properties to `inherit` in Safari.
+*/
+
+::-webkit-file-upload-button {
+ -webkit-appearance: button;
+ /* 1 */
+ font: inherit;
+ /* 2 */
+}
+
+/*
+Add the correct display in Chrome and Safari.
+*/
+
+summary {
+ display: list-item;
+}
+
+/*
+Removes the default spacing and border for appropriate elements.
+*/
+
+blockquote,
+dl,
+dd,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+hr,
+figure,
+p,
+pre {
+ margin: 0;
+}
+
+fieldset {
+ margin: 0;
+ padding: 0;
+}
+
+legend {
+ padding: 0;
+}
+
+ol,
+ul,
+menu {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+/*
+Reset default styling for dialogs.
+*/
+
+dialog {
+ padding: 0;
+}
+
+/*
+Prevent resizing textareas horizontally by default.
+*/
+
+textarea {
+ resize: vertical;
+}
+
+/*
+1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
+2. Set the default placeholder color to the user's configured gray 400 color.
+*/
+
+input::-moz-placeholder, textarea::-moz-placeholder {
+ opacity: 1;
+ /* 1 */
+ color: #9ca3af;
+ /* 2 */
+}
+
+input::placeholder,
+textarea::placeholder {
+ opacity: 1;
+ /* 1 */
+ color: #9ca3af;
+ /* 2 */
+}
+
+/*
+Set the default cursor for buttons.
+*/
+
+button,
+[role="button"] {
+ cursor: pointer;
+}
+
+/*
+Make sure disabled buttons don't get the pointer cursor.
+*/
+
+:disabled {
+ cursor: default;
+}
+
+/*
+1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
+2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
+ This can trigger a poorly considered lint error in some tools but is included by design.
+*/
+
+img,
+svg,
+video,
+canvas,
+audio,
+iframe,
+embed,
+object {
+ display: block;
+ /* 1 */
+ vertical-align: middle;
+ /* 2 */
+}
+
+/*
+Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
+*/
+
+img,
+video {
+ max-width: 100%;
+ height: auto;
+}
+
+/* Make elements with the HTML hidden attribute stay hidden by default */
+
+[hidden] {
+ display: none;
+}
+
+:root,
+[data-theme] {
+ background-color: var(--fallback-b1,oklch(var(--b1)/1));
+ color: var(--fallback-bc,oklch(var(--bc)/1));
+}
+
+@supports not (color: oklch(0% 0 0)) {
+ :root {
+ color-scheme: light;
+ --fallback-p: #491eff;
+ --fallback-pc: #d4dbff;
+ --fallback-s: #ff41c7;
+ --fallback-sc: #fff9fc;
+ --fallback-a: #00cfbd;
+ --fallback-ac: #00100d;
+ --fallback-n: #2b3440;
+ --fallback-nc: #d7dde4;
+ --fallback-b1: #ffffff;
+ --fallback-b2: #e5e6e6;
+ --fallback-b3: #e5e6e6;
+ --fallback-bc: #1f2937;
+ --fallback-in: #00b3f0;
+ --fallback-inc: #000000;
+ --fallback-su: #00ca92;
+ --fallback-suc: #000000;
+ --fallback-wa: #ffc22d;
+ --fallback-wac: #000000;
+ --fallback-er: #ff6f70;
+ --fallback-erc: #000000;
+ }
+
+ @media (prefers-color-scheme: dark) {
+ :root {
+ color-scheme: dark;
+ --fallback-p: #7582ff;
+ --fallback-pc: #050617;
+ --fallback-s: #ff71cf;
+ --fallback-sc: #190211;
+ --fallback-a: #00c7b5;
+ --fallback-ac: #000e0c;
+ --fallback-n: #2a323c;
+ --fallback-nc: #a6adbb;
+ --fallback-b1: #1d232a;
+ --fallback-b2: #191e24;
+ --fallback-b3: #15191e;
+ --fallback-bc: #a6adbb;
+ --fallback-in: #00b3f0;
+ --fallback-inc: #000000;
+ --fallback-su: #00ca92;
+ --fallback-suc: #000000;
+ --fallback-wa: #ffc22d;
+ --fallback-wac: #000000;
+ --fallback-er: #ff6f70;
+ --fallback-erc: #000000;
+ }
+ }
+}
+
+html {
+ -webkit-tap-highlight-color: transparent;
+}
+
+* {
+ scrollbar-color: color-mix(in oklch, currentColor 35%, transparent) transparent;
+}
+
+*:hover {
+ scrollbar-color: color-mix(in oklch, currentColor 60%, transparent) transparent;
+}
+
+:root {
+ color-scheme: light;
+ --in: 72.06% 0.191 231.6;
+ --su: 64.8% 0.150 160;
+ --wa: 84.71% 0.199 83.87;
+ --er: 71.76% 0.221 22.18;
+ --pc: 89.824% 0.06192 275.75;
+ --ac: 15.352% 0.0368 183.61;
+ --inc: 0% 0 0;
+ --suc: 0% 0 0;
+ --wac: 0% 0 0;
+ --erc: 0% 0 0;
+ --rounded-box: 1rem;
+ --rounded-btn: 0.5rem;
+ --rounded-badge: 1.9rem;
+ --animation-btn: 0.25s;
+ --animation-input: .2s;
+ --btn-focus-scale: 0.95;
+ --border-btn: 1px;
+ --tab-border: 1px;
+ --tab-radius: 0.5rem;
+ --p: 49.12% 0.3096 275.75;
+ --s: 69.71% 0.329 342.55;
+ --sc: 98.71% 0.0106 342.55;
+ --a: 76.76% 0.184 183.61;
+ --n: 32.1785% 0.02476 255.701624;
+ --nc: 89.4994% 0.011585 252.096176;
+ --b1: 100% 0 0;
+ --b2: 96.1151% 0 0;
+ --b3: 92.4169% 0.00108 197.137559;
+ --bc: 27.8078% 0.029596 256.847952;
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ color-scheme: dark;
+ --in: 72.06% 0.191 231.6;
+ --su: 64.8% 0.150 160;
+ --wa: 84.71% 0.199 83.87;
+ --er: 71.76% 0.221 22.18;
+ --pc: 13.138% 0.0392 275.75;
+ --sc: 14.96% 0.052 342.55;
+ --ac: 14.902% 0.0334 183.61;
+ --inc: 0% 0 0;
+ --suc: 0% 0 0;
+ --wac: 0% 0 0;
+ --erc: 0% 0 0;
+ --rounded-box: 1rem;
+ --rounded-btn: 0.5rem;
+ --rounded-badge: 1.9rem;
+ --animation-btn: 0.25s;
+ --animation-input: .2s;
+ --btn-focus-scale: 0.95;
+ --border-btn: 1px;
+ --tab-border: 1px;
+ --tab-radius: 0.5rem;
+ --p: 65.69% 0.196 275.75;
+ --s: 74.8% 0.26 342.55;
+ --a: 74.51% 0.167 183.61;
+ --n: 31.3815% 0.021108 254.139175;
+ --nc: 74.6477% 0.0216 264.435964;
+ --b1: 25.3267% 0.015896 252.417568;
+ --b2: 23.2607% 0.013807 253.100675;
+ --b3: 21.1484% 0.01165 254.087939;
+ --bc: 74.6477% 0.0216 264.435964;
+ }
+}
+
+[data-theme=light] {
+ color-scheme: light;
+ --in: 72.06% 0.191 231.6;
+ --su: 64.8% 0.150 160;
+ --wa: 84.71% 0.199 83.87;
+ --er: 71.76% 0.221 22.18;
+ --pc: 89.824% 0.06192 275.75;
+ --ac: 15.352% 0.0368 183.61;
+ --inc: 0% 0 0;
+ --suc: 0% 0 0;
+ --wac: 0% 0 0;
+ --erc: 0% 0 0;
+ --rounded-box: 1rem;
+ --rounded-btn: 0.5rem;
+ --rounded-badge: 1.9rem;
+ --animation-btn: 0.25s;
+ --animation-input: .2s;
+ --btn-focus-scale: 0.95;
+ --border-btn: 1px;
+ --tab-border: 1px;
+ --tab-radius: 0.5rem;
+ --p: 49.12% 0.3096 275.75;
+ --s: 69.71% 0.329 342.55;
+ --sc: 98.71% 0.0106 342.55;
+ --a: 76.76% 0.184 183.61;
+ --n: 32.1785% 0.02476 255.701624;
+ --nc: 89.4994% 0.011585 252.096176;
+ --b1: 100% 0 0;
+ --b2: 96.1151% 0 0;
+ --b3: 92.4169% 0.00108 197.137559;
+ --bc: 27.8078% 0.029596 256.847952;
+}
+
+[data-theme=dark] {
+ color-scheme: dark;
+ --in: 72.06% 0.191 231.6;
+ --su: 64.8% 0.150 160;
+ --wa: 84.71% 0.199 83.87;
+ --er: 71.76% 0.221 22.18;
+ --pc: 13.138% 0.0392 275.75;
+ --sc: 14.96% 0.052 342.55;
+ --ac: 14.902% 0.0334 183.61;
+ --inc: 0% 0 0;
+ --suc: 0% 0 0;
+ --wac: 0% 0 0;
+ --erc: 0% 0 0;
+ --rounded-box: 1rem;
+ --rounded-btn: 0.5rem;
+ --rounded-badge: 1.9rem;
+ --animation-btn: 0.25s;
+ --animation-input: .2s;
+ --btn-focus-scale: 0.95;
+ --border-btn: 1px;
+ --tab-border: 1px;
+ --tab-radius: 0.5rem;
+ --p: 65.69% 0.196 275.75;
+ --s: 74.8% 0.26 342.55;
+ --a: 74.51% 0.167 183.61;
+ --n: 31.3815% 0.021108 254.139175;
+ --nc: 74.6477% 0.0216 264.435964;
+ --b1: 25.3267% 0.015896 252.417568;
+ --b2: 23.2607% 0.013807 253.100675;
+ --b3: 21.1484% 0.01165 254.087939;
+ --bc: 74.6477% 0.0216 264.435964;
+}
+
+[data-theme=cupcake] {
+ color-scheme: light;
+ --in: 72.06% 0.191 231.6;
+ --su: 64.8% 0.150 160;
+ --wa: 84.71% 0.199 83.87;
+ --er: 71.76% 0.221 22.18;
+ --pc: 15.2344% 0.017892 200.026556;
+ --sc: 15.787% 0.020249 356.29965;
+ --ac: 15.8762% 0.029206 78.618794;
+ --nc: 84.7148% 0.013247 313.189598;
+ --inc: 0% 0 0;
+ --suc: 0% 0 0;
+ --wac: 0% 0 0;
+ --erc: 0% 0 0;
+ --rounded-box: 1rem;
+ --rounded-badge: 1.9rem;
+ --animation-btn: 0.25s;
+ --animation-input: .2s;
+ --btn-focus-scale: 0.95;
+ --border-btn: 1px;
+ --p: 76.172% 0.089459 200.026556;
+ --s: 78.9351% 0.101246 356.29965;
+ --a: 79.3811% 0.146032 78.618794;
+ --n: 23.5742% 0.066235 313.189598;
+ --b1: 97.7882% 0.00418 56.375637;
+ --b2: 93.9822% 0.007638 61.449292;
+ --b3: 91.5861% 0.006811 53.440502;
+ --bc: 23.5742% 0.066235 313.189598;
+ --rounded-btn: 1.9rem;
+ --tab-border: 2px;
+ --tab-radius: 0.7rem;
+}
+
+*, ::before, ::after {
+ --tw-border-spacing-x: 0;
+ --tw-border-spacing-y: 0;
+ --tw-translate-x: 0;
+ --tw-translate-y: 0;
+ --tw-rotate: 0;
+ --tw-skew-x: 0;
+ --tw-skew-y: 0;
+ --tw-scale-x: 1;
+ --tw-scale-y: 1;
+ --tw-pan-x: ;
+ --tw-pan-y: ;
+ --tw-pinch-zoom: ;
+ --tw-scroll-snap-strictness: proximity;
+ --tw-gradient-from-position: ;
+ --tw-gradient-via-position: ;
+ --tw-gradient-to-position: ;
+ --tw-ordinal: ;
+ --tw-slashed-zero: ;
+ --tw-numeric-figure: ;
+ --tw-numeric-spacing: ;
+ --tw-numeric-fraction: ;
+ --tw-ring-inset: ;
+ --tw-ring-offset-width: 0px;
+ --tw-ring-offset-color: #fff;
+ --tw-ring-color: rgb(59 130 246 / 0.5);
+ --tw-ring-offset-shadow: 0 0 #0000;
+ --tw-ring-shadow: 0 0 #0000;
+ --tw-shadow: 0 0 #0000;
+ --tw-shadow-colored: 0 0 #0000;
+ --tw-blur: ;
+ --tw-brightness: ;
+ --tw-contrast: ;
+ --tw-grayscale: ;
+ --tw-hue-rotate: ;
+ --tw-invert: ;
+ --tw-saturate: ;
+ --tw-sepia: ;
+ --tw-drop-shadow: ;
+ --tw-backdrop-blur: ;
+ --tw-backdrop-brightness: ;
+ --tw-backdrop-contrast: ;
+ --tw-backdrop-grayscale: ;
+ --tw-backdrop-hue-rotate: ;
+ --tw-backdrop-invert: ;
+ --tw-backdrop-opacity: ;
+ --tw-backdrop-saturate: ;
+ --tw-backdrop-sepia: ;
+ --tw-contain-size: ;
+ --tw-contain-layout: ;
+ --tw-contain-paint: ;
+ --tw-contain-style: ;
+}
+
+::backdrop {
+ --tw-border-spacing-x: 0;
+ --tw-border-spacing-y: 0;
+ --tw-translate-x: 0;
+ --tw-translate-y: 0;
+ --tw-rotate: 0;
+ --tw-skew-x: 0;
+ --tw-skew-y: 0;
+ --tw-scale-x: 1;
+ --tw-scale-y: 1;
+ --tw-pan-x: ;
+ --tw-pan-y: ;
+ --tw-pinch-zoom: ;
+ --tw-scroll-snap-strictness: proximity;
+ --tw-gradient-from-position: ;
+ --tw-gradient-via-position: ;
+ --tw-gradient-to-position: ;
+ --tw-ordinal: ;
+ --tw-slashed-zero: ;
+ --tw-numeric-figure: ;
+ --tw-numeric-spacing: ;
+ --tw-numeric-fraction: ;
+ --tw-ring-inset: ;
+ --tw-ring-offset-width: 0px;
+ --tw-ring-offset-color: #fff;
+ --tw-ring-color: rgb(59 130 246 / 0.5);
+ --tw-ring-offset-shadow: 0 0 #0000;
+ --tw-ring-shadow: 0 0 #0000;
+ --tw-shadow: 0 0 #0000;
+ --tw-shadow-colored: 0 0 #0000;
+ --tw-blur: ;
+ --tw-brightness: ;
+ --tw-contrast: ;
+ --tw-grayscale: ;
+ --tw-hue-rotate: ;
+ --tw-invert: ;
+ --tw-saturate: ;
+ --tw-sepia: ;
+ --tw-drop-shadow: ;
+ --tw-backdrop-blur: ;
+ --tw-backdrop-brightness: ;
+ --tw-backdrop-contrast: ;
+ --tw-backdrop-grayscale: ;
+ --tw-backdrop-hue-rotate: ;
+ --tw-backdrop-invert: ;
+ --tw-backdrop-opacity: ;
+ --tw-backdrop-saturate: ;
+ --tw-backdrop-sepia: ;
+ --tw-contain-size: ;
+ --tw-contain-layout: ;
+ --tw-contain-paint: ;
+ --tw-contain-style: ;
+}
+
+.container {
+ width: 100%;
+}
+
+@media (min-width: 640px) {
+ .container {
+ max-width: 640px;
+ }
+}
+
+@media (min-width: 768px) {
+ .container {
+ max-width: 768px;
+ }
+}
+
+@media (min-width: 1024px) {
+ .container {
+ max-width: 1024px;
+ }
+}
+
+@media (min-width: 1280px) {
+ .container {
+ max-width: 1280px;
+ }
+}
+
+@media (min-width: 1536px) {
+ .container {
+ max-width: 1536px;
+ }
+}
+
+.alert {
+ display: grid;
+ width: 100%;
+ grid-auto-flow: row;
+ align-content: flex-start;
+ align-items: center;
+ justify-items: center;
+ gap: 1rem;
+ text-align: center;
+ border-radius: var(--rounded-box, 1rem);
+ border-width: 1px;
+ --tw-border-opacity: 1;
+ border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));
+ padding: 1rem;
+ --tw-text-opacity: 1;
+ color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));
+ --alert-bg: var(--fallback-b2,oklch(var(--b2)/1));
+ --alert-bg-mix: var(--fallback-b1,oklch(var(--b1)/1));
+ background-color: var(--alert-bg);
+}
+
+@media (min-width: 640px) {
+ .alert {
+ grid-auto-flow: column;
+ grid-template-columns: auto minmax(auto,1fr);
+ justify-items: start;
+ text-align: start;
+ }
+}
+
+.avatar.placeholder > div {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.breadcrumbs {
+ max-width: 100%;
+ overflow-x: auto;
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+}
+
+.breadcrumbs > ul,
+ .breadcrumbs > ol {
+ display: flex;
+ align-items: center;
+ white-space: nowrap;
+ min-height: -moz-min-content;
+ min-height: min-content;
+}
+
+.breadcrumbs > ul > li, .breadcrumbs > ol > li {
+ display: flex;
+ align-items: center;
+}
+
+.breadcrumbs > ul > li > a, .breadcrumbs > ol > li > a {
+ display: flex;
+ cursor: pointer;
+ align-items: center;
+}
+
+@media (hover:hover) {
+ .breadcrumbs > ul > li > a:hover, .breadcrumbs > ol > li > a:hover {
+ text-decoration-line: underline;
+ }
+
+ .label a:hover {
+ --tw-text-opacity: 1;
+ color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));
+ }
+
+ .menu li > *:not(ul, .menu-title, details, .btn):active,
+.menu li > *:not(ul, .menu-title, details, .btn).active,
+.menu li > details > summary:active {
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));
+ --tw-text-opacity: 1;
+ color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)));
+ }
+
+ .tab:hover {
+ --tw-text-opacity: 1;
+ }
+
+ .table tr.hover:hover,
+ .table tr.hover:nth-child(even):hover {
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));
+ }
+
+ .table-zebra tr.hover:hover,
+ .table-zebra tr.hover:nth-child(even):hover {
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));
+ }
+}
+
+.btn {
+ display: inline-flex;
+ height: 3rem;
+ min-height: 3rem;
+ flex-shrink: 0;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: center;
+ border-radius: var(--rounded-btn, 0.5rem);
+ border-color: transparent;
+ border-color: oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity));
+ padding-left: 1rem;
+ padding-right: 1rem;
+ text-align: center;
+ font-size: 0.875rem;
+ line-height: 1em;
+ gap: 0.5rem;
+ font-weight: 600;
+ text-decoration-line: none;
+ transition-duration: 200ms;
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
+ border-width: var(--border-btn, 1px);
+ transition-property: color, background-color, border-color, opacity, box-shadow, transform;
+ --tw-text-opacity: 1;
+ color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));
+ --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
+ --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
+ outline-color: var(--fallback-bc,oklch(var(--bc)/1));
+ background-color: oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity));
+ --tw-bg-opacity: 1;
+ --tw-border-opacity: 1;
+}
+
+.btn-disabled,
+ .btn[disabled],
+ .btn:disabled {
+ pointer-events: none;
+}
+
+:where(.btn:is(input[type="checkbox"])),
+:where(.btn:is(input[type="radio"])) {
+ width: auto;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+}
+
+.btn:is(input[type="checkbox"]):after,
+.btn:is(input[type="radio"]):after {
+ --tw-content: attr(aria-label);
+ content: var(--tw-content);
+}
+
+.card {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ border-radius: var(--rounded-box, 1rem);
+}
+
+.card:focus {
+ outline: 2px solid transparent;
+ outline-offset: 2px;
+}
+
+.card-body {
+ display: flex;
+ flex: 1 1 auto;
+ flex-direction: column;
+ padding: var(--padding-card, 2rem);
+ gap: 0.5rem;
+}
+
+.card-body :where(p) {
+ flex-grow: 1;
+}
+
+.card figure {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.card.image-full {
+ display: grid;
+}
+
+.card.image-full:before {
+ position: relative;
+ content: "";
+ z-index: 10;
+ border-radius: var(--rounded-box, 1rem);
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));
+ opacity: 0.75;
+}
+
+.card.image-full:before,
+ .card.image-full > * {
+ grid-column-start: 1;
+ grid-row-start: 1;
+}
+
+.card.image-full > figure img {
+ height: 100%;
+ -o-object-fit: cover;
+ object-fit: cover;
+}
+
+.card.image-full > .card-body {
+ position: relative;
+ z-index: 20;
+ --tw-text-opacity: 1;
+ color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)));
+}
+
+.checkbox {
+ flex-shrink: 0;
+ --chkbg: var(--fallback-bc,oklch(var(--bc)/1));
+ --chkfg: var(--fallback-b1,oklch(var(--b1)/1));
+ height: 1.5rem;
+ width: 1.5rem;
+ cursor: pointer;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ border-radius: var(--rounded-btn, 0.5rem);
+ border-width: 1px;
+ border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity)));
+ --tw-border-opacity: 0.2;
+}
+
+.collapse:not(td):not(tr):not(colgroup) {
+ visibility: visible;
+}
+
+.collapse {
+ position: relative;
+ display: grid;
+ overflow: hidden;
+ grid-template-rows: auto 0fr;
+ transition: grid-template-rows 0.2s;
+ width: 100%;
+ border-radius: var(--rounded-box, 1rem);
+}
+
+.collapse-title,
+.collapse > input[type="checkbox"],
+.collapse > input[type="radio"],
+.collapse-content {
+ grid-column-start: 1;
+ grid-row-start: 1;
+}
+
+.collapse > input[type="checkbox"],
+.collapse > input[type="radio"] {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ opacity: 0;
+}
+
+.collapse[open],
+.collapse-open,
+.collapse:focus:not(.collapse-close) {
+ grid-template-rows: auto 1fr;
+}
+
+.collapse:not(.collapse-close):has(> input[type="checkbox"]:checked),
+.collapse:not(.collapse-close):has(> input[type="radio"]:checked) {
+ grid-template-rows: auto 1fr;
+}
+
+.collapse[open] > .collapse-content,
+.collapse-open > .collapse-content,
+.collapse:focus:not(.collapse-close) > .collapse-content,
+.collapse:not(.collapse-close) > input[type="checkbox"]:checked ~ .collapse-content,
+.collapse:not(.collapse-close) > input[type="radio"]:checked ~ .collapse-content {
+ visibility: visible;
+ min-height: -moz-fit-content;
+ min-height: fit-content;
+}
+
+.dropdown {
+ position: relative;
+ display: inline-block;
+}
+
+.dropdown > *:not(summary):focus {
+ outline: 2px solid transparent;
+ outline-offset: 2px;
+}
+
+.dropdown .dropdown-content {
+ position: absolute;
+}
+
+.dropdown:is(:not(details)) .dropdown-content {
+ visibility: hidden;
+ opacity: 0;
+ transform-origin: top;
+ --tw-scale-x: .95;
+ --tw-scale-y: .95;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
+ transition-duration: 200ms;
+}
+
+.dropdown.dropdown-open .dropdown-content,
+.dropdown:not(.dropdown-hover):focus .dropdown-content,
+.dropdown:focus-within .dropdown-content {
+ visibility: visible;
+ opacity: 1;
+}
+
+@media (hover: hover) {
+ .dropdown.dropdown-hover:hover .dropdown-content {
+ visibility: visible;
+ opacity: 1;
+ }
+
+ .btm-nav > *.disabled:hover,
+ .btm-nav > *[disabled]:hover {
+ pointer-events: none;
+ --tw-border-opacity: 0;
+ background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));
+ --tw-bg-opacity: 0.1;
+ color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));
+ --tw-text-opacity: 0.2;
+ }
+
+ .btn:hover {
+ --tw-border-opacity: 1;
+ border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity)));
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));
+ }
+
+ @supports (color: color-mix(in oklab, black, black)) {
+ .btn:hover {
+ background-color: color-mix(
+ in oklab,
+ oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%,
+ black
+ );
+ border-color: color-mix(
+ in oklab,
+ oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%,
+ black
+ );
+ }
+ }
+
+ @supports not (color: oklch(0% 0 0)) {
+ .btn:hover {
+ background-color: var(--btn-color, var(--fallback-b2));
+ border-color: var(--btn-color, var(--fallback-b2));
+ }
+ }
+
+ .btn.glass:hover {
+ --glass-opacity: 25%;
+ --glass-border-opacity: 15%;
+ }
+
+ .btn-outline.btn-primary:hover {
+ --tw-text-opacity: 1;
+ color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));
+ }
+
+ @supports (color: color-mix(in oklab, black, black)) {
+ .btn-outline.btn-primary:hover {
+ background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);
+ border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);
+ }
+ }
+
+ .btn-disabled:hover,
+ .btn[disabled]:hover,
+ .btn:disabled:hover {
+ --tw-border-opacity: 0;
+ background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));
+ --tw-bg-opacity: 0.2;
+ color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));
+ --tw-text-opacity: 0.2;
+ }
+
+ @supports (color: color-mix(in oklab, black, black)) {
+ .btn:is(input[type="checkbox"]:checked):hover, .btn:is(input[type="radio"]:checked):hover {
+ background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);
+ border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);
+ }
+ }
+
+ .dropdown.dropdown-hover:hover .dropdown-content {
+ --tw-scale-x: 1;
+ --tw-scale-y: 1;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+ }
+
+ .tab[disabled],
+ .tab[disabled]:hover {
+ cursor: not-allowed;
+ color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));
+ --tw-text-opacity: 0.2;
+ }
+}
+
+.dropdown:is(details) summary::-webkit-details-marker {
+ display: none;
+}
+
+.form-control {
+ display: flex;
+ flex-direction: column;
+}
+
+.label {
+ display: flex;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+ align-items: center;
+ justify-content: space-between;
+ padding-left: 0.25rem;
+ padding-right: 0.25rem;
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+}
+
+.input {
+ flex-shrink: 1;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ height: 3rem;
+ padding-left: 1rem;
+ padding-right: 1rem;
+ font-size: 1rem;
+ line-height: 2;
+ line-height: 1.5rem;
+ border-radius: var(--rounded-btn, 0.5rem);
+ border-width: 1px;
+ border-color: transparent;
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));
+}
+
+.input[type="number"]::-webkit-inner-spin-button,
+.input-md[type="number"]::-webkit-inner-spin-button {
+ margin-top: -1rem;
+ margin-bottom: -1rem;
+ margin-inline-end: -1rem;
+}
+
+.join .dropdown .join-item:first-child:not(:last-child),
+ .join *:first-child:not(:last-child) .dropdown .join-item {
+ border-start-end-radius: inherit;
+ border-end-end-radius: inherit;
+}
+
+.link {
+ cursor: pointer;
+ text-decoration-line: underline;
+}
+
+.menu li.disabled {
+ cursor: not-allowed;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+ color: var(--fallback-bc,oklch(var(--bc)/0.3));
+}
+
+.modal {
+ pointer-events: none;
+ position: fixed;
+ inset: 0px;
+ margin: 0px;
+ display: grid;
+ height: 100%;
+ max-height: none;
+ width: 100%;
+ max-width: none;
+ justify-items: center;
+ padding: 0px;
+ opacity: 0;
+ overscroll-behavior: contain;
+ z-index: 999;
+ background-color: transparent;
+ color: inherit;
+ transition-duration: 200ms;
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
+ transition-property: transform, opacity, visibility;
+ overflow-y: hidden;
+}
+
+:where(.modal) {
+ align-items: center;
+}
+
+.modal-open,
+.modal:target,
+.modal-toggle:checked + .modal,
+.modal[open] {
+ pointer-events: auto;
+ visibility: visible;
+ opacity: 1;
+}
+
+:root:has(:is(.modal-open, .modal:target, .modal-toggle:checked + .modal, .modal[open])) {
+ overflow: hidden;
+ scrollbar-gutter: stable;
+}
+
+.navbar {
+ display: flex;
+ align-items: center;
+ padding: var(--navbar-padding, 0.5rem);
+ min-height: 4rem;
+ width: 100%;
+}
+
+:where(.navbar > *:not(script, style)) {
+ display: inline-flex;
+ align-items: center;
+}
+
+.radio {
+ flex-shrink: 0;
+ --chkbg: var(--bc);
+ height: 1.5rem;
+ width: 1.5rem;
+ cursor: pointer;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ border-radius: 9999px;
+ border-width: 1px;
+ border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity)));
+ --tw-border-opacity: 0.2;
+}
+
+.tabs {
+ display: grid;
+ align-items: flex-end;
+}
+
+.tabs-lifted:has(.tab-content[class^="rounded-"])
+ .tab:first-child:not(:is(.tab-active, [aria-selected="true"])), .tabs-lifted:has(.tab-content[class*=" rounded-"])
+ .tab:first-child:not(:is(.tab-active, [aria-selected="true"])) {
+ border-bottom-color: transparent;
+}
+
+.tab {
+ position: relative;
+ grid-row-start: 1;
+ display: inline-flex;
+ height: 2rem;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ font-size: 0.875rem;
+ line-height: 1.25rem;
+ line-height: 2;
+ --tab-padding: 1rem;
+ --tw-text-opacity: 0.5;
+ --tab-color: var(--fallback-bc,oklch(var(--bc)/1));
+ --tab-bg: var(--fallback-b1,oklch(var(--b1)/1));
+ --tab-border-color: var(--fallback-b3,oklch(var(--b3)/1));
+ color: var(--tab-color);
+ padding-inline-start: var(--tab-padding, 1rem);
+ padding-inline-end: var(--tab-padding, 1rem);
+}
+
+.tab:is(input[type="radio"]) {
+ width: auto;
+ border-bottom-right-radius: 0px;
+ border-bottom-left-radius: 0px;
+}
+
+.tab:is(input[type="radio"]):after {
+ --tw-content: attr(aria-label);
+ content: var(--tw-content);
+}
+
+.tab:not(input):empty {
+ cursor: default;
+ grid-column-start: span 9999;
+}
+
+.tab-content {
+ grid-column-start: 1;
+ grid-column-end: span 9999;
+ grid-row-start: 2;
+ margin-top: calc(var(--tab-border) * -1);
+ display: none;
+ border-color: transparent;
+ border-width: var(--tab-border, 0);
+}
+
+:checked + .tab-content:nth-child(2),
+ :is(.tab-active, [aria-selected="true"]) + .tab-content:nth-child(2) {
+ border-start-start-radius: 0px;
+}
+
+input.tab:checked + .tab-content,
+:is(.tab-active, [aria-selected="true"]) + .tab-content {
+ display: block;
+}
+
+.table {
+ position: relative;
+ width: 100%;
+ border-radius: var(--rounded-box, 1rem);
+ text-align: left;
+ font-size: 0.875rem;
+ line-height: 1.25rem;
+}
+
+.table :where(.table-pin-rows thead tr) {
+ position: sticky;
+ top: 0px;
+ z-index: 1;
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));
+}
+
+.table :where(.table-pin-rows tfoot tr) {
+ position: sticky;
+ bottom: 0px;
+ z-index: 1;
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));
+}
+
+.table :where(.table-pin-cols tr th) {
+ position: sticky;
+ left: 0px;
+ right: 0px;
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));
+}
+
+.table-zebra tbody tr:nth-child(even) :where(.table-pin-cols tr th) {
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));
+}
+
+.btm-nav > *:where(.active) {
+ border-top-width: 2px;
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));
+}
+
+.btm-nav > *.disabled,
+ .btm-nav > *[disabled] {
+ pointer-events: none;
+ --tw-border-opacity: 0;
+ background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));
+ --tw-bg-opacity: 0.1;
+ color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));
+ --tw-text-opacity: 0.2;
+}
+
+.btm-nav > * .label {
+ font-size: 1rem;
+ line-height: 1.5rem;
+}
+
+.breadcrumbs > ul > li > a:focus, .breadcrumbs > ol > li > a:focus {
+ outline: 2px solid transparent;
+ outline-offset: 2px;
+}
+
+.breadcrumbs > ul > li > a:focus-visible, .breadcrumbs > ol > li > a:focus-visible {
+ outline: 2px solid currentColor;
+ outline-offset: 2px;
+}
+
+.breadcrumbs > ul > li + *:before, .breadcrumbs > ol > li + *:before {
+ content: "";
+ margin-left: 0.5rem;
+ margin-right: 0.75rem;
+ display: block;
+ height: 0.375rem;
+ width: 0.375rem;
+ --tw-rotate: 45deg;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+ opacity: 0.4;
+ border-top: 1px solid;
+ border-right: 1px solid;
+ background-color: transparent;
+}
+
+[dir="rtl"] .breadcrumbs > ul > li + *:before,
+[dir="rtl"] .breadcrumbs > ol > li + *:before {
+ --tw-rotate: -135deg;
+}
+
+@media (prefers-reduced-motion: no-preference) {
+ .btn {
+ animation: button-pop var(--animation-btn, 0.25s) ease-out;
+ }
+}
+
+.btn:active:hover,
+ .btn:active:focus {
+ animation: button-pop 0s ease-out;
+ transform: scale(var(--btn-focus-scale, 0.97));
+}
+
+@supports not (color: oklch(0% 0 0)) {
+ .btn {
+ background-color: var(--btn-color, var(--fallback-b2));
+ border-color: var(--btn-color, var(--fallback-b2));
+ }
+
+ .btn-primary {
+ --btn-color: var(--fallback-p);
+ }
+}
+
+@supports (color: color-mix(in oklab, black, black)) {
+ .btn-outline.btn-primary.btn-active {
+ background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);
+ border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);
+ }
+}
+
+.btn:focus-visible {
+ outline-style: solid;
+ outline-width: 2px;
+ outline-offset: 2px;
+}
+
+.btn-primary {
+ --tw-text-opacity: 1;
+ color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));
+ outline-color: var(--fallback-p,oklch(var(--p)/1));
+}
+
+@supports (color: oklch(0% 0 0)) {
+ .btn-primary {
+ --btn-color: var(--p);
+ }
+}
+
+.btn.glass {
+ --tw-shadow: 0 0 #0000;
+ --tw-shadow-colored: 0 0 #0000;
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
+ outline-color: currentColor;
+}
+
+.btn.glass.btn-active {
+ --glass-opacity: 25%;
+ --glass-border-opacity: 15%;
+}
+
+.btn-outline.btn-primary {
+ --tw-text-opacity: 1;
+ color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity)));
+}
+
+.btn-outline.btn-primary.btn-active {
+ --tw-text-opacity: 1;
+ color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));
+}
+
+.btn.btn-disabled,
+ .btn[disabled],
+ .btn:disabled {
+ --tw-border-opacity: 0;
+ background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));
+ --tw-bg-opacity: 0.2;
+ color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));
+ --tw-text-opacity: 0.2;
+}
+
+.btn:is(input[type="checkbox"]:checked),
+.btn:is(input[type="radio"]:checked) {
+ --tw-border-opacity: 1;
+ border-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity)));
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity)));
+ --tw-text-opacity: 1;
+ color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));
+}
+
+.btn:is(input[type="checkbox"]:checked):focus-visible, .btn:is(input[type="radio"]:checked):focus-visible {
+ outline-color: var(--fallback-p,oklch(var(--p)/1));
+}
+
+@keyframes button-pop {
+ 0% {
+ transform: scale(var(--btn-focus-scale, 0.98));
+ }
+
+ 40% {
+ transform: scale(1.02);
+ }
+
+ 100% {
+ transform: scale(1);
+ }
+}
+
+.card :where(figure:first-child) {
+ overflow: hidden;
+ border-start-start-radius: inherit;
+ border-start-end-radius: inherit;
+ border-end-start-radius: unset;
+ border-end-end-radius: unset;
+}
+
+.card :where(figure:last-child) {
+ overflow: hidden;
+ border-start-start-radius: unset;
+ border-start-end-radius: unset;
+ border-end-start-radius: inherit;
+ border-end-end-radius: inherit;
+}
+
+.card:focus-visible {
+ outline: 2px solid currentColor;
+ outline-offset: 2px;
+}
+
+.card.bordered {
+ border-width: 1px;
+ --tw-border-opacity: 1;
+ border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));
+}
+
+.card.compact .card-body {
+ padding: 1rem;
+ font-size: 0.875rem;
+ line-height: 1.25rem;
+}
+
+.card.image-full :where(figure) {
+ overflow: hidden;
+ border-radius: inherit;
+}
+
+.checkbox:focus {
+ box-shadow: none;
+}
+
+.checkbox:focus-visible {
+ outline-style: solid;
+ outline-width: 2px;
+ outline-offset: 2px;
+ outline-color: var(--fallback-bc,oklch(var(--bc)/1));
+}
+
+.checkbox:disabled {
+ border-width: 0px;
+ cursor: not-allowed;
+ border-color: transparent;
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));
+ opacity: 0.2;
+}
+
+.checkbox:checked,
+ .checkbox[aria-checked="true"] {
+ background-repeat: no-repeat;
+ animation: checkmark var(--animation-input, 0.2s) ease-out;
+ background-color: var(--chkbg);
+ background-image: linear-gradient(-45deg, transparent 65%, var(--chkbg) 65.99%),
+ linear-gradient(45deg, transparent 75%, var(--chkbg) 75.99%),
+ linear-gradient(-45deg, var(--chkbg) 40%, transparent 40.99%),
+ linear-gradient(
+ 45deg,
+ var(--chkbg) 30%,
+ var(--chkfg) 30.99%,
+ var(--chkfg) 40%,
+ transparent 40.99%
+ ),
+ linear-gradient(-45deg, var(--chkfg) 50%, var(--chkbg) 50.99%);
+}
+
+.checkbox:indeterminate {
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));
+ background-repeat: no-repeat;
+ animation: checkmark var(--animation-input, 0.2s) ease-out;
+ background-image: linear-gradient(90deg, transparent 80%, var(--chkbg) 80%),
+ linear-gradient(-90deg, transparent 80%, var(--chkbg) 80%),
+ linear-gradient(0deg, var(--chkbg) 43%, var(--chkfg) 43%, var(--chkfg) 57%, var(--chkbg) 57%);
+}
+
+@keyframes checkmark {
+ 0% {
+ background-position-y: 5px;
+ }
+
+ 50% {
+ background-position-y: -2px;
+ }
+
+ 100% {
+ background-position-y: 0;
+ }
+}
+
+details.collapse {
+ width: 100%;
+}
+
+details.collapse summary {
+ position: relative;
+ display: block;
+ outline: 2px solid transparent;
+ outline-offset: 2px;
+}
+
+details.collapse summary::-webkit-details-marker {
+ display: none;
+}
+
+.collapse:focus-visible {
+ outline-style: solid;
+ outline-width: 2px;
+ outline-offset: 2px;
+ outline-color: var(--fallback-bc,oklch(var(--bc)/1));
+}
+
+.collapse:has(.collapse-title:focus-visible),
+.collapse:has(> input[type="checkbox"]:focus-visible),
+.collapse:has(> input[type="radio"]:focus-visible) {
+ outline-style: solid;
+ outline-width: 2px;
+ outline-offset: 2px;
+ outline-color: var(--fallback-bc,oklch(var(--bc)/1));
+}
+
+.collapse:not(.collapse-open):not(.collapse-close) > input[type="checkbox"],
+.collapse:not(.collapse-open):not(.collapse-close) > input[type="radio"]:not(:checked),
+.collapse:not(.collapse-open):not(.collapse-close) > .collapse-title {
+ cursor: pointer;
+}
+
+.collapse:focus:not(.collapse-open):not(.collapse-close):not(.collapse[open]) > .collapse-title {
+ cursor: unset;
+}
+
+:where(.collapse > input[type="checkbox"]),
+:where(.collapse > input[type="radio"]) {
+ z-index: 1;
+}
+
+.collapse-title,
+:where(.collapse > input[type="checkbox"]),
+:where(.collapse > input[type="radio"]) {
+ width: 100%;
+ padding: 1rem;
+ padding-inline-end: 3rem;
+ min-height: 3.75rem;
+ transition: background-color 0.2s ease-out;
+}
+
+.collapse[open] > :where(.collapse-content),
+.collapse-open > :where(.collapse-content),
+.collapse:focus:not(.collapse-close) > :where(.collapse-content),
+.collapse:not(.collapse-close) > :where(input[type="checkbox"]:checked ~ .collapse-content),
+.collapse:not(.collapse-close) > :where(input[type="radio"]:checked ~ .collapse-content) {
+ padding-bottom: 1rem;
+ transition: padding 0.2s ease-out,
+ background-color 0.2s ease-out;
+}
+
+.collapse[open].collapse-arrow > .collapse-title:after,
+.collapse-open.collapse-arrow > .collapse-title:after,
+.collapse-arrow:focus:not(.collapse-close) > .collapse-title:after,
+.collapse-arrow:not(.collapse-close) > input[type="checkbox"]:checked ~ .collapse-title:after,
+.collapse-arrow:not(.collapse-close) > input[type="radio"]:checked ~ .collapse-title:after {
+ --tw-translate-y: -50%;
+ --tw-rotate: 225deg;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+
+.collapse[open].collapse-plus > .collapse-title:after,
+.collapse-open.collapse-plus > .collapse-title:after,
+.collapse-plus:focus:not(.collapse-close) > .collapse-title:after,
+.collapse-plus:not(.collapse-close) > input[type="checkbox"]:checked ~ .collapse-title:after,
+.collapse-plus:not(.collapse-close) > input[type="radio"]:checked ~ .collapse-title:after {
+ content: "−";
+}
+
+.dropdown.dropdown-open .dropdown-content,
+.dropdown:focus .dropdown-content,
+.dropdown:focus-within .dropdown-content {
+ --tw-scale-x: 1;
+ --tw-scale-y: 1;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+
+.input input {
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity)));
+ background-color: transparent;
+}
+
+.input input:focus {
+ outline: 2px solid transparent;
+ outline-offset: 2px;
+}
+
+.input[list]::-webkit-calendar-picker-indicator {
+ line-height: 1em;
+}
+
+.input:focus,
+ .input:focus-within {
+ box-shadow: none;
+ border-color: var(--fallback-bc,oklch(var(--bc)/0.2));
+ outline-style: solid;
+ outline-width: 2px;
+ outline-offset: 2px;
+ outline-color: var(--fallback-bc,oklch(var(--bc)/0.2));
+}
+
+.input:has(> input[disabled]),
+ .input-disabled,
+ .input:disabled,
+ .input[disabled] {
+ cursor: not-allowed;
+ --tw-border-opacity: 1;
+ border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));
+ color: var(--fallback-bc,oklch(var(--bc)/0.4));
+}
+
+.input:has(> input[disabled])::-moz-placeholder, .input-disabled::-moz-placeholder, .input:disabled::-moz-placeholder, .input[disabled]::-moz-placeholder {
+ color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));
+ --tw-placeholder-opacity: 0.2;
+}
+
+.input:has(> input[disabled])::placeholder,
+ .input-disabled::placeholder,
+ .input:disabled::placeholder,
+ .input[disabled]::placeholder {
+ color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));
+ --tw-placeholder-opacity: 0.2;
+}
+
+.input:has(> input[disabled]) > input[disabled] {
+ cursor: not-allowed;
+}
+
+.input::-webkit-date-and-time-value {
+ text-align: inherit;
+}
+
+.join > :where(*:not(:first-child)):is(.btn) {
+ margin-inline-start: calc(var(--border-btn) * -1);
+}
+
+.link:focus {
+ outline: 2px solid transparent;
+ outline-offset: 2px;
+}
+
+.link:focus-visible {
+ outline: 2px solid currentColor;
+ outline-offset: 2px;
+}
+
+.menu li > *:not(ul, .menu-title, details, .btn):active,
+.menu li > *:not(ul, .menu-title, details, .btn).active,
+.menu li > details > summary:active {
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));
+ --tw-text-opacity: 1;
+ color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)));
+}
+
+.mockup-phone .display {
+ overflow: hidden;
+ border-radius: 40px;
+ margin-top: -25px;
+}
+
+.mockup-browser .mockup-browser-toolbar .input {
+ position: relative;
+ margin-left: auto;
+ margin-right: auto;
+ display: block;
+ height: 1.75rem;
+ width: 24rem;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));
+ padding-left: 2rem;
+ direction: ltr;
+}
+
+.mockup-browser .mockup-browser-toolbar .input:before {
+ content: "";
+ position: absolute;
+ left: 0.5rem;
+ top: 50%;
+ aspect-ratio: 1 / 1;
+ height: 0.75rem;
+ --tw-translate-y: -50%;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+ border-radius: 9999px;
+ border-width: 2px;
+ border-color: currentColor;
+ opacity: 0.6;
+}
+
+.mockup-browser .mockup-browser-toolbar .input:after {
+ content: "";
+ position: absolute;
+ left: 1.25rem;
+ top: 50%;
+ height: 0.5rem;
+ --tw-translate-y: 25%;
+ --tw-rotate: -45deg;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+ border-radius: 9999px;
+ border-width: 1px;
+ border-color: currentColor;
+ opacity: 0.6;
+}
+
+.modal:not(dialog:not(.modal-open)),
+ .modal::backdrop {
+ background-color: #0006;
+ animation: modal-pop 0.2s ease-out;
+}
+
+.modal-open .modal-box,
+.modal-toggle:checked + .modal .modal-box,
+.modal:target .modal-box,
+.modal[open] .modal-box {
+ --tw-translate-y: 0px;
+ --tw-scale-x: 1;
+ --tw-scale-y: 1;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+}
+
+@keyframes modal-pop {
+ 0% {
+ opacity: 0;
+ }
+}
+
+@keyframes progress-loading {
+ 50% {
+ background-position-x: -115%;
+ }
+}
+
+.radio:focus {
+ box-shadow: none;
+}
+
+.radio:focus-visible {
+ outline-style: solid;
+ outline-width: 2px;
+ outline-offset: 2px;
+ outline-color: var(--fallback-bc,oklch(var(--bc)/1));
+}
+
+.radio:checked,
+ .radio[aria-checked="true"] {
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));
+ background-image: none;
+ animation: radiomark var(--animation-input, 0.2s) ease-out;
+ box-shadow: 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset,
+ 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset;
+}
+
+.radio:disabled {
+ cursor: not-allowed;
+ opacity: 0.2;
+}
+
+@keyframes radiomark {
+ 0% {
+ box-shadow: 0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset,
+ 0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset;
+ }
+
+ 50% {
+ box-shadow: 0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset,
+ 0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset;
+ }
+
+ 100% {
+ box-shadow: 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset,
+ 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset;
+ }
+}
+
+@keyframes rating-pop {
+ 0% {
+ transform: translateY(-0.125em);
+ }
+
+ 40% {
+ transform: translateY(-0.125em);
+ }
+
+ 100% {
+ transform: translateY(0);
+ }
+}
+
+@keyframes skeleton {
+ from {
+ background-position: 150%;
+ }
+
+ to {
+ background-position: -50%;
+ }
+}
+
+.tabs-lifted > .tab:focus-visible {
+ border-end-end-radius: 0;
+ border-end-start-radius: 0;
+}
+
+.tab:is(.tab-active, [aria-selected="true"]):not(.tab-disabled):not([disabled]), .tab:is(input:checked) {
+ border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity)));
+ --tw-border-opacity: 1;
+ --tw-text-opacity: 1;
+}
+
+.tab:focus {
+ outline: 2px solid transparent;
+ outline-offset: 2px;
+}
+
+.tab:focus-visible {
+ outline: 2px solid currentColor;
+ outline-offset: -5px;
+}
+
+.tab-disabled,
+ .tab[disabled] {
+ cursor: not-allowed;
+ color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));
+ --tw-text-opacity: 0.2;
+}
+
+.tabs-bordered > .tab {
+ border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity)));
+ --tw-border-opacity: 0.2;
+ border-style: solid;
+ border-bottom-width: calc(var(--tab-border, 1px) + 1px);
+}
+
+.tabs-lifted > .tab {
+ border: var(--tab-border, 1px) solid transparent;
+ border-width: 0 0 var(--tab-border, 1px) 0;
+ border-start-start-radius: var(--tab-radius, 0.5rem);
+ border-start-end-radius: var(--tab-radius, 0.5rem);
+ border-bottom-color: var(--tab-border-color);
+ padding-inline-start: var(--tab-padding, 1rem);
+ padding-inline-end: var(--tab-padding, 1rem);
+ padding-top: var(--tab-border, 1px);
+}
+
+.tabs-lifted > .tab:is(.tab-active, [aria-selected="true"]):not(.tab-disabled):not([disabled]), .tabs-lifted > .tab:is(input:checked) {
+ background-color: var(--tab-bg);
+ border-width: var(--tab-border, 1px) var(--tab-border, 1px) 0 var(--tab-border, 1px);
+ border-inline-start-color: var(--tab-border-color);
+ border-inline-end-color: var(--tab-border-color);
+ border-top-color: var(--tab-border-color);
+ padding-inline-start: calc(var(--tab-padding, 1rem) - var(--tab-border, 1px));
+ padding-inline-end: calc(var(--tab-padding, 1rem) - var(--tab-border, 1px));
+ padding-bottom: var(--tab-border, 1px);
+ padding-top: 0;
+}
+
+.tabs-lifted > .tab:is(.tab-active, [aria-selected="true"]):not(.tab-disabled):not([disabled]):before, .tabs-lifted > .tab:is(input:checked):before {
+ z-index: 1;
+ content: "";
+ display: block;
+ position: absolute;
+ width: calc(100% + var(--tab-radius, 0.5rem) * 2);
+ height: var(--tab-radius, 0.5rem);
+ bottom: 0;
+ background-size: var(--tab-radius, 0.5rem);
+ background-position: top left,
+ top right;
+ background-repeat: no-repeat;
+ --tab-grad: calc(69% - var(--tab-border, 1px));
+ --radius-start: radial-gradient(
+ circle at top left,
+ transparent var(--tab-grad),
+ var(--tab-border-color) calc(var(--tab-grad) + 0.25px),
+ var(--tab-border-color) calc(var(--tab-grad) + var(--tab-border, 1px)),
+ var(--tab-bg) calc(var(--tab-grad) + var(--tab-border, 1px) + 0.25px)
+ );
+ --radius-end: radial-gradient(
+ circle at top right,
+ transparent var(--tab-grad),
+ var(--tab-border-color) calc(var(--tab-grad) + 0.25px),
+ var(--tab-border-color) calc(var(--tab-grad) + var(--tab-border, 1px)),
+ var(--tab-bg) calc(var(--tab-grad) + var(--tab-border, 1px) + 0.25px)
+ );
+ background-image: var(--radius-start), var(--radius-end);
+}
+
+.tabs-lifted > .tab:is(.tab-active, [aria-selected="true"]):not(.tab-disabled):not([disabled]):first-child:before, .tabs-lifted > .tab:is(input:checked):first-child:before {
+ background-image: var(--radius-end);
+ background-position: top right;
+}
+
+[dir="rtl"] .tabs-lifted > .tab:is(.tab-active, [aria-selected="true"]):not(.tab-disabled):not([disabled]):first-child:before, [dir="rtl"] .tabs-lifted > .tab:is(input:checked):first-child:before {
+ background-image: var(--radius-start);
+ background-position: top left;
+}
+
+.tabs-lifted > .tab:is(.tab-active, [aria-selected="true"]):not(.tab-disabled):not([disabled]):last-child:before, .tabs-lifted > .tab:is(input:checked):last-child:before {
+ background-image: var(--radius-start);
+ background-position: top left;
+}
+
+[dir="rtl"] .tabs-lifted > .tab:is(.tab-active, [aria-selected="true"]):not(.tab-disabled):not([disabled]):last-child:before, [dir="rtl"] .tabs-lifted > .tab:is(input:checked):last-child:before {
+ background-image: var(--radius-end);
+ background-position: top right;
+}
+
+.tabs-lifted
+ > :is(.tab-active, [aria-selected="true"]):not(.tab-disabled):not([disabled])
+ + .tabs-lifted
+ :is(.tab-active, [aria-selected="true"]):not(.tab-disabled):not([disabled]):before, .tabs-lifted > .tab:is(input:checked) + .tabs-lifted .tab:is(input:checked):before {
+ background-image: var(--radius-end);
+ background-position: top right;
+}
+
+.tabs-boxed .tab {
+ border-radius: var(--rounded-btn, 0.5rem);
+}
+
+.table:where([dir="rtl"], [dir="rtl"] *) {
+ text-align: right;
+}
+
+.table :where(th, td) {
+ padding-left: 1rem;
+ padding-right: 1rem;
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+ vertical-align: middle;
+}
+
+.table tr.active,
+ .table tr.active:nth-child(even),
+ .table-zebra tbody tr:nth-child(even) {
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));
+}
+
+.table-zebra tr.active,
+ .table-zebra tr.active:nth-child(even),
+ .table-zebra-zebra tbody tr:nth-child(even) {
+ --tw-bg-opacity: 1;
+ background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));
+}
+
+.table :where(thead tr, tbody tr:not(:last-child), tbody tr:first-child:last-child) {
+ border-bottom-width: 1px;
+ --tw-border-opacity: 1;
+ border-bottom-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));
+}
+
+.table :where(thead, tfoot) {
+ white-space: nowrap;
+ font-size: 0.75rem;
+ line-height: 1rem;
+ font-weight: 700;
+ color: var(--fallback-bc,oklch(var(--bc)/0.6));
+}
+
+.table :where(tfoot) {
+ border-top-width: 1px;
+ --tw-border-opacity: 1;
+ border-top-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));
+}
+
+@keyframes toast-pop {
+ 0% {
+ transform: scale(0.9);
+ opacity: 0;
+ }
+
+ 100% {
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+.btm-nav-xs > *:where(.active) {
+ border-top-width: 1px;
+}
+
+.btm-nav-sm > *:where(.active) {
+ border-top-width: 2px;
+}
+
+.btm-nav-md > *:where(.active) {
+ border-top-width: 2px;
+}
+
+.btm-nav-lg > *:where(.active) {
+ border-top-width: 4px;
+}
+
+.tabs-md :where(.tab) {
+ height: 2rem;
+ font-size: 0.875rem;
+ line-height: 1.25rem;
+ line-height: 2;
+ --tab-padding: 1rem;
+}
+
+.tabs-lg :where(.tab) {
+ height: 3rem;
+ font-size: 1.125rem;
+ line-height: 1.75rem;
+ line-height: 2;
+ --tab-padding: 1.25rem;
+}
+
+.tabs-sm :where(.tab) {
+ height: 1.5rem;
+ font-size: 0.875rem;
+ line-height: .75rem;
+ --tab-padding: 0.75rem;
+}
+
+.tabs-xs :where(.tab) {
+ height: 1.25rem;
+ font-size: 0.75rem;
+ line-height: .75rem;
+ --tab-padding: 0.5rem;
+}
+
+.card-compact .card-body {
+ padding: 1rem;
+ font-size: 0.875rem;
+ line-height: 1.25rem;
+}
+
+.card-normal .card-body {
+ padding: var(--padding-card, 2rem);
+ font-size: 1rem;
+ line-height: 1.5rem;
+}
+
+.join.join-vertical > :where(*:not(:first-child)):is(.btn) {
+ margin-top: calc(var(--border-btn) * -1);
+}
+
+.join.join-horizontal > :where(*:not(:first-child)):is(.btn) {
+ margin-inline-start: calc(var(--border-btn) * -1);
+}
+
+.table-sm :not(thead):not(tfoot) tr {
+ font-size: 0.875rem;
+ line-height: 1.25rem;
+}
+
+.table-sm :where(th, td) {
+ padding-left: 0.75rem;
+ padding-right: 0.75rem;
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border-width: 0;
+}
+
+.collapse {
+ visibility: collapse;
+}
+
+.static {
+ position: static;
+}
+
+.m-0 {
+ margin: 0px;
+}
+
+.m-3 {
+ margin: 0.75rem;
+}
+
+.mx-auto {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.my-2 {
+ margin-top: 0.5rem;
+ margin-bottom: 0.5rem;
+}
+
+.mb-0 {
+ margin-bottom: 0px;
+}
+
+.mb-2 {
+ margin-bottom: 0.5rem;
+}
+
+.ml-2 {
+ margin-left: 0.5rem;
+}
+
+.block {
+ display: block;
+}
+
+.table {
+ display: table;
+}
+
+.grid {
+ display: grid;
+}
+
+.hidden {
+ display: none;
+}
+
+.h-auto {
+ height: auto;
+}
+
+.border {
+ border-width: 1px;
+}
+
+.bg-blue-500 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(59 130 246 / var(--tw-bg-opacity));
+}
+
+.p-3 {
+ padding: 0.75rem;
+}
+
+.pe-3 {
+ padding-inline-end: 0.75rem;
+}
+
+.text-2xl {
+ font-size: 1.5rem;
+ line-height: 2rem;
+}
+
+.text-3xl {
+ font-size: 1.875rem;
+ line-height: 2.25rem;
+}
+
+.text-4xl {
+ font-size: 2.25rem;
+ line-height: 2.5rem;
+}
+
+.text-white {
+ --tw-text-opacity: 1;
+ color: rgb(255 255 255 / var(--tw-text-opacity));
+} \ No newline at end of file
diff --git a/core/templates/core/base.html b/core/templates/core/base.html
index 1c2bfe0..65c1842 100644
--- a/core/templates/core/base.html
+++ b/core/templates/core/base.html
@@ -5,10 +5,11 @@
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
- <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
+{# <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">#}
+ <link rel="stylesheet" href="{% static 'css/output.css' %}">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700' rel='stylesheet' type='text/css'/>
- <link rel="stylesheet" href="{% static 'css/styles.css' %}"/>
+{# <link rel="stylesheet" href="{% static 'css/styles.css' %}"/>#}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://unpkg.com/htmx.org@1.9.0" integrity="sha384-aOxz9UdWG0yBiyrTwPeMibmaoq07/d3a96GCbb9x60f3mOt5zwkjdbcHFnKH8qls" crossorigin="anonymous"></script>
<title>{% block title %}{% endblock title %}</title>
@@ -26,14 +27,14 @@
</head>
<body>
{% block navbar %}
-<div class="w3-bar w3-border w3-blue w3-padding-16">
+<div class="navbar bg-blue-500">
<!-- <a href="/" class="w3-bar-item w3-button w3-dark-gray w3-xxlarge"><i class="fa fa-home"></i></a> -->
- <a href="#" class="w3-bar-item w3-button w3-large">Home</a>
- <a href="{% url 'engagements:home' %}" class="w3-bar-item w3-button w3-large">Engagement Plans</a>
- <a href="{% url 'engagements:regulatedentities' %}" class="w3-bar-item w3-button w3-large">Regulated Entities</a>
- <a href="#" class="w3-bar-item w3-button w3-large">Reporting</a>
- <a href="#" class="w3-bar-item w3-button w3-large">Dashboards</a>
- <div class="w3-dropdown-hover">
+ <a href="#" class="text-3xl pe-3">Home</a>
+ <a href="{% url 'engagements:home' %}" class="text-3xl link pe-3">Engagement Plans</a>
+ <a href="{% url 'engagements:regulatedentities' %}" class="text-3xl link pe-3">Regulated Entities</a>
+ <a href="#" class="text-3xl link pe-3">Reporting</a>
+ <a href="#" class="text-3xl link pe-3">Dashboards</a>
+ <div class="dropdown">
<button class="w3-button w3-large">Teams</button>
<div class="w3-dropdown-content w3-bar-block w3-card-4">
<a href="#" class="w3-bar-item w3-button">Submarines and Propulsion</a>
@@ -50,7 +51,7 @@
</div>
{% endblock navbar %}
- <div class="w3-container">
+ <div class="container mx-auto">
{% block content %}
{% endblock content %}
</div>
diff --git a/core/templates/core/index.html b/core/templates/core/index.html
index 1914c50..a2c9307 100644
--- a/core/templates/core/index.html
+++ b/core/templates/core/index.html
@@ -5,96 +5,100 @@
{% block content %}
-<div class="w3-container">
- <h2>DED - Information Management for DefNucSyR</h2>
- <div class="w3-panel w3-leftbar w3-sand w3-xlarge w3-serif w3-display-container">
+ <div class="bg-blue-500 text-white p-3 my-2">
+ This is a Tailwind styled div.
+ </div>
+
+ <div class="container mx-auto">
+ <h1 class="text-4xl">DED - Information Management for DefNucSyR</h1>
+ <div class="w3-panel w3-leftbar w3-sand w3-xlarge w3-serif w3-display-container">
<span onclick="this.parentElement.style.display='none'"
class="w3-button w3-display-topright">&times;</span>
- <h3>Quote of the day</h3>
- <p>This is a placeholder for some interesting test. Use of lose.</p>
- </div>
+ <h3>Quote of the day</h3>
+ <p>This is a placeholder for some interesting test. Use of lose.</p>
+ </div>
- <p>{% lorem %}</p>
+ <p>{% lorem %}</p>
- <div class="w3-card-2 w3-margin-top">
- <header class="w3-container w3-light-blue">
- <h3>Submarines and Propulsion</h3>
- </header>
- <div class="w3-container">
+ <div class="container">
+ <header class="text-3xl">
+ <h3>Submarines and Propulsion</h3>
+ </header>
+ <div class="w3-container">
- <h3>Assessments & Inspections:</h3>
- <table class="w3-table w3-bordered w3-margin-bottom">
- <tr class="w3-light-blue">
- <th>Start Date</th>
- <th>End Date</th>
- <th>Event</th>
- <th>Site</th>
- <th>Inspectors</th>
- </tr>
- {% for s in subs_regulatory %}
- <tr>
- <td>{{ s.proposed_start_date|date:'j M y' }}</td>
- <td>{{ s.proposed_end_date|date:'j M y' }}</td>
- <td><a href="{% url 'engagements:engagement_detail' s.pk %}">{{ s }}</a></td>
- <td>{{ s.external_party }}</td>
- <td>
- {% if s.officers.all %}
- {{ s.officers.all|commalist }}
- {% endif %}
- </td>
- </tr>
- {% endfor %}
- </table>
- <div class="w3-cell-row">
- <div class="w3-cell w3-left">
- <a href="{% url 'engagements:create' 'reg' %}" class="w3-button w3-round w3-blue">Add New</a>
+ <h3 class="text-2xl">Assessments & Inspections:</h3>
+ <table class="table table-zebra">
+ <tr>
+ <th>Start Date</th>
+ <th>End Date</th>
+ <th>Event</th>
+ <th>Site</th>
+ <th>Inspectors</th>
+ </tr>
+ {% for s in subs_regulatory %}
+ <tr>
+ <td>{{ s.proposed_start_date|date:'j M y' }}</td>
+ <td>{{ s.proposed_end_date|date:'j M y' }}</td>
+ <td><a href="{% url 'engagements:engagement_detail' s.pk %}">{{ s }}</a></td>
+ <td>{{ s.external_party }}</td>
+ <td>
+ {% if s.officers.all %}
+ {{ s.officers.all|commalist }}
+ {% endif %}
+ </td>
+ </tr>
+ {% endfor %}
+ </table>
+ <div class="w3-cell-row">
+ <div class="w3-cell w3-left">
+ <a href="{% url 'engagements:create' 'reg' %}" class="w3-button w3-round w3-blue">Add New</a>
+ </div>
+ <div class="w3-cell w3-right">
+ <small>See <a href="#">Enagements</a> for full list</small>
+ </div>
</div>
- <div class="w3-cell w3-right">
- <small>See <a href="#">Enagements</a> for full list</small>
- </div>
- </div>
<hr>
- <h4>Non-regulatory events:</h4>
- <table class="w3-table w3-bordered w3-margin-bottom">
- <tr class="w3-light-blue">
- <th>Start Date</th>
- <th>End Date</th>
- <th>Summary</th>
- </tr>
- {% if not subs %}
- <tr>
- <td>None</td>
- <td>None</td>
- <td>None</td>
- </tr>
- {% else %}
- {% for s in subs %}
- <tr>
- <td>{{ s.proposed_start_date|date:'j M y' }}</td>
- <td>{{ s.proposed_end_date|date:'j M y' }}</td>
- <td><a href="#">{{ s }}</a></td>
- </tr>
- {% endfor %}
- {% endif %}
- </table>
- <div>
- <button class="w3-button w3-round w3-blue">Add New</button>
- </div>
+ <h4>Non-regulatory events:</h4>
+ <table class="table table-zebra">
+ <tr>
+ <th>Start Date</th>
+ <th>End Date</th>
+ <th>Summary</th>
+ </tr>
+ {% if not subs %}
+ <tr>
+ <td>None</td>
+ <td>None</td>
+ <td>None</td>
+ </tr>
+ {% else %}
+ {% for s in subs %}
+ <tr>
+ <td>{{ s.proposed_start_date|date:'j M y' }}</td>
+ <td>{{ s.proposed_end_date|date:'j M y' }}</td>
+ <td><a href="#">{{ s }}</a></td>
+ </tr>
+ {% endfor %}
+ {% endif %}
+ </table>
+ <div>
+ <button class="w3-button w3-round w3-blue">Add New</button>
+ </div>
- <p>{% lorem %}</p>
+ <p>{% lorem %}</p>
+ </div>
</div>
- </div>
- <div class="w3-card-2 w3-margin-top">
- <header class="w3-container w3-light-blue">
- <h3>Transport</h3>
- </header>
- <div class="w3-container">
- <p>{% lorem %}</p>
+ <div class="w3-card-2 w3-margin-top">
+ <header class="w3-container w3-light-blue">
+ <h3>Transport</h3>
+ </header>
+ <div class="w3-container">
+ <p>{% lorem %}</p>
+ </div>
</div>
- </div>
-</div>
+ </div>
{% endblock content %}