tintora 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -70,7 +70,7 @@ Colours, radii, type and shadows are CSS custom properties prefixed `--tintora-`
70
70
 
71
71
  ### Server Components
72
72
 
73
- Components that use hooks or context ship with `'use client'`, and the rest (`Alert`, `Button`, `Card`, `Chip`, `Dot`, `IconButton`, `SearchInput`, `SettingsRow`, `Skeleton`, `Spinner`, `Tag`) are plain. So you can import any of them in a Next.js Server Component without adding the directive yourself:
73
+ Components that use hooks or context ship with `'use client'`, and the rest (`Alert`, `Button`, `Card`, `Chip`, `Dot`, `IconButton`, `Link`, `SearchInput`, `SettingsRow`, `Skeleton`, `Spinner`, `Tag`) are plain. So you can import any of them in a Next.js Server Component without adding the directive yourself:
74
74
 
75
75
  ```tsx
76
76
  // app/loading.tsx, a Server Component
@@ -126,8 +126,9 @@ Every component has a story with all its variants in the [Storybook](https://fel
126
126
 
127
127
  | Component | What it is |
128
128
  | ------------ | ------------------------------------------------------------------------------ |
129
- | `Button` | `primary`, `secondary`, `outline` and `ghost`, with icons and a loading state. |
129
+ | `Button` | Four variants, icons, a loading state, and `as` to render a link. |
130
130
  | `IconButton` | A round, field or nav button with an icon and a required `aria-label`. |
131
+ | `Link` | An `<a>`, or any component via `as` (e.g. Next's `Link`), in Tintora's style. |
131
132
  | `Chip` | A pill button, or a toggle when `selected` is set. |
132
133
  | `Toggle` | A two-option segmented control (`ToggleItem`), such as light and dark. |
133
134
  | `Tabs` | A tab list (`Tab`), as a segmented pill or an underline. Arrow-key navigation. |
@@ -1,14 +1,27 @@
1
- import type { ButtonHTMLAttributes, ReactNode } from 'react';
1
+ import type { ComponentPropsWithoutRef, ElementType, ReactNode } from 'react';
2
2
  import './Button.css';
3
3
  type ButtonVariants = 'primary' | 'secondary' | 'outline' | 'ghost';
4
4
  type ButtonSizes = 'small' | 'medium' | 'large';
5
- export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
5
+ export type ButtonProps<C extends ElementType = 'button'> = {
6
+ /**
7
+ * What to render: `'button'`, `'a'`, or a router's link such as Next's
8
+ * `Link`. Its own props (`href`, `to`, ...) are then accepted and
9
+ * type-checked. @default 'button'
10
+ */
11
+ as?: C;
6
12
  variant: ButtonVariants;
7
13
  size?: ButtonSizes;
14
+ /**
15
+ * A `button` gets the `disabled` attribute. Anything else gets
16
+ * `aria-disabled`, is taken out of the tab order and ignores the pointer.
17
+ */
18
+ disabled?: boolean;
8
19
  loading?: boolean;
9
20
  leadingIcon?: ReactNode;
10
21
  trailingIcon?: ReactNode;
11
22
  fullWidth?: boolean;
12
- }
13
- export declare function Button({ children, className, variant, disabled, leadingIcon, trailingIcon, size, type, loading, fullWidth, ...props }: ButtonProps): import("react").JSX.Element;
23
+ className?: string;
24
+ children?: ReactNode;
25
+ } & Omit<ComponentPropsWithoutRef<C>, 'as' | 'variant' | 'size' | 'disabled' | 'loading' | 'leadingIcon' | 'trailingIcon' | 'fullWidth' | 'className' | 'children'>;
26
+ export declare function Button<C extends ElementType = 'button'>({ as, children, className, variant, disabled, leadingIcon, trailingIcon, size, loading, fullWidth, ...props }: ButtonProps<C>): import("react").JSX.Element;
14
27
  export {};
@@ -1 +1 @@
1
- const e=require("../utils/clsx.cjs"),t=require("../Spinner/Spinner2.cjs");;/* empty css */let n=require("react/jsx-runtime");function r({children:r,className:i,variant:a,disabled:o,leadingIcon:s,trailingIcon:c,size:l=`medium`,type:u=`button`,loading:d=!1,fullWidth:f=!1,...p}){return(0,n.jsxs)(`button`,{type:u,className:e.clsx(`tintora-button`,`tintora-button--${a}`,`tintora-button--${l}`,{"tintora-button--leading-icon":!!s||d,"tintora-button--loading":d,"tintora-button--trailing-icon":!!c,"tintora-button--full-width":f},i),disabled:o||d,"aria-busy":d||void 0,...p,children:[d&&(0,n.jsx)(`span`,{className:`tintora-button__icon`,"aria-hidden":`true`,children:(0,n.jsx)(t.Spinner,{size:`small`,color:`current`})}),!d&&s&&(0,n.jsx)(`span`,{className:`tintora-button__icon`,"aria-hidden":`true`,children:s}),r,c&&(0,n.jsx)(`span`,{className:`tintora-button__icon`,"aria-hidden":`true`,children:c})]})}exports.Button=r;
1
+ const e=require("../utils/clsx.cjs"),t=require("../Spinner/Spinner2.cjs");;/* empty css */let n=require("react/jsx-runtime");function r({as:r,children:i,className:a,variant:o,disabled:s,leadingIcon:c,trailingIcon:l,size:u=`medium`,loading:d=!1,fullWidth:f=!1,...p}){let m=r??`button`,h=s||d;return(0,n.jsxs)(m,{className:e.clsx(`tintora-button`,`tintora-button--${o}`,`tintora-button--${u}`,{"tintora-button--leading-icon":!!c||d,"tintora-button--loading":d,"tintora-button--trailing-icon":!!l,"tintora-button--full-width":f},a),...m===`button`?{type:`button`,disabled:h}:h&&{"aria-disabled":!0,tabIndex:-1},"aria-busy":d||void 0,...p,children:[d&&(0,n.jsx)(`span`,{className:`tintora-button__icon`,"aria-hidden":`true`,children:(0,n.jsx)(t.Spinner,{size:`small`,color:`current`})}),!d&&c&&(0,n.jsx)(`span`,{className:`tintora-button__icon`,"aria-hidden":`true`,children:c}),i,l&&(0,n.jsx)(`span`,{className:`tintora-button__icon`,"aria-hidden":`true`,children:l})]})}exports.Button=r;
@@ -3,16 +3,22 @@ import { Spinner as t } from "../Spinner/Spinner2.js";
3
3
  /* empty css */
4
4
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
5
  //#region src/Button/Button.tsx
6
- function i({ children: i, className: a, variant: o, disabled: s, leadingIcon: c, trailingIcon: l, size: u = "medium", type: d = "button", loading: f = !1, fullWidth: p = !1, ...m }) {
7
- return /* @__PURE__ */ r("button", {
8
- type: d,
9
- className: e("tintora-button", `tintora-button--${o}`, `tintora-button--${u}`, {
10
- "tintora-button--leading-icon": !!c || f,
6
+ function i({ as: i, children: a, className: o, variant: s, disabled: c, leadingIcon: l, trailingIcon: u, size: d = "medium", loading: f = !1, fullWidth: p = !1, ...m }) {
7
+ let h = i ?? "button", g = c || f;
8
+ return /* @__PURE__ */ r(h, {
9
+ className: e("tintora-button", `tintora-button--${s}`, `tintora-button--${d}`, {
10
+ "tintora-button--leading-icon": !!l || f,
11
11
  "tintora-button--loading": f,
12
- "tintora-button--trailing-icon": !!l,
12
+ "tintora-button--trailing-icon": !!u,
13
13
  "tintora-button--full-width": p
14
- }, a),
15
- disabled: s || f,
14
+ }, o),
15
+ ...h === "button" ? {
16
+ type: "button",
17
+ disabled: g
18
+ } : g && {
19
+ "aria-disabled": !0,
20
+ tabIndex: -1
21
+ },
16
22
  "aria-busy": f || void 0,
17
23
  ...m,
18
24
  children: [
@@ -24,16 +30,16 @@ function i({ children: i, className: a, variant: o, disabled: s, leadingIcon: c,
24
30
  color: "current"
25
31
  })
26
32
  }),
27
- !f && c && /* @__PURE__ */ n("span", {
33
+ !f && l && /* @__PURE__ */ n("span", {
28
34
  className: "tintora-button__icon",
29
35
  "aria-hidden": "true",
30
- children: c
36
+ children: l
31
37
  }),
32
- i,
33
- l && /* @__PURE__ */ n("span", {
38
+ a,
39
+ u && /* @__PURE__ */ n("span", {
34
40
  className: "tintora-button__icon",
35
41
  "aria-hidden": "true",
36
- children: l
42
+ children: u
37
43
  })
38
44
  ]
39
45
  });
@@ -0,0 +1,23 @@
1
+ import type { ComponentPropsWithoutRef, ElementType } from 'react';
2
+ import './Link.css';
3
+ export type LinkProps<C extends ElementType = 'a'> = {
4
+ /**
5
+ * What to render: `'a'`, or a router's link such as Next's `Link`. Its own
6
+ * props (`href`, `to`, `prefetch`, ...) are then accepted and type-checked.
7
+ * @default 'a'
8
+ */
9
+ as?: C;
10
+ /**
11
+ * `accent` and `white` are coloured and underlined. `transparent` applies
12
+ * no style (it inherits the colour and has no underline), for wrapping a
13
+ * card or any block; only the keyboard focus ring stays.
14
+ * @default 'accent'
15
+ */
16
+ variant?: 'accent' | 'white' | 'transparent';
17
+ className?: string;
18
+ } & Omit<ComponentPropsWithoutRef<C>, 'as' | 'variant' | 'className'>;
19
+ /**
20
+ * Tintora's link style on an `<a>`, or on any component that takes
21
+ * `className` and `children`, so a router link keeps client-side navigation.
22
+ */
23
+ export declare function Link<C extends ElementType = 'a'>({ as, variant, className, ...props }: LinkProps<C>): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ const e=require("../utils/clsx.cjs");;/* empty css */let t=require("react/jsx-runtime");function n({as:n,variant:r=`accent`,className:i,...a}){return(0,t.jsx)(n??`a`,{...a,className:e.clsx(`tintora-link`,`tintora-link--${r}`,i)})}exports.Link=n;
@@ -0,0 +1,12 @@
1
+ import { clsx as e } from "../utils/clsx.js";
2
+ /* empty css */
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ //#region src/Link/Link.tsx
5
+ function n({ as: n, variant: r = "accent", className: i, ...a }) {
6
+ return /* @__PURE__ */ t(n ?? "a", {
7
+ ...a,
8
+ className: e("tintora-link", `tintora-link--${r}`, i)
9
+ });
10
+ }
11
+ //#endregion
12
+ export { n as Link };
@@ -24,11 +24,17 @@ export interface ModalProps extends Omit<DialogHTMLAttributes<HTMLDialogElement>
24
24
  role?: 'dialog' | 'alertdialog';
25
25
  /** Show the corner close button. @default true */
26
26
  closeButton?: boolean;
27
+ /**
28
+ * The close button's accessible name; set it to translate the label. It is
29
+ * not `aria-label` because that would label the dialog itself.
30
+ * @default 'Close'
31
+ */
32
+ closeLabel?: string;
27
33
  }
28
34
  /**
29
35
  * A modal over a native `<dialog>`: the browser traps focus, makes the page
30
36
  * inert, and returns focus to the trigger on close. Initial focus goes to the
31
37
  * first focusable element, or to the one marked `data-autofocus`.
32
38
  */
33
- export declare function Modal({ open, onClose, title, description, icon, status, actions, size, align, role, closeButton, className, children, ...props }: ModalProps): import("react").JSX.Element;
39
+ export declare function Modal({ open, onClose, title, description, icon, status, actions, size, align, role, closeButton, closeLabel, className, children, ...props }: ModalProps): import("react").JSX.Element;
34
40
  export {};
@@ -1 +1 @@
1
- "use client";const e=require("../utils/clsx.cjs"),t=require("../utils/outside.cjs"),n=require("../IconButton/IconButton2.cjs");;/* empty css */let r=require("react/jsx-runtime"),i=require("react");var a=()=>(0,r.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:(0,r.jsx)(`path`,{d:`M18 6L6 18M6 6l12 12`})});function o({open:o,onClose:s,title:c,description:l,icon:u,status:d=`info`,actions:f,size:p=`md`,align:m=`start`,role:h=`dialog`,closeButton:g=!0,className:_,children:v,...y}){let b=(0,i.useRef)(null),x=(0,i.useId)(),S=(0,i.useId)();return(0,i.useEffect)(()=>{let e=b.current;e&&(o&&!e.open?(e.showModal(),e.querySelector(`[data-autofocus]`)?.focus()):!o&&e.open&&e.close())},[o]),(0,r.jsxs)(`dialog`,{...y,ref:b,role:h,"aria-labelledby":x,"aria-describedby":l?S:void 0,className:e.clsx(`tintora-modal`,`tintora-modal--${p}`,m===`center`&&`tintora-modal--center`,_),onCancel:e=>{e.preventDefault(),s()},onClick:e=>{h===`dialog`&&t.isOutsideElementClicked(e,s)},children:[u&&(0,r.jsx)(`span`,{className:e.clsx(`tintora-modal__icon`,`tintora-modal__icon--${d}`),"aria-hidden":`true`,children:u}),(0,r.jsxs)(`div`,{className:`tintora-modal__text`,children:[(0,r.jsx)(`h2`,{id:x,className:`tintora-modal__title`,children:c}),l&&(0,r.jsx)(`p`,{id:S,className:`tintora-modal__description`,children:l})]}),g&&(0,r.jsx)(n.IconButton,{className:`tintora-modal__close`,size:`medium`,"aria-label":`Close`,icon:(0,r.jsx)(a,{}),onClick:s}),v,f&&(0,r.jsx)(`div`,{className:`tintora-modal__actions`,children:f})]})}exports.Modal=o;
1
+ "use client";const e=require("../utils/clsx.cjs"),t=require("../utils/outside.cjs"),n=require("../IconButton/IconButton2.cjs");;/* empty css */let r=require("react/jsx-runtime"),i=require("react");var a=()=>(0,r.jsx)(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:(0,r.jsx)(`path`,{d:`M18 6L6 18M6 6l12 12`})});function o({open:o,onClose:s,title:c,description:l,icon:u,status:d=`info`,actions:f,size:p=`md`,align:m=`start`,role:h=`dialog`,closeButton:g=!0,closeLabel:_=`Close`,className:v,children:y,...b}){let x=(0,i.useRef)(null),S=(0,i.useId)(),C=(0,i.useId)();return(0,i.useEffect)(()=>{let e=x.current;e&&(o&&!e.open?(e.showModal(),e.querySelector(`[data-autofocus]`)?.focus()):!o&&e.open&&e.close())},[o]),(0,r.jsxs)(`dialog`,{...b,ref:x,role:h,"aria-labelledby":S,"aria-describedby":l?C:void 0,className:e.clsx(`tintora-modal`,`tintora-modal--${p}`,m===`center`&&`tintora-modal--center`,v),onCancel:e=>{e.preventDefault(),s()},onClick:e=>{h===`dialog`&&t.isOutsideElementClicked(e,s)},children:[u&&(0,r.jsx)(`span`,{className:e.clsx(`tintora-modal__icon`,`tintora-modal__icon--${d}`),"aria-hidden":`true`,children:u}),(0,r.jsxs)(`div`,{className:`tintora-modal__text`,children:[(0,r.jsx)(`h2`,{id:S,className:`tintora-modal__title`,children:c}),l&&(0,r.jsx)(`p`,{id:C,className:`tintora-modal__description`,children:l})]}),g&&(0,r.jsx)(n.IconButton,{className:`tintora-modal__close`,size:`medium`,"aria-label":_,icon:(0,r.jsx)(a,{}),onClick:s}),y,f&&(0,r.jsx)(`div`,{className:`tintora-modal__actions`,children:f})]})}exports.Modal=o;
@@ -16,18 +16,18 @@ var c = () => /* @__PURE__ */ r("svg", {
16
16
  strokeLinecap: "round",
17
17
  children: /* @__PURE__ */ r("path", { d: "M18 6L6 18M6 6l12 12" })
18
18
  });
19
- function l({ open: l, onClose: u, title: d, description: f, icon: p, status: m = "info", actions: h, size: g = "md", align: _ = "start", role: v = "dialog", closeButton: y = !0, className: b, children: x, ...S }) {
20
- let C = s(null), w = o(), T = o();
19
+ function l({ open: l, onClose: u, title: d, description: f, icon: p, status: m = "info", actions: h, size: g = "md", align: _ = "start", role: v = "dialog", closeButton: y = !0, closeLabel: b = "Close", className: x, children: S, ...C }) {
20
+ let w = s(null), T = o(), E = o();
21
21
  return a(() => {
22
- let e = C.current;
22
+ let e = w.current;
23
23
  e && (l && !e.open ? (e.showModal(), e.querySelector("[data-autofocus]")?.focus()) : !l && e.open && e.close());
24
24
  }, [l]), /* @__PURE__ */ i("dialog", {
25
- ...S,
26
- ref: C,
25
+ ...C,
26
+ ref: w,
27
27
  role: v,
28
- "aria-labelledby": w,
29
- "aria-describedby": f ? T : void 0,
30
- className: e("tintora-modal", `tintora-modal--${g}`, _ === "center" && "tintora-modal--center", b),
28
+ "aria-labelledby": T,
29
+ "aria-describedby": f ? E : void 0,
30
+ className: e("tintora-modal", `tintora-modal--${g}`, _ === "center" && "tintora-modal--center", x),
31
31
  onCancel: (e) => {
32
32
  e.preventDefault(), u();
33
33
  },
@@ -43,11 +43,11 @@ function l({ open: l, onClose: u, title: d, description: f, icon: p, status: m =
43
43
  /* @__PURE__ */ i("div", {
44
44
  className: "tintora-modal__text",
45
45
  children: [/* @__PURE__ */ r("h2", {
46
- id: w,
46
+ id: T,
47
47
  className: "tintora-modal__title",
48
48
  children: d
49
49
  }), f && /* @__PURE__ */ r("p", {
50
- id: T,
50
+ id: E,
51
51
  className: "tintora-modal__description",
52
52
  children: f
53
53
  })]
@@ -55,11 +55,11 @@ function l({ open: l, onClose: u, title: d, description: f, icon: p, status: m =
55
55
  y && /* @__PURE__ */ r(n, {
56
56
  className: "tintora-modal__close",
57
57
  size: "medium",
58
- "aria-label": "Close",
58
+ "aria-label": b,
59
59
  icon: /* @__PURE__ */ r(c, {}),
60
60
  onClick: u
61
61
  }),
62
- x,
62
+ S,
63
63
  h && /* @__PURE__ */ r("div", {
64
64
  className: "tintora-modal__actions",
65
65
  children: h
@@ -5,6 +5,8 @@ export interface SpinnerProps {
5
5
  size?: SpinnerSizes;
6
6
  /** `accent` uses the brand fill; `current` follows the surrounding text colour. */
7
7
  color?: SpinnerColors;
8
+ /** The accessible name; set it to translate the label. @default 'Loading' */
9
+ 'aria-label'?: string;
8
10
  }
9
11
  export declare const SPINNER_SIZE_MAP: {
10
12
  readonly small: {
@@ -23,5 +25,5 @@ export declare const SPINNER_SIZE_MAP: {
23
25
  readonly strokeWidth: 2.4;
24
26
  };
25
27
  };
26
- export declare function Spinner({ size, color }: SpinnerProps): import("react").JSX.Element;
28
+ export declare function Spinner({ size, color, 'aria-label': ariaLabel, }: SpinnerProps): import("react").JSX.Element;
27
29
  export {};
@@ -1 +1 @@
1
- ;/* empty css */let e=require("react/jsx-runtime");var t={small:{width:16,height:16,strokeWidth:3.5},medium:{width:24,height:24,strokeWidth:3},large:{width:40,height:40,strokeWidth:2.4}};function n({size:n=`medium`,color:r=`accent`}){let{width:i,height:a,strokeWidth:o}=t[n];return(0,e.jsxs)(`svg`,{className:`tintora-spinner`,width:i,height:a,viewBox:`0 0 24 24`,fill:`none`,role:`img`,"aria-label":`Loading`,children:[(0,e.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`,stroke:`currentColor`,strokeOpacity:r===`accent`?.25:.35,strokeWidth:o}),(0,e.jsx)(`path`,{d:`M21 12a9 9 0 0 0-9-9`,stroke:r===`accent`?`var(--tintora-control-fill)`:`currentColor`,strokeWidth:o,strokeLinecap:`round`})]})}exports.SPINNER_SIZE_MAP=t,exports.Spinner=n;
1
+ ;/* empty css */let e=require("react/jsx-runtime");var t={small:{width:16,height:16,strokeWidth:3.5},medium:{width:24,height:24,strokeWidth:3},large:{width:40,height:40,strokeWidth:2.4}};function n({size:n=`medium`,color:r=`accent`,"aria-label":i=`Loading`}){let{width:a,height:o,strokeWidth:s}=t[n];return(0,e.jsxs)(`svg`,{className:`tintora-spinner`,width:a,height:o,viewBox:`0 0 24 24`,fill:`none`,role:`img`,"aria-label":i,children:[(0,e.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`,stroke:`currentColor`,strokeOpacity:r===`accent`?.25:.35,strokeWidth:s}),(0,e.jsx)(`path`,{d:`M21 12a9 9 0 0 0-9-9`,stroke:r===`accent`?`var(--tintora-control-fill)`:`currentColor`,strokeWidth:s,strokeLinecap:`round`})]})}exports.SPINNER_SIZE_MAP=t,exports.Spinner=n;
@@ -18,27 +18,27 @@ var n = {
18
18
  strokeWidth: 2.4
19
19
  }
20
20
  };
21
- function r({ size: r = "medium", color: i = "accent" }) {
22
- let { width: a, height: o, strokeWidth: s } = n[r];
21
+ function r({ size: r = "medium", color: i = "accent", "aria-label": a = "Loading" }) {
22
+ let { width: o, height: s, strokeWidth: c } = n[r];
23
23
  return /* @__PURE__ */ t("svg", {
24
24
  className: "tintora-spinner",
25
- width: a,
26
- height: o,
25
+ width: o,
26
+ height: s,
27
27
  viewBox: "0 0 24 24",
28
28
  fill: "none",
29
29
  role: "img",
30
- "aria-label": "Loading",
30
+ "aria-label": a,
31
31
  children: [/* @__PURE__ */ e("circle", {
32
32
  cx: "12",
33
33
  cy: "12",
34
34
  r: "9",
35
35
  stroke: "currentColor",
36
36
  strokeOpacity: i === "accent" ? .25 : .35,
37
- strokeWidth: s
37
+ strokeWidth: c
38
38
  }), /* @__PURE__ */ e("path", {
39
39
  d: "M21 12a9 9 0 0 0-9-9",
40
40
  stroke: i === "accent" ? "var(--tintora-control-fill)" : "currentColor",
41
- strokeWidth: s,
41
+ strokeWidth: c,
42
42
  strokeLinecap: "round"
43
43
  })]
44
44
  });
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});/* empty css */const e=require("./Alert/Alert2.cjs"),t=require("./Avatar/Avatar2.cjs"),n=require("./Drawer/Drawer2.cjs"),r=require("./BottomSheet/BottomSheet2.cjs"),i=require("./Spinner/Spinner2.cjs"),a=require("./Button/Button2.cjs"),o=require("./Card/Card2.cjs"),s=require("./Checkbox/Checkbox2.cjs"),c=require("./Chip/Chip2.cjs"),l=require("./Dot/Dot2.cjs"),u=require("./IconButton/IconButton2.cjs"),d=require("./Modal/Modal2.cjs"),f=require("./Popover/Popover2.cjs"),p=require("./ProgressBar/ProgressBar2.cjs"),m=require("./Radio/Radio2.cjs"),h=require("./Radio/RadioGroup.cjs"),g=require("./SearchInput/SearchInput2.cjs"),_=require("./Select/Select2.cjs"),v=require("./SettingsRow/SettingsRow2.cjs"),y=require("./Skeleton/Skeleton2.cjs"),b=require("./Switch/Switch2.cjs"),x=require("./Tabs/Tab.cjs"),S=require("./Tabs/Tabs2.cjs"),C=require("./Tag/Tag2.cjs"),w=require("./TextField/TextField2.cjs"),T=require("./Toast/Toast2.cjs"),E=require("./Toggle/Toggle2.cjs"),D=require("./Toggle/ToggleItem.cjs"),O=require("./Tooltip/Tooltip2.cjs");exports.Alert=e.Alert,exports.Avatar=t.Avatar,exports.BottomSheet=r.BottomSheet,exports.BottomSheetOption=r.BottomSheetOption,exports.Button=a.Button,exports.Card=o.Card,exports.Checkbox=s.Checkbox,exports.Chip=c.Chip,exports.Dot=l.Dot,exports.Drawer=n.Drawer,exports.IconButton=u.IconButton,exports.Modal=d.Modal,exports.Popover=f.Popover,exports.ProgressBar=p.ProgressBar,exports.Radio=m.Radio,exports.RadioGroup=h.RadioGroup,exports.SearchInput=g.SearchInput,exports.Select=_.Select,exports.SelectableCard=o.SelectableCard,exports.SettingsRow=v.SettingsRow,exports.Skeleton=y.Skeleton,exports.Spinner=i.Spinner,exports.Switch=b.Switch,exports.Tab=x.Tab,exports.Tabs=S.Tabs,exports.Tag=C.Tag,exports.TextField=w.TextField,exports.Toast=T.Toast,exports.Toggle=E.Toggle,exports.ToggleItem=D.ToggleItem,exports.Tooltip=O.Tooltip;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});/* empty css */const e=require("./Alert/Alert2.cjs"),t=require("./Avatar/Avatar2.cjs"),n=require("./Drawer/Drawer2.cjs"),r=require("./BottomSheet/BottomSheet2.cjs"),i=require("./Spinner/Spinner2.cjs"),a=require("./Button/Button2.cjs"),o=require("./Card/Card2.cjs"),s=require("./Checkbox/Checkbox2.cjs"),c=require("./Chip/Chip2.cjs"),l=require("./Dot/Dot2.cjs"),u=require("./IconButton/IconButton2.cjs"),d=require("./Link/Link2.cjs"),f=require("./Modal/Modal2.cjs"),p=require("./Popover/Popover2.cjs"),m=require("./ProgressBar/ProgressBar2.cjs"),h=require("./Radio/Radio2.cjs"),g=require("./Radio/RadioGroup.cjs"),_=require("./SearchInput/SearchInput2.cjs"),v=require("./Select/Select2.cjs"),y=require("./SettingsRow/SettingsRow2.cjs"),b=require("./Skeleton/Skeleton2.cjs"),x=require("./Switch/Switch2.cjs"),S=require("./Tabs/Tab.cjs"),C=require("./Tabs/Tabs2.cjs"),w=require("./Tag/Tag2.cjs"),T=require("./TextField/TextField2.cjs"),E=require("./Toast/Toast2.cjs"),D=require("./Toggle/Toggle2.cjs"),O=require("./Toggle/ToggleItem.cjs"),k=require("./Tooltip/Tooltip2.cjs");exports.Alert=e.Alert,exports.Avatar=t.Avatar,exports.BottomSheet=r.BottomSheet,exports.BottomSheetOption=r.BottomSheetOption,exports.Button=a.Button,exports.Card=o.Card,exports.Checkbox=s.Checkbox,exports.Chip=c.Chip,exports.Dot=l.Dot,exports.Drawer=n.Drawer,exports.IconButton=u.IconButton,exports.Link=d.Link,exports.Modal=f.Modal,exports.Popover=p.Popover,exports.ProgressBar=m.ProgressBar,exports.Radio=h.Radio,exports.RadioGroup=g.RadioGroup,exports.SearchInput=_.SearchInput,exports.Select=v.Select,exports.SelectableCard=o.SelectableCard,exports.SettingsRow=y.SettingsRow,exports.Skeleton=b.Skeleton,exports.Spinner=i.Spinner,exports.Switch=x.Switch,exports.Tab=S.Tab,exports.Tabs=C.Tabs,exports.Tag=w.Tag,exports.TextField=T.TextField,exports.Toast=E.Toast,exports.Toggle=D.Toggle,exports.ToggleItem=O.ToggleItem,exports.Tooltip=k.Tooltip;
package/dist/index.d.ts CHANGED
@@ -9,13 +9,14 @@ export { Chip } from './Chip/Chip';
9
9
  export { Dot } from './Dot/Dot';
10
10
  export { Drawer, type DrawerProps } from './Drawer/Drawer';
11
11
  export { IconButton } from './IconButton/IconButton';
12
+ export { Link, type LinkProps } from './Link/Link';
12
13
  export { Modal, type ModalProps } from './Modal/Modal';
13
14
  export { Popover, type PopoverProps } from './Popover/Popover';
14
15
  export { ProgressBar, type ProgressBarProps } from './ProgressBar/ProgressBar';
15
16
  export { Radio, type RadioProps } from './Radio/Radio';
16
17
  export { RadioGroup, type RadioGroupProps } from './Radio/RadioGroup';
17
18
  export { SearchInput } from './SearchInput/SearchInput';
18
- export { Select } from './Select/Select';
19
+ export { Select, type SelectProps } from './Select/Select';
19
20
  export { SettingsRow, type SettingsRowProps } from './SettingsRow/SettingsRow';
20
21
  export { Skeleton, type SkeletonProps } from './Skeleton/Skeleton';
21
22
  export { Spinner } from './Spinner/Spinner';
package/dist/index.js CHANGED
@@ -11,22 +11,23 @@ import { Checkbox as l } from "./Checkbox/Checkbox2.js";
11
11
  import { Chip as u } from "./Chip/Chip2.js";
12
12
  import { Dot as d } from "./Dot/Dot2.js";
13
13
  import { IconButton as f } from "./IconButton/IconButton2.js";
14
- import { Modal as p } from "./Modal/Modal2.js";
15
- import { Popover as m } from "./Popover/Popover2.js";
16
- import { ProgressBar as h } from "./ProgressBar/ProgressBar2.js";
17
- import { Radio as g } from "./Radio/Radio2.js";
18
- import { RadioGroup as _ } from "./Radio/RadioGroup.js";
19
- import { SearchInput as v } from "./SearchInput/SearchInput2.js";
20
- import { Select as y } from "./Select/Select2.js";
21
- import { SettingsRow as b } from "./SettingsRow/SettingsRow2.js";
22
- import { Skeleton as x } from "./Skeleton/Skeleton2.js";
23
- import { Switch as S } from "./Switch/Switch2.js";
24
- import { Tab as C } from "./Tabs/Tab.js";
25
- import { Tabs as w } from "./Tabs/Tabs2.js";
26
- import { Tag as T } from "./Tag/Tag2.js";
27
- import { TextField as E } from "./TextField/TextField2.js";
28
- import { Toast as D } from "./Toast/Toast2.js";
29
- import { Toggle as O } from "./Toggle/Toggle2.js";
30
- import { ToggleItem as k } from "./Toggle/ToggleItem.js";
31
- import { Tooltip as A } from "./Tooltip/Tooltip2.js";
32
- export { e as Alert, t as Avatar, r as BottomSheet, i as BottomSheetOption, o as Button, s as Card, l as Checkbox, u as Chip, d as Dot, n as Drawer, f as IconButton, p as Modal, m as Popover, h as ProgressBar, g as Radio, _ as RadioGroup, v as SearchInput, y as Select, c as SelectableCard, b as SettingsRow, x as Skeleton, a as Spinner, S as Switch, C as Tab, w as Tabs, T as Tag, E as TextField, D as Toast, O as Toggle, k as ToggleItem, A as Tooltip };
14
+ import { Link as p } from "./Link/Link2.js";
15
+ import { Modal as m } from "./Modal/Modal2.js";
16
+ import { Popover as h } from "./Popover/Popover2.js";
17
+ import { ProgressBar as g } from "./ProgressBar/ProgressBar2.js";
18
+ import { Radio as _ } from "./Radio/Radio2.js";
19
+ import { RadioGroup as v } from "./Radio/RadioGroup.js";
20
+ import { SearchInput as y } from "./SearchInput/SearchInput2.js";
21
+ import { Select as b } from "./Select/Select2.js";
22
+ import { SettingsRow as x } from "./SettingsRow/SettingsRow2.js";
23
+ import { Skeleton as S } from "./Skeleton/Skeleton2.js";
24
+ import { Switch as C } from "./Switch/Switch2.js";
25
+ import { Tab as w } from "./Tabs/Tab.js";
26
+ import { Tabs as T } from "./Tabs/Tabs2.js";
27
+ import { Tag as E } from "./Tag/Tag2.js";
28
+ import { TextField as D } from "./TextField/TextField2.js";
29
+ import { Toast as O } from "./Toast/Toast2.js";
30
+ import { Toggle as k } from "./Toggle/Toggle2.js";
31
+ import { ToggleItem as A } from "./Toggle/ToggleItem.js";
32
+ import { Tooltip as j } from "./Tooltip/Tooltip2.js";
33
+ export { e as Alert, t as Avatar, r as BottomSheet, i as BottomSheetOption, o as Button, s as Card, l as Checkbox, u as Chip, d as Dot, n as Drawer, f as IconButton, p as Link, m as Modal, h as Popover, g as ProgressBar, _ as Radio, v as RadioGroup, y as SearchInput, b as Select, c as SelectableCard, x as SettingsRow, S as Skeleton, a as Spinner, C as Switch, w as Tab, T as Tabs, E as Tag, D as TextField, O as Toast, k as Toggle, A as ToggleItem, j as Tooltip };
package/dist/tintora.css CHANGED
@@ -1,2 +1,2 @@
1
- :root{--tintora-color-accent:#ee6b25;--tintora-color-accent-deep:#c94e0c;--tintora-color-success:#4cc56b;--tintora-color-planned:#f2698c;--tintora-color-heart:#c42a56;--tintora-color-steps:#1f7a38;--tintora-color-sleep:#2f4fc4;--tintora-color-ink:#1d1c1c;--tintora-color-white:#fff;--tintora-color-destructive:#b3261e;--tintora-color-on-accent:#1d0e04;--tintora-color-on-accent-deep:var(--tintora-color-white);--tintora-color-on-success:#0d200f;--tintora-color-on-planned:#260a13;--tintora-color-on-heart:var(--tintora-color-white);--tintora-color-on-steps:var(--tintora-color-white);--tintora-color-on-sleep:var(--tintora-color-white);--tintora-color-on-destructive:var(--tintora-color-white);--tintora-text-on-card-muted:#55524f;--tintora-chip-fg:#3c3a38;--tintora-chip-bg:#efedeb;--tintora-chip-bg-hover:#e4e1de;--tintora-chip-selected-fg:#8f3604;--tintora-chip-selected-bg:var(--tintora-color-white);--tintora-tint-accent:#fdeadd;--tintora-tint-heart:#fbe0e8;--tintora-tint-steps:#dcf3e1;--tintora-tint-sleep:#e0e7fb;--tintora-menu-bg:var(--tintora-color-white);--tintora-menu-border:#1d1c1c1a;--tintora-menu-shadow:0 16px 32px #00000038;--tintora-menu-item-hover:#1d1c1c12;--tintora-menu-item-destructive:var(--tintora-color-destructive);--tintora-chart-grid:#ece9e6;--tintora-chart-axis:#6f6b68;--tintora-chart-track:#e6e4e2;--tintora-surface-menu-row:#ffffff0d;--tintora-font-family:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--tintora-font-weight-regular:400;--tintora-font-weight-medium:500;--tintora-font-weight-semibold:600;--tintora-font-weight-bold:700;--tintora-font-weight-extrabold:800;--tintora-line-height-tight:1.2;--tintora-font-display:700 1.625rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-title:700 1.125rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-heading:700 .9375rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-label:700 .78125rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-body:500 .75rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-caption:400 .6875rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-stat-value:800 1.5625rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-subtitle:700 .875rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-button:700 .8125rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-button-sm:700 .75rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-tracking-tight:-.02em;--tintora-tracking-snug:-.01em;--tintora-tracking-wide:.04em;--tintora-radius-2:2px;--tintora-radius-4:4px;--tintora-radius-6:6px;--tintora-radius-7:7px;--tintora-radius-8:8px;--tintora-radius-9:9px;--tintora-radius-10:10px;--tintora-radius-12:12px;--tintora-radius-14:14px;--tintora-radius-16:16px;--tintora-radius-18:18px;--tintora-radius-20:20px;--tintora-radius-22:22px;--tintora-radius-26:26px;--tintora-radius-28:28px;--tintora-radius-30:30px;--tintora-radius-32:32px;--tintora-radius-34:34px;--tintora-radius-38:38px;--tintora-radius-40:40px;--tintora-radius-pill:9999px;--tintora-radius-card:var(--tintora-radius-20);--tintora-radius-panel:var(--tintora-radius-32);--tintora-shadow-selected:0 14px 30px #c94e0c73;--tintora-shadow-primary:0 8px 20px #c94e0c59;--tintora-shadow-accent:0 8px 20px #ee6b2566;--tintora-shadow-focus-ring:0 0 0 3px #ee6b2547;--tintora-shadow-menu:0 16px 32px #00000073;--tintora-shadow-tooltip:0 8px 20px #00000040;--tintora-shadow-knob:0 2px 4px #0000004d;--tintora-shadow-sheet:0 -16px 40px #00000059;--tintora-blur-glass:28px;--tintora-duration-fast:.15s;--tintora-duration-base:.2s;--tintora-opacity-disabled:.45}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--tintora-bg:linear-gradient(180deg, #3e3b3a, #222020);--tintora-surface-glass:linear-gradient(180deg, #3e3b3acc, #222020e6);--tintora-surface-card:#fbfaf9;--tintora-surface-row:#ffffff0f;--tintora-surface-field:#100f0f9e;--tintora-surface-menu:#1e1c1cf7;--tintora-text:var(--tintora-color-white);--tintora-text-muted:#ffffffb8;--tintora-text-faint:#ffffffa6;--tintora-text-nav-idle:#ffffffc7;--tintora-text-day:#ffffffd1;--tintora-text-error:#ff9a8a;--tintora-border-glass:#ffffff14;--tintora-border-card:transparent;--tintora-border-row:#ffffff0f;--tintora-border-field:#ffffff14;--tintora-border-field-hover:#ffffff52;--tintora-line:#ffffff1a;--tintora-line-strong:#ffffff52;--tintora-fill-subtle:#ffffff1a;--tintora-fill-subtle-hover:#fff3;--tintora-fill-subtle-pressed:#ffffff47;--tintora-fill-ghost-hover:#ffffff1f;--tintora-fill-day-hover:#ffffff24;--tintora-tag-bg:#ffffff24;--tintora-tag-fg:var(--tintora-color-white);--tintora-focus:var(--tintora-color-accent);--tintora-ring:var(--tintora-color-white);--tintora-shadow-glass:0 30px 60px #00000059;--tintora-shadow-card:0 10px 24px #0000002e;--tintora-shadow-card-hover:0 18px 36px #00000052;--tintora-bg-glow:radial-gradient(60% 50% at 6% 8%, #deccb080, transparent 62%), radial-gradient(50% 45% at 96% 10%, #846a5680, transparent 62%);--tintora-text-placeholder:#ffffff9e;--tintora-scrim:#0a090999;--tintora-surface-modal:linear-gradient(180deg, #403c3b, #2a2726);--tintora-border-modal:#ffffff1f;--tintora-shadow-modal:0 40px 80px #00000080;--tintora-surface-popover:#2b2928;--tintora-border-popover:#ffffff24;--tintora-shadow-popover:0 24px 48px #00000073;--tintora-surface-tooltip:#fbfaf9;--tintora-text-on-tooltip:var(--tintora-color-ink);--tintora-text-on-tooltip-muted:#5a5754;--tintora-tooltip-kbd-bg:#1d1c1c1a;--tintora-surface-toast:#fbfaf9;--tintora-text-on-toast:var(--tintora-color-ink);--tintora-text-on-toast-muted:#5a5754;--tintora-toast-action:var(--tintora-color-accent-deep);--tintora-shadow-toast:0 16px 36px #0006;--tintora-toast-icon-success:var(--tintora-color-steps);--tintora-toast-icon-error:var(--tintora-color-destructive);--tintora-toast-icon-info:var(--tintora-color-sleep);--tintora-toast-icon-warning:#8a5600;--tintora-status-info-bg:#7896ff24;--tintora-status-info-border:#96afff61;--tintora-status-info-fg:#a9bcff;--tintora-status-success-bg:#4cc56b24;--tintora-status-success-border:#4cc56b66;--tintora-status-success-fg:#6ddb8b;--tintora-status-warning-bg:#f2a33a26;--tintora-status-warning-border:#f2a33a6b;--tintora-status-warning-fg:#f5b45a;--tintora-status-error-bg:#ff826e26;--tintora-status-error-border:#ff8c786b;--tintora-status-error-fg:var(--tintora-text-error);--tintora-control-fill:var(--tintora-color-accent);--tintora-control-on-fill:var(--tintora-color-on-accent);--tintora-control-border:#fff9;--tintora-control-hover-tint:#ee6b2529;--tintora-switch-track:#ffffff4d;--tintora-switch-track-hover:#fff6;--tintora-shimmer:linear-gradient(90deg, #ffffff14 0%, #fff3 50%, #ffffff14 100%)}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--tintora-bg:linear-gradient(180deg, #fcfaf7, #f2ebe4);--tintora-surface-glass:linear-gradient(180deg, #ffffffb3, #ffffff80);--tintora-surface-card:#fff;--tintora-surface-row:#ffffffd9;--tintora-surface-field:#ffffffd9;--tintora-surface-menu:#2a2827;--tintora-text:var(--tintora-color-ink);--tintora-text-muted:#5a5754;--tintora-text-faint:#5a5754;--tintora-text-nav-idle:#4a4745;--tintora-text-day:#2b2927;--tintora-text-error:var(--tintora-color-destructive);--tintora-border-glass:#ffffffd9;--tintora-border-card:#1d1c1c0d;--tintora-border-row:#1d1c1c0f;--tintora-border-field:#1d1c1c14;--tintora-border-field-hover:#1d1c1c4d;--tintora-line:#1d1c1c1a;--tintora-line-strong:#1d1c1c4d;--tintora-fill-subtle:#1d1c1c12;--tintora-fill-subtle-hover:#1d1c1c24;--tintora-fill-subtle-pressed:#1d1c1c33;--tintora-fill-ghost-hover:#1d1c1c14;--tintora-fill-day-hover:#1d1c1c1a;--tintora-tag-bg:#1d1c1c12;--tintora-tag-fg:var(--tintora-color-ink);--tintora-focus:var(--tintora-color-accent-deep);--tintora-ring:var(--tintora-color-ink);--tintora-shadow-glass:0 30px 60px #60402024;--tintora-shadow-card:0 10px 24px #6040201a;--tintora-shadow-card-hover:0 18px 36px #60402033;--tintora-bg-glow:radial-gradient(60% 50% at 6% 8%, #ffd6ace6, transparent 62%), radial-gradient(50% 45% at 96% 10%, #ffeed6f2, transparent 62%);--tintora-text-placeholder:#5f5b58;--tintora-scrim:#1d1c1c73;--tintora-surface-modal:#fff;--tintora-border-modal:#1d1c1c0f;--tintora-shadow-modal:0 40px 80px #3c281459;--tintora-surface-popover:#fff;--tintora-border-popover:#1d1c1c1a;--tintora-shadow-popover:0 24px 48px #3c281438;--tintora-surface-tooltip:#2a2827;--tintora-text-on-tooltip:var(--tintora-color-white);--tintora-text-on-tooltip-muted:#ffffffc7;--tintora-tooltip-kbd-bg:#ffffff2e;--tintora-surface-toast:#2a2827;--tintora-text-on-toast:var(--tintora-color-white);--tintora-text-on-toast-muted:#ffffffbf;--tintora-toast-action:#ff9a5c;--tintora-shadow-toast:0 16px 36px #3c281459;--tintora-toast-icon-success:var(--tintora-color-success);--tintora-toast-icon-error:#ff9a8a;--tintora-toast-icon-info:#9db4ff;--tintora-toast-icon-warning:#f2a33a;--tintora-status-info-bg:#2f4fc414;--tintora-status-info-border:#2f4fc447;--tintora-status-info-fg:var(--tintora-color-sleep);--tintora-status-success-bg:#1f7a3817;--tintora-status-success-border:#1f7a384d;--tintora-status-success-fg:var(--tintora-color-steps);--tintora-status-warning-bg:#a86a0a1a;--tintora-status-warning-border:#a86a0a52;--tintora-status-warning-fg:#8a5600;--tintora-status-error-bg:#b3261e14;--tintora-status-error-border:#b3261e47;--tintora-status-error-fg:var(--tintora-text-error);--tintora-control-fill:var(--tintora-color-accent-deep);--tintora-control-on-fill:var(--tintora-color-white);--tintora-control-border:#1d1c1c8c;--tintora-control-hover-tint:#ee6b2529;--tintora-switch-track:#1d1c1c61;--tintora-switch-track-hover:#1d1c1c80;--tintora-shimmer:linear-gradient(90deg, #1d1c1c12 0%, #1d1c1c29 50%, #1d1c1c12 100%)}@media (prefers-color-scheme:light){:root:not([data-theme]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--tintora-bg:linear-gradient(180deg, #fcfaf7, #f2ebe4);--tintora-surface-glass:linear-gradient(180deg, #ffffffb3, #ffffff80);--tintora-surface-card:#fff;--tintora-surface-row:#ffffffd9;--tintora-surface-field:#ffffffd9;--tintora-surface-menu:#2a2827;--tintora-text:var(--tintora-color-ink);--tintora-text-muted:#5a5754;--tintora-text-faint:#5a5754;--tintora-text-nav-idle:#4a4745;--tintora-text-day:#2b2927;--tintora-text-error:var(--tintora-color-destructive);--tintora-border-glass:#ffffffd9;--tintora-border-card:#1d1c1c0d;--tintora-border-row:#1d1c1c0f;--tintora-border-field:#1d1c1c14;--tintora-border-field-hover:#1d1c1c4d;--tintora-line:#1d1c1c1a;--tintora-line-strong:#1d1c1c4d;--tintora-fill-subtle:#1d1c1c12;--tintora-fill-subtle-hover:#1d1c1c24;--tintora-fill-subtle-pressed:#1d1c1c33;--tintora-fill-ghost-hover:#1d1c1c14;--tintora-fill-day-hover:#1d1c1c1a;--tintora-tag-bg:#1d1c1c12;--tintora-tag-fg:var(--tintora-color-ink);--tintora-focus:var(--tintora-color-accent-deep);--tintora-ring:var(--tintora-color-ink);--tintora-shadow-glass:0 30px 60px #60402024;--tintora-shadow-card:0 10px 24px #6040201a;--tintora-shadow-card-hover:0 18px 36px #60402033;--tintora-bg-glow:radial-gradient(60% 50% at 6% 8%, #ffd6ace6, transparent 62%), radial-gradient(50% 45% at 96% 10%, #ffeed6f2, transparent 62%);--tintora-text-placeholder:#5f5b58;--tintora-scrim:#1d1c1c73;--tintora-surface-modal:#fff;--tintora-border-modal:#1d1c1c0f;--tintora-shadow-modal:0 40px 80px #3c281459;--tintora-surface-popover:#fff;--tintora-border-popover:#1d1c1c1a;--tintora-shadow-popover:0 24px 48px #3c281438;--tintora-surface-tooltip:#2a2827;--tintora-text-on-tooltip:var(--tintora-color-white);--tintora-text-on-tooltip-muted:#ffffffc7;--tintora-tooltip-kbd-bg:#ffffff2e;--tintora-surface-toast:#2a2827;--tintora-text-on-toast:var(--tintora-color-white);--tintora-text-on-toast-muted:#ffffffbf;--tintora-toast-action:#ff9a5c;--tintora-shadow-toast:0 16px 36px #3c281459;--tintora-toast-icon-success:var(--tintora-color-success);--tintora-toast-icon-error:#ff9a8a;--tintora-toast-icon-info:#9db4ff;--tintora-toast-icon-warning:#f2a33a;--tintora-status-info-bg:#2f4fc414;--tintora-status-info-border:#2f4fc447;--tintora-status-info-fg:var(--tintora-color-sleep);--tintora-status-success-bg:#1f7a3817;--tintora-status-success-border:#1f7a384d;--tintora-status-success-fg:var(--tintora-color-steps);--tintora-status-warning-bg:#a86a0a1a;--tintora-status-warning-border:#a86a0a52;--tintora-status-warning-fg:#8a5600;--tintora-status-error-bg:#b3261e14;--tintora-status-error-border:#b3261e47;--tintora-status-error-fg:var(--tintora-text-error);--tintora-control-fill:var(--tintora-color-accent-deep);--tintora-control-on-fill:var(--tintora-color-white);--tintora-control-border:#1d1c1c8c;--tintora-control-hover-tint:#ee6b2529;--tintora-switch-track:#1d1c1c61;--tintora-switch-track-hover:#1d1c1c80;--tintora-shimmer:linear-gradient(90deg, #1d1c1c12 0%, #1d1c1c29 50%, #1d1c1c12 100%)}}.tintora-alert{box-sizing:border-box;border-radius:var(--tintora-radius-20);background:var(--tintora-alert-status-bg);border:var(--tintora-alert-status-border);align-items:flex-start;gap:14px;padding:16px 12px 16px 18px;display:flex}.tintora-alert--info{--tintora-alert-status-bg:var(--tintora-status-info-bg);--tintora-alert-status-border:1px solid var(--tintora-status-info-border)}.tintora-alert--success{--tintora-alert-status-bg:var(--tintora-status-success-bg);--tintora-alert-status-border:1px solid var(--tintora-status-success-border)}.tintora-alert--warning{--tintora-alert-status-bg:var(--tintora-status-warning-bg);--tintora-alert-status-border:1px solid var(--tintora-status-warning-border)}.tintora-alert--error{--tintora-alert-status-bg:var(--tintora-status-error-bg);--tintora-alert-status-border:1px solid var(--tintora-status-error-border)}.tintora-alert--announcement{border-radius:var(--tintora-radius-14);background:var(--tintora-color-accent-deep);height:44px;color:var(--tintora-color-on-accent-deep);font:var(--tintora-font-button);padding:0 16px}.tintora-alert__content{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.tintora-alert__content--announcement{flex-direction:row;justify-content:center;align-items:center;gap:14px;height:100%}.tintora-alert__content--announcement>.tintora-alert__content__sub-title{color:inherit;font:var(--tintora-font-button)}.tintora-alert__content--announcement>.tintora-alert__content__action{font:var(--tintora-font-button);color:inherit;align-self:inherit;margin-top:0}.tintora-alert__content__title{font:var(--tintora-font-subtitle)}.tintora-alert__content__sub-title{font:var(--tintora-font-label);line-height:1.5;font-weight:var(--tintora-font-weight-regular);color:var(--tintora-text-muted)}.tintora-alert__content__action{font:var(--tintora-font-label);color:var(--tintora-alert-status-action);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-self:flex-start;margin-top:6px;padding:0;text-decoration:underline}.tintora-alert__content__action--info{--tintora-alert-status-action:var(--tintora-status-info-fg)}.tintora-alert__content__action--success{--tintora-alert-status-action:var(--tintora-status-success-fg)}.tintora-alert__content__action--warning{--tintora-alert-status-action:var(--tintora-status-warning-fg)}.tintora-alert__content__action--error{--tintora-alert-status-action:var(--tintora-status-error-fg)}.tintora-alert__close{border-radius:var(--tintora-radius-pill);width:32px;height:32px;color:var(--tintora-text-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:flex}.tintora-avatar{border-radius:var(--tintora-radius-pill);color:var(--tintora-color-ink);font:var(--tintora-font-body);font-size:var(--tintora-avatar-font-size);font-weight:var(--tintora-font-weight-bold);background:linear-gradient(135deg,#f1d9bf,#c9a07a);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.tintora-avatar>img{object-fit:cover;width:100%;height:100%}.tintora-avatar--small{--tintora-avatar-font-size:.6875rem;width:32px;height:32px;font-weight:var(--tintora-font-weight-bold)}.tintora-avatar--medium{--tintora-avatar-font-size:.8125rem;width:40px;height:40px;font-weight:var(--tintora-font-weight-bold)}.tintora-avatar--large{--tintora-avatar-font-size:.875rem;width:44px;height:44px;font-weight:var(--tintora-font-weight-bold)}.tintora-drawer{box-sizing:border-box;width:var(--tintora-drawer-width,100vw);height:var(--tintora-drawer-height,auto);border:1px solid var(--tintora-border-modal);max-width:none;max-height:none;font-family:var(--tintora-font-family);color:var(--tintora-text);background:var(--tintora-surface-modal);box-shadow:var(--tintora-shadow-modal);transform:var(--tintora-drawer-offset);margin:0;padding:28px;position:fixed;overflow:auto}.tintora-drawer[open]{transform:none}.tintora-drawer::backdrop{background:var(--tintora-scrim)}.tintora-drawer--from-left,.tintora-drawer--from-right{width:var(--tintora-drawer-width,400px);height:var(--tintora-drawer-height,100vh)}.tintora-drawer--from-right{border-radius:var(--tintora-radius-32) 0 0 var(--tintora-radius-32);--tintora-drawer-offset:translateX(100%);inset:0 0 0 auto}.tintora-drawer--from-left{border-radius:0 var(--tintora-radius-32) var(--tintora-radius-32) 0;--tintora-drawer-offset:translateX(-100%);inset:0 auto 0 0}.tintora-drawer--from-top{border-radius:0 0 var(--tintora-radius-32) var(--tintora-radius-32);--tintora-drawer-offset:translateY(-100%);inset:0 0 auto}.tintora-drawer--from-bottom{border-radius:var(--tintora-radius-32) var(--tintora-radius-32) 0 0;--tintora-drawer-offset:translateY(100%);inset:auto 0 0}@media (width<=480px){.tintora-drawer--from-left,.tintora-drawer--from-right{border-radius:0;width:100vw}}@media (prefers-reduced-motion:no-preference){.tintora-drawer,.tintora-drawer::backdrop{transition:transform .3s ease, opacity .3s ease, overlay .3s allow-discrete, display .3s allow-discrete}.tintora-drawer::backdrop{opacity:0}.tintora-drawer[open]::backdrop{opacity:1}@starting-style{.tintora-drawer[open]{transform:var(--tintora-drawer-offset)}.tintora-drawer[open]::backdrop{opacity:0}}}body:has(.tintora-drawer:modal){overflow:hidden}.tintora-drawer.tintora-bottom-sheet{border:0;border-top:1px solid var(--tintora-border-popover);border-radius:var(--tintora-radius-28) var(--tintora-radius-28) 0 0;max-height:calc(100dvh - 48px);box-shadow:var(--tintora-shadow-sheet);flex-direction:column;gap:6px;padding:10px 16px 16px}.tintora-drawer.tintora-bottom-sheet[open]{display:flex}.tintora-bottom-sheet__grabber{border-radius:var(--tintora-radius-pill);background:var(--tintora-text-faint);flex:none;align-self:center;width:36px;height:4px}.tintora-bottom-sheet__title{font:var(--tintora-font-heading);padding:8px 4px 6px}.tintora-bottom-sheet__option{box-sizing:border-box;border-radius:var(--tintora-radius-16);height:48px;font:var(--tintora-font-button);font-weight:var(--tintora-font-weight-semibold);text-align:left;color:var(--tintora-text);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:space-between;align-items:center;padding:0 14px;display:flex}.tintora-bottom-sheet__option:hover{background:var(--tintora-fill-subtle-hover)}.tintora-bottom-sheet__option:focus-visible{outline:2px solid var(--tintora-focus);outline-offset:2px}.tintora-bottom-sheet__option[aria-pressed=true]{background:var(--tintora-fill-subtle)}.tintora-bottom-sheet__check{color:var(--tintora-control-fill);opacity:0;flex:none}.tintora-bottom-sheet__option[aria-pressed=true] .tintora-bottom-sheet__check{opacity:1}.tintora-spinner{flex-shrink:0;animation:.9s linear infinite tintora-spin}@keyframes tintora-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.tintora-spinner{animation:none}}.tintora-button{--tintora-button-border:1px solid transparent;box-sizing:border-box;cursor:pointer;outline-offset:2px;height:var(--tintora-button-height);padding:0 var(--tintora-button-padding-x);border:var(--tintora-button-border);border-radius:var(--tintora-button-border-radius);font-family:inherit;font-size:var(--tintora-button-font-size);font-weight:var(--tintora-button-font-weight);color:var(--tintora-button-fg);background-color:var(--tintora-button-bg);box-shadow:var(--tintora-button-shadow,none);outline:none;justify-content:center;align-items:center;gap:8px;display:inline-flex}.tintora-button--small{--tintora-button-height:32px;--tintora-button-padding-x:14px;--tintora-button-border-radius:16px;--tintora-button-font-size:12px;--tintora-button-font-weight:var(--tintora-font-weight-bold)}.tintora-button--medium{--tintora-button-height:40px;--tintora-button-padding-x:18px;--tintora-button-border-radius:20px;--tintora-button-font-size:13px;--tintora-button-font-weight:var(--tintora-font-weight-bold)}.tintora-button--large{--tintora-button-height:48px;--tintora-button-padding-x:24px;--tintora-button-border-radius:24px;--tintora-button-font-size:14px;--tintora-button-font-weight:var(--tintora-font-weight-bold)}.tintora-button__icon{flex-shrink:0;display:inline-flex}.tintora-button--leading-icon{padding-inline-start:calc(var(--tintora-button-padding-x) - 4px)}.tintora-button--trailing-icon{padding-inline-end:calc(var(--tintora-button-padding-x) - 4px)}.tintora-button--full-width{width:100%}.tintora-button--primary{--tintora-button-fg:var(--tintora-color-on-accent-deep);--tintora-button-bg:var(--tintora-color-accent-deep);--tintora-button-shadow:var(--tintora-shadow-primary);--tintora-button-filter-hover:brightness(1.14);--tintora-button-filter-pressed:brightness(.9)}.tintora-button--secondary{--tintora-button-fg:var(--tintora-text);--tintora-button-bg:var(--tintora-fill-subtle);--tintora-button-bg-hover:var(--tintora-fill-subtle-hover);--tintora-button-bg-pressed:var(--tintora-fill-subtle-pressed)}.tintora-button--outline{--tintora-button-border:1px solid var(--tintora-line-strong);--tintora-button-fg:var(--tintora-text);--tintora-button-bg:transparent;--tintora-button-bg-hover:var(--tintora-fill-ghost-hover);--tintora-button-bg-pressed:var(--tintora-fill-subtle)}.tintora-button--ghost{--tintora-button-fg:var(--tintora-text-muted);--tintora-button-fg-hover:var(--tintora-text);--tintora-button-fg-pressed:var(--tintora-text);--tintora-button-bg:transparent;--tintora-button-bg-hover:var(--tintora-fill-ghost-hover);--tintora-button-bg-pressed:var(--tintora-fill-subtle)}.tintora-button:enabled:hover{color:var(--tintora-button-fg-hover,var(--tintora-button-fg));background-color:var(--tintora-button-bg-hover,var(--tintora-button-bg));filter:var(--tintora-button-filter-hover,none)}.tintora-button:enabled:active{color:var(--tintora-button-fg-pressed,var(--tintora-button-fg));background-color:var(--tintora-button-bg-pressed,var(--tintora-button-bg));filter:var(--tintora-button-filter-pressed,none);transform:translateY(1px)}.tintora-button:focus-visible{outline:2px solid var(--tintora-focus)}.tintora-button:disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed;box-shadow:none}.tintora-button--loading:disabled{opacity:.85;cursor:progress}.tintora-card{box-sizing:border-box;font:inherit;text-align:start;border:1px solid #0000;justify-content:space-between;align-items:center;gap:12px;margin:0;display:flex}.tintora-card--surface{border-color:var(--tintora-border-card);border-radius:var(--tintora-radius-card);background:var(--tintora-surface-card);box-shadow:var(--tintora-shadow-card);color:var(--tintora-color-ink);--tintora-card-text-muted:var(--tintora-text-on-card-muted);padding:18px 18px 18px 20px}.tintora-card--row{border-color:var(--tintora-border-row);border-radius:var(--tintora-radius-18);background:var(--tintora-surface-row);color:var(--tintora-text);--tintora-card-text-muted:var(--tintora-text-faint);justify-content:flex-start;padding:10px 6px 10px 10px}.tintora-card--selectable{cursor:pointer;width:100%}@media (prefers-reduced-motion:no-preference){.tintora-card--selectable{transition:transform .15s,box-shadow .15s,background-color .15s}}.tintora-card--selectable:not(.tintora-card--selected):hover{box-shadow:var(--tintora-shadow-card-hover);transform:translateY(-3px)}.tintora-card--selectable:focus-visible{outline:2px solid var(--tintora-focus);outline-offset:2px}.tintora-card--selectable:disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}.tintora-card--selected{background:var(--tintora-color-accent-deep);box-shadow:var(--tintora-shadow-selected);color:var(--tintora-color-on-accent-deep);--tintora-card-text-muted:var(--tintora-color-on-accent-deep);border-color:#0000}.tintora-card--selected .tintora-tag--card{background-color:var(--tintora-chip-selected-bg);color:var(--tintora-chip-selected-fg);font-weight:var(--tintora-font-weight-bold)}.tintora-checkbox{flex-shrink:0;width:22px;height:22px;display:inline-block;position:relative}.tintora-checkbox__input{opacity:0;cursor:pointer;width:44px;height:44px;margin:0;position:absolute;inset:-11px}.tintora-checkbox__box{box-sizing:border-box;border:2px solid var(--tintora-control-border);border-radius:var(--tintora-radius-7);outline-offset:2px;pointer-events:none;background:0 0;justify-content:center;align-items:center;transition:background .15s,border-color .15s;display:flex;position:absolute;inset:0}.tintora-checkbox__check,.tintora-checkbox__dash{stroke:var(--tintora-control-on-fill);opacity:0;position:absolute}.tintora-checkbox__input:enabled:hover+.tintora-checkbox__box{border-color:var(--tintora-control-fill);background:var(--tintora-control-hover-tint)}.tintora-checkbox__input:checked+.tintora-checkbox__box,.tintora-checkbox__input:indeterminate+.tintora-checkbox__box{border-color:var(--tintora-control-fill);background:var(--tintora-control-fill)}.tintora-checkbox__input:checked+.tintora-checkbox__box .tintora-checkbox__check{opacity:1}.tintora-checkbox__input:indeterminate+.tintora-checkbox__box .tintora-checkbox__check{opacity:0}.tintora-checkbox__input:indeterminate+.tintora-checkbox__box .tintora-checkbox__dash{opacity:1}.tintora-checkbox__input:focus-visible+.tintora-checkbox__box{outline:2px solid var(--tintora-focus)}.tintora-checkbox__input:disabled{cursor:not-allowed}.tintora-checkbox__input:disabled+.tintora-checkbox__box{opacity:var(--tintora-opacity-disabled)}@media (prefers-reduced-motion:reduce){.tintora-checkbox__box{transition:none}}.tintora-chip{border-radius:var(--tintora-radius-12);background-color:var(--tintora-chip-bg);color:var(--tintora-chip-fg);font:var(--tintora-font-caption);font-weight:var(--tintora-font-weight-semibold);cursor:pointer;outline-offset:2px;border:0;outline:none;align-items:center;padding:6px 12px;display:inline-flex}.tintora-chip:enabled:hover:not([aria-pressed=true]){background-color:var(--tintora-chip-bg-hover)}.tintora-chip[aria-pressed=true]{background-color:var(--tintora-chip-selected-bg);color:var(--tintora-chip-selected-fg);font-weight:var(--tintora-font-weight-bold)}.tintora-chip:focus-visible{outline:2px solid var(--tintora-focus)}.tintora-chip:disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}.tintora-dot{box-sizing:border-box;forced-color-adjust:none;flex-shrink:0;display:inline-block}.tintora-dot--unread{border-radius:var(--tintora-radius-pill);background-color:var(--tintora-color-accent);width:8px;height:8px}.tintora-dot--read{border-radius:var(--tintora-radius-pill);border:1.5px solid var(--tintora-text-faint);width:8px;height:8px}.tintora-dot--tick{background-color:var(--tintora-color-accent);border-radius:2px;width:3px;height:15px}.tintora-button.tintora-icon-button{--tintora-button-padding-x:0px}.tintora-icon-button{width:var(--tintora-button-height);flex-shrink:0}.tintora-icon-button__icon{display:inline-flex}.tintora-icon-button__icon svg{width:var(--tintora-icon-button-icon-size);height:var(--tintora-icon-button-icon-size)}.tintora-icon-button.tintora-icon-button--small{--tintora-button-height:32px;--tintora-icon-button-icon-size:14px}.tintora-icon-button.tintora-icon-button--medium{--tintora-button-height:36px;--tintora-icon-button-icon-size:15px}.tintora-icon-button.tintora-icon-button--large{--tintora-button-height:44px;--tintora-icon-button-icon-size:18px}.tintora-icon-button.tintora-icon-button--round{--tintora-button-border-radius:var(--tintora-radius-pill)}.tintora-icon-button.tintora-icon-button--field{--tintora-button-height:48px;--tintora-button-border-radius:var(--tintora-radius-pill);--tintora-button-border:1px solid var(--tintora-border-field);--tintora-button-fg:var(--tintora-text);--tintora-button-bg:var(--tintora-surface-field);--tintora-button-bg-hover:var(--tintora-surface-field);--tintora-button-bg-pressed:var(--tintora-fill-subtle);--tintora-icon-button-icon-size:18px}.tintora-icon-button--field:enabled:hover{border-color:var(--tintora-border-field-hover)}.tintora-icon-button--field:enabled:active{border-color:var(--tintora-border-field)}.tintora-icon-button.tintora-icon-button--nav{--tintora-button-height:44px;--tintora-button-border-radius:var(--tintora-radius-14);--tintora-button-fg:var(--tintora-text-nav-idle);--tintora-button-fg-hover:var(--tintora-text);--tintora-button-fg-pressed:var(--tintora-text);--tintora-button-bg:transparent;--tintora-button-bg-hover:var(--tintora-fill-ghost-hover);--tintora-button-bg-pressed:var(--tintora-fill-ghost-hover);--tintora-icon-button-icon-size:20px}.tintora-icon-button.tintora-icon-button--nav[aria-current=page]{--tintora-button-fg:#fff;--tintora-button-fg-hover:#fff;--tintora-button-fg-pressed:#fff;--tintora-button-bg:var(--tintora-color-accent);--tintora-button-bg-hover:var(--tintora-color-accent);--tintora-button-bg-pressed:var(--tintora-color-accent);--tintora-button-shadow:var(--tintora-shadow-accent)}.tintora-modal{box-sizing:border-box;width:min(var(--tintora-modal-width), calc(100vw - 32px));border:1px solid var(--tintora-border-modal);border-radius:var(--tintora-radius-32);max-width:none;max-height:calc(100vh - 32px);font-family:var(--tintora-font-family);color:var(--tintora-text);background:var(--tintora-surface-modal);box-shadow:var(--tintora-shadow-modal);flex-direction:column;gap:18px;padding:28px;overflow:auto}.tintora-modal[open]{display:flex}.tintora-modal::backdrop{background:var(--tintora-scrim)}@media (prefers-reduced-motion:no-preference){.tintora-modal,.tintora-modal::backdrop{opacity:0;transition:opacity .2s ease, scale .2s ease, overlay .2s allow-discrete, display .2s allow-discrete}.tintora-modal{scale:.96}.tintora-modal[open],.tintora-modal[open]::backdrop{opacity:1}.tintora-modal[open]{scale:1}@starting-style{.tintora-modal[open],.tintora-modal[open]::backdrop{opacity:0}.tintora-modal[open]{scale:.96}}}body:has(.tintora-modal:modal){overflow:hidden}.tintora-modal--sm{--tintora-modal-width:400px}.tintora-modal--md{--tintora-modal-width:520px}.tintora-modal--lg{--tintora-modal-width:640px}.tintora-modal--center{text-align:center;align-items:center}.tintora-modal__close{position:absolute;top:18px;right:18px}.tintora-modal__title{font-size:20px;font-weight:var(--tintora-font-weight-bold);line-height:var(--tintora-line-height-tight);margin:0;padding-inline-end:44px}.tintora-modal--center .tintora-modal__title{padding-inline:0}.tintora-modal__description{color:var(--tintora-text-muted);margin:8px 0 0;font-size:13.5px;line-height:1.55}.tintora-modal__icon{border:1px solid var(--tintora-modal-status-border);border-radius:var(--tintora-radius-pill);width:52px;height:52px;color:var(--tintora-modal-status-fg);background:var(--tintora-modal-status-bg);justify-content:center;align-items:center;display:flex}.tintora-modal--center .tintora-modal__icon{width:64px;height:64px}.tintora-modal__icon svg{width:24px;height:24px}.tintora-modal--center .tintora-modal__icon svg{width:30px;height:30px}.tintora-modal__icon--success{--tintora-modal-status-bg:var(--tintora-status-success-bg);--tintora-modal-status-border:var(--tintora-status-success-border);--tintora-modal-status-fg:var(--tintora-status-success-fg)}.tintora-modal__icon--error{--tintora-modal-status-bg:var(--tintora-status-error-bg);--tintora-modal-status-border:var(--tintora-status-error-border);--tintora-modal-status-fg:var(--tintora-status-error-fg)}.tintora-modal__icon--info{--tintora-modal-status-bg:var(--tintora-status-info-bg);--tintora-modal-status-border:var(--tintora-status-info-border);--tintora-modal-status-fg:var(--tintora-status-info-fg)}.tintora-modal__icon--warning{--tintora-modal-status-bg:var(--tintora-status-warning-bg);--tintora-modal-status-border:var(--tintora-status-warning-border);--tintora-modal-status-fg:var(--tintora-status-warning-fg)}.tintora-modal__actions{justify-content:flex-end;gap:10px;padding-top:6px;display:flex}.tintora-modal--center .tintora-modal__actions{flex-direction:column;align-self:stretch}.tintora-popover-root{display:contents}.tintora-popover{box-sizing:border-box;border-radius:var(--tintora-radius-22);background:var(--tintora-surface-popover);border:1px solid var(--tintora-border-popover);box-shadow:var(--tintora-shadow-popover);flex-direction:column;gap:12px;margin:0;padding:18px;display:flex;position:fixed;inset:auto;overflow:visible}.tintora-popover--sm{border-radius:var(--tintora-radius-20);width:fit-content;padding:16px}.tintora-popover--md{width:300px}.tintora-popover:before{content:"";background:var(--tintora-surface-popover);width:12px;height:12px;position:absolute;transform:rotate(45deg)}.tintora-popover--top:before{bottom:-7px;left:calc(var(--tintora-popover-arrow-offset,50%) - 7px);border-right:1px solid var(--tintora-border-popover);border-bottom:1px solid var(--tintora-border-popover)}.tintora-popover--bottom:before{top:-7px;left:calc(var(--tintora-popover-arrow-offset,50%) - 7px);border-top:1px solid var(--tintora-border-popover);border-left:1px solid var(--tintora-border-popover)}.tintora-popover--left:before{right:-7px;top:calc(var(--tintora-popover-arrow-offset,50%) - 7px);border-top:1px solid var(--tintora-border-popover);border-right:1px solid var(--tintora-border-popover)}.tintora-popover--right:before{left:-7px;top:calc(var(--tintora-popover-arrow-offset,50%) - 7px);border-bottom:1px solid var(--tintora-border-popover);border-left:1px solid var(--tintora-border-popover)}.tintora-progress-bar{flex-direction:column;gap:6px;display:flex}.tintora-progress-bar__header{font:var(--tintora-font-label);font-weight:var(--tintora-font-weight-semibold);justify-content:space-between;display:flex}.tintora-progress-bar__value{color:var(--tintora-text-muted)}.tintora-progress-bar__track{border-radius:var(--tintora-radius-pill);background:var(--tintora-fill-subtle-hover);height:8px;position:relative;overflow:hidden}.tintora-progress-bar__fill{border-radius:var(--tintora-radius-4);background:var(--tintora-control-fill);height:100%;position:absolute;top:0;left:0}.tintora-progress-bar__fill--complete{background:var(--tintora-status-success-fg)}.tintora-progress-bar__fill--indeterminate{width:40%;animation:1.3s ease-in-out infinite tintora-indeterminate}@keyframes tintora-indeterminate{0%{left:-40%}to{left:100%}}@media (prefers-reduced-motion:reduce){.tintora-progress-bar__fill--indeterminate{animation:none}}.tintora-radio{flex-shrink:0;width:22px;height:22px;display:inline-block;position:relative}.tintora-radio__input{opacity:0;cursor:pointer;width:44px;height:44px;margin:0;position:absolute;inset:-11px}.tintora-radio__circle{box-sizing:border-box;border:2px solid var(--tintora-control-border);border-radius:var(--tintora-radius-pill);outline-offset:2px;pointer-events:none;background:0 0;justify-content:center;align-items:center;transition:background .15s,border-color .15s;display:flex;position:absolute;inset:0}.tintora-radio__circle:after{content:"";border-radius:var(--tintora-radius-pill);background:var(--tintora-control-fill);opacity:0;width:10px;height:10px}.tintora-radio__input:enabled:hover+.tintora-radio__circle{border-color:var(--tintora-control-fill);background:var(--tintora-control-hover-tint)}.tintora-radio__input:checked+.tintora-radio__circle{border-color:var(--tintora-control-fill);background:0 0}.tintora-radio__input:checked+.tintora-radio__circle:after{opacity:1}.tintora-radio__input:focus-visible+.tintora-radio__circle{outline:2px solid var(--tintora-focus)}.tintora-radio__input:disabled{cursor:not-allowed}.tintora-radio__input:disabled+.tintora-radio__circle{opacity:var(--tintora-opacity-disabled)}@media (prefers-reduced-motion:reduce){.tintora-radio__circle{transition:none}}.tintora-search-input{--tintora-search-input-font-size:.8125rem;--tintora-search-input-clear-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");box-sizing:border-box;border:1px solid var(--tintora-border-field);border-radius:var(--tintora-radius-pill);height:48px;color:var(--tintora-text-muted);background-color:var(--tintora-surface-field);align-items:center;gap:10px;padding:0 18px;display:flex}.tintora-search-input--disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}.tintora-search-input__icon{flex-shrink:0;width:16px;height:16px}.tintora-search-input__input{min-width:0;font-family:inherit;font-size:var(--tintora-search-input-font-size);color:var(--tintora-text);background:0 0;border:0;outline:0;flex:1;padding:0}.tintora-search-input__input::placeholder{color:var(--tintora-text-muted);opacity:1}.tintora-search-input__input:disabled{cursor:not-allowed}.tintora-search-input__input::-webkit-search-decoration{display:none}.tintora-search-input__input::-webkit-search-cancel-button{appearance:none;cursor:pointer;background-color:var(--tintora-text-muted);width:16px;height:16px;-webkit-mask:var(--tintora-search-input-clear-icon) center / contain no-repeat;-webkit-mask:var(--tintora-search-input-clear-icon) center / contain no-repeat;mask:var(--tintora-search-input-clear-icon) center / contain no-repeat}.tintora-search-input:not(.tintora-search-input--disabled):hover{border-color:var(--tintora-border-field-hover)}.tintora-search-input:focus-within{border-color:var(--tintora-focus);box-shadow:var(--tintora-shadow-focus-ring);outline-offset:2px;outline:2px solid #0000}.tintora-search-input__input::-webkit-search-cancel-button{appearance:none;cursor:pointer;background-color:var(--tintora-text-muted);width:16px;height:16px;-webkit-mask:var(--tintora-search-input-clear-icon) center / contain no-repeat;mask:var(--tintora-search-input-clear-icon) center / contain no-repeat}.tintora-search-input__input::-webkit-search-cancel-button:hover{background-color:var(--tintora-focus)}.tintora-select{--tintora-select-font-size:.71875rem;display:inline-block;position:relative}.tintora-select__trigger{box-sizing:border-box;border-radius:var(--tintora-radius-14);height:28px;font-family:inherit;font-size:var(--tintora-select-font-size);font-weight:var(--tintora-font-weight-medium);color:var(--tintora-chip-fg);background-color:var(--tintora-chip-bg);cursor:pointer;border:0;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.tintora-select__trigger:enabled:hover,.tintora-select__trigger[aria-expanded=true]{background-color:var(--tintora-chip-bg-hover)}.tintora-select__trigger:focus-visible{box-shadow:var(--tintora-shadow-focus-ring);outline-offset:2px;outline:2px solid #0000}.tintora-select__trigger:disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}.tintora-select__value--placeholder{color:var(--tintora-text-on-card-muted)}.tintora-select__chevron{flex-shrink:0}.tintora-select__trigger[aria-expanded=true] .tintora-select__chevron{transform:rotate(180deg)}.tintora-select__menu{box-sizing:border-box;border:1px solid var(--tintora-menu-border);border-radius:var(--tintora-radius-14);max-height:50vh;color:var(--tintora-color-ink);background:var(--tintora-menu-bg);box-shadow:var(--tintora-menu-shadow);flex-direction:column;gap:2px;margin:0;padding:6px;display:flex;inset:auto;overflow-y:auto}.tintora-select__option{box-sizing:border-box;border-radius:var(--tintora-radius-12);min-height:32px;font:var(--tintora-font-body);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;padding:0 10px;display:flex}.tintora-select__option--active{background:var(--tintora-menu-item-hover)}.tintora-select__option[aria-selected=true]{font-weight:var(--tintora-font-weight-bold);color:var(--tintora-color-accent-deep);background:var(--tintora-tint-accent)}.tintora-select__option[aria-disabled=true]{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}@media (pointer:coarse){.tintora-select__option{min-height:44px}}@media (forced-colors:active){.tintora-select__option--active{outline-offset:-2px;outline:2px solid highlight}}.tintora-settings-row{box-sizing:border-box;border-radius:var(--tintora-radius-18);border:1px solid var(--tintora-border-row);background:var(--tintora-surface-row);min-height:56px;font-family:var(--tintora-font-family);color:var(--tintora-text);align-items:center;padding:10px 16px;display:flex}.tintora-settings-row--described{min-height:64px}.tintora-settings-row--control-end{justify-content:space-between;gap:12px}.tintora-settings-row--control-start{gap:22px}.tintora-settings-row__text{min-width:0}.tintora-settings-row__title{font:var(--tintora-font-subtitle)}.tintora-settings-row__description{font:var(--tintora-font-body);font-weight:var(--tintora-font-weight-regular);color:var(--tintora-text-faint);margin-top:2px}.tintora-settings-row--control-end>:not(.tintora-settings-row__text){flex:none}.tintora-skeleton{border-radius:var(--tintora-radius-pill);background:var(--tintora-shimmer);background-size:200% 100%;flex-shrink:0;width:100%;height:14px;animation:1.4s linear infinite tintora-shimmer;display:block}@keyframes tintora-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.tintora-skeleton{animation:none}}.tintora-switch{flex-shrink:0;width:44px;height:26px;display:inline-block;position:relative}.tintora-switch__input{opacity:0;cursor:pointer;width:100%;height:calc(100% + 18px);margin:0;position:absolute;inset:-9px 0}.tintora-switch__track{--tintora-switch-offset:3px;border-radius:var(--tintora-radius-pill);background:var(--tintora-switch-track);outline-offset:2px;pointer-events:none;transition:background .2s;position:absolute;inset:0}.tintora-switch__track:after{content:"";top:var(--tintora-switch-offset);left:var(--tintora-switch-offset);border-radius:var(--tintora-radius-pill);background:var(--tintora-color-white);width:20px;height:20px;box-shadow:var(--tintora-shadow-knob);transition:transform .2s;position:absolute}.tintora-switch__input:hover+.tintora-switch__track{background:var(--tintora-switch-track-hover)}.tintora-switch__input:checked+.tintora-switch__track{background:var(--tintora-control-fill)}.tintora-switch__input:checked+.tintora-switch__track:after{transform:translate(18px)}.tintora-switch__input:focus-visible+.tintora-switch__track{outline:2px solid var(--tintora-focus)}.tintora-switch__input:disabled{cursor:not-allowed}.tintora-switch__input:disabled+.tintora-switch__track{opacity:var(--tintora-opacity-disabled);background:var(--tintora-switch-track)}.tintora-switch__input:disabled:checked+.tintora-switch__track{background:var(--tintora-control-fill)}@media (prefers-reduced-motion:reduce){.tintora-switch__track,.tintora-switch__track:after{transition:none}}.tintora-tabs{font-family:var(--tintora-font-family)}.tintora-tab{font:var(--tintora-font-button);color:var(--tintora-text-nav-idle);cursor:pointer;background:0 0;border:0}.tintora-tab:focus-visible{outline:2px solid var(--tintora-focus);outline-offset:2px}.tintora-tab:disabled{opacity:.45;cursor:not-allowed}.tintora-tabs--segmented{border-radius:var(--tintora-radius-22);background:var(--tintora-fill-subtle);gap:4px;padding:4px;display:inline-flex}.tintora-tabs--segmented .tintora-tab{border-radius:var(--tintora-radius-pill);height:36px;padding:0 18px}.tintora-tabs--segmented .tintora-tab:hover:not(:disabled){color:var(--tintora-text)}.tintora-tabs--segmented .tintora-tab[aria-selected=true]{color:var(--tintora-color-on-accent-deep);background:var(--tintora-color-accent-deep)}.tintora-tabs--underline{border-bottom:1px solid var(--tintora-line);gap:24px;display:flex}.tintora-tabs--underline .tintora-tab{border-bottom:3px solid #0000;height:40px;margin-bottom:-1px;padding:0 2px}.tintora-tabs--underline .tintora-tab:hover:not(:disabled){color:var(--tintora-text)}.tintora-tabs--underline .tintora-tab[aria-selected=true]{color:var(--tintora-text);border-bottom-color:var(--tintora-control-fill)}.tintora-tag{white-space:nowrap;font:var(--tintora-font-caption);font-weight:var(--tintora-font-weight-semibold);display:inline-block}.tintora-tag--neutral{background-color:var(--tintora-tag-bg);color:var(--tintora-tag-fg)}.tintora-tag--success{background-color:var(--tintora-color-success);color:var(--tintora-color-on-success)}.tintora-tag--accent{background-color:var(--tintora-color-accent-deep);color:var(--tintora-color-on-accent-deep);font-weight:var(--tintora-font-weight-bold)}.tintora-tag--card{background-color:var(--tintora-chip-bg);color:var(--tintora-chip-fg)}.tintora-tag--small{border-radius:var(--tintora-radius-8);padding:2px 8px}.tintora-tag--medium{border-radius:var(--tintora-radius-8);padding:3px 9px}.tintora-tag--large{border-radius:var(--tintora-radius-12);padding:5px 12px}.tintora-textfield{--tintora-textfield-font-size:.8125rem;flex-direction:column;gap:8px;display:inline-flex}.tintora-textfield--disabled{opacity:var(--tintora-opacity-disabled)}.tintora-textfield__label{font:var(--tintora-font-body);font-weight:var(--tintora-font-weight-semibold);color:var(--tintora-text)}.tintora-textfield__input{box-sizing:border-box;border:1px solid var(--tintora-border-field);border-radius:var(--tintora-radius-16);height:48px;font-family:inherit;font-size:var(--tintora-textfield-font-size);color:var(--tintora-text);background-color:var(--tintora-surface-field);padding:0 16px}.tintora-textfield__input::placeholder{color:var(--tintora-text-muted);opacity:1}.tintora-textfield__input:enabled:hover{border-color:var(--tintora-border-field-hover)}.tintora-textfield__input:focus-visible{border-color:var(--tintora-focus);box-shadow:var(--tintora-shadow-focus-ring);outline-offset:2px;outline:2px solid #0000}.tintora-textfield__input[aria-invalid=true]{border-color:var(--tintora-text-error)}.tintora-textfield__input:disabled{cursor:not-allowed}.tintora-textfield__hint{font:var(--tintora-font-caption);color:var(--tintora-text-faint)}.tintora-textfield__hint--error{color:var(--tintora-text-error)}.tintora-toast{box-sizing:border-box;border-radius:var(--tintora-radius-18);background:var(--tintora-surface-toast);min-height:52px;color:var(--tintora-text-on-toast);box-shadow:var(--tintora-shadow-toast);align-items:center;gap:12px;padding:10px 10px 10px 16px;display:flex}.tintora-toast--timer{min-height:56px;padding:10px 10px 14px 16px;position:relative;overflow:hidden}.tintora-toast__message{min-width:0;font:var(--tintora-font-button);font-weight:var(--tintora-font-weight-semibold);flex:1}.tintora-toast__action{border-radius:var(--tintora-radius-pill);height:32px;font-family:inherit;font:var(--tintora-font-button);font-weight:var(--tintora-font-weight-extrabold);color:var(--tintora-toast-action);cursor:pointer;background:0 0;border:0;padding:0 12px;display:inline-block}.tintora-toast__close{border-radius:var(--tintora-radius-pill);width:32px;height:32px;color:var(--tintora-text-on-toast-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:flex}.tintora-toast__progress{background:var(--tintora-toast-action);width:100%;height:4px;animation:progress-bar var(--tintora-toast-animation-duration) forwards;position:absolute;bottom:0;left:0}.tintora-toast--paused .tintora-toast__progress{animation-play-state:paused}@keyframes progress-bar{0%{width:100%}to{width:0}}@media (prefers-reduced-motion:reduce){.tintora-toast__progress{display:none}}.tintora-toggle{border-radius:var(--tintora-radius-pill);background-color:var(--tintora-fill-subtle);gap:4px;padding:5px;display:inline-flex;position:relative}.tintora-toggle--disabled{opacity:var(--tintora-opacity-disabled)}.tintora-toggle__item{box-sizing:border-box;border-radius:var(--tintora-radius-pill);min-width:34px;height:34px;color:var(--tintora-text-nav-idle);font:var(--tintora-font-label);cursor:pointer;outline-offset:2px;z-index:1;background:0 0;border:0;outline:none;justify-content:center;align-items:center;padding:0 8px;transition:color .2s;display:inline-flex}.tintora-toggle__item[aria-pressed=true]{color:#fff}.tintora-toggle__thumb{width:var(--tintora-toggle-thumb-width);border-radius:var(--tintora-radius-pill);background-color:var(--tintora-color-accent);transform:translateX(var(--tintora-toggle-thumb-x));pointer-events:none;transition:transform .2s;position:absolute;inset-block:5px;inset-inline-start:0}@media (prefers-reduced-motion:reduce){.tintora-toggle__thumb,.tintora-toggle__item{transition:none}}.tintora-toggle__item:focus-visible{outline:2px solid var(--tintora-focus)}.tintora-toggle__item:disabled{cursor:not-allowed}.tintora-toggle:not(.tintora-toggle--disabled) .tintora-toggle__item:disabled{opacity:var(--tintora-opacity-disabled)}.tintora-tooltip{display:contents}.tintora-tooltip__content{box-sizing:border-box;border-radius:var(--tintora-radius-10);width:max-content;font:var(--tintora-font-body);font-weight:var(--tintora-font-weight-semibold);white-space:nowrap;color:var(--tintora-text-on-tooltip);background:var(--tintora-surface-tooltip);box-shadow:var(--tintora-shadow-tooltip);border:0;align-items:center;gap:10px;margin:0;padding:6px 10px;display:inline-flex;inset:auto;overflow:visible}.tintora-tooltip__content:before{content:"";background:inherit;width:8px;height:8px;position:absolute;transform:rotate(45deg)}.tintora-tooltip__content--top:before{bottom:-4px;left:calc(var(--tintora-tooltip-arrow-offset,50%) - 4px)}.tintora-tooltip__content--bottom:before{top:-4px;left:calc(var(--tintora-tooltip-arrow-offset,50%) - 4px)}.tintora-tooltip__content--left:before{right:-4px;top:calc(var(--tintora-tooltip-arrow-offset,50%) - 4px)}.tintora-tooltip__content--right:before{left:-4px;top:calc(var(--tintora-tooltip-arrow-offset,50%) - 4px)}.tintora-tooltip__shortcut{border-radius:var(--tintora-radius-6);font:var(--tintora-font-caption);font-weight:var(--tintora-font-weight-bold);background:var(--tintora-tooltip-kbd-bg);margin-right:-2px;padding:2px 6px}.tintora-tooltip__content--rich{border-radius:var(--tintora-radius-12);width:220px;font-weight:var(--tintora-font-weight-medium);white-space:normal;padding:10px 12px;display:block}.tintora-tooltip__title{font:var(--tintora-font-label);display:block}.tintora-tooltip__text{min-width:0}.tintora-tooltip__content--rich .tintora-tooltip__text{color:var(--tintora-text-on-tooltip-muted);margin-top:2px;line-height:1.45;display:block}.tintora-tooltip__content--rich .tintora-tooltip__shortcut{margin-top:8px;display:inline-block}@media (prefers-reduced-motion:no-preference){.tintora-tooltip__content{animation:.12s ease-out tintora-tooltip-in}}@keyframes tintora-tooltip-in{0%{opacity:0}}
1
+ :root{--tintora-color-accent:#ee6b25;--tintora-color-accent-deep:#c94e0c;--tintora-color-success:#4cc56b;--tintora-color-planned:#f2698c;--tintora-color-heart:#c42a56;--tintora-color-steps:#1f7a38;--tintora-color-sleep:#2f4fc4;--tintora-color-ink:#1d1c1c;--tintora-color-white:#fff;--tintora-color-destructive:#b3261e;--tintora-color-on-accent:#1d0e04;--tintora-color-on-accent-deep:var(--tintora-color-white);--tintora-color-on-success:#0d200f;--tintora-color-on-planned:#260a13;--tintora-color-on-heart:var(--tintora-color-white);--tintora-color-on-steps:var(--tintora-color-white);--tintora-color-on-sleep:var(--tintora-color-white);--tintora-color-on-destructive:var(--tintora-color-white);--tintora-text-on-card-muted:#55524f;--tintora-chip-fg:#3c3a38;--tintora-chip-bg:#efedeb;--tintora-chip-bg-hover:#e4e1de;--tintora-chip-selected-fg:#8f3604;--tintora-chip-selected-bg:var(--tintora-color-white);--tintora-tint-accent:#fdeadd;--tintora-tint-heart:#fbe0e8;--tintora-tint-steps:#dcf3e1;--tintora-tint-sleep:#e0e7fb;--tintora-menu-bg:var(--tintora-color-white);--tintora-menu-border:#1d1c1c1a;--tintora-menu-shadow:0 16px 32px #00000038;--tintora-menu-item-hover:#1d1c1c12;--tintora-menu-item-destructive:var(--tintora-color-destructive);--tintora-chart-grid:#ece9e6;--tintora-chart-axis:#6f6b68;--tintora-chart-track:#e6e4e2;--tintora-surface-menu-row:#ffffff0d;--tintora-font-family:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--tintora-font-weight-regular:400;--tintora-font-weight-medium:500;--tintora-font-weight-semibold:600;--tintora-font-weight-bold:700;--tintora-font-weight-extrabold:800;--tintora-line-height-tight:1.2;--tintora-font-display:700 1.625rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-title:700 1.125rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-heading:700 .9375rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-label:700 .78125rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-body:500 .75rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-caption:400 .6875rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-stat-value:800 1.5625rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-subtitle:700 .875rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-button:700 .8125rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-font-button-sm:700 .75rem/var(--tintora-line-height-tight) var(--tintora-font-family);--tintora-tracking-tight:-.02em;--tintora-tracking-snug:-.01em;--tintora-tracking-wide:.04em;--tintora-radius-2:2px;--tintora-radius-4:4px;--tintora-radius-6:6px;--tintora-radius-7:7px;--tintora-radius-8:8px;--tintora-radius-9:9px;--tintora-radius-10:10px;--tintora-radius-12:12px;--tintora-radius-14:14px;--tintora-radius-16:16px;--tintora-radius-18:18px;--tintora-radius-20:20px;--tintora-radius-22:22px;--tintora-radius-26:26px;--tintora-radius-28:28px;--tintora-radius-30:30px;--tintora-radius-32:32px;--tintora-radius-34:34px;--tintora-radius-38:38px;--tintora-radius-40:40px;--tintora-radius-pill:9999px;--tintora-radius-card:var(--tintora-radius-20);--tintora-radius-panel:var(--tintora-radius-32);--tintora-shadow-selected:0 14px 30px #c94e0c73;--tintora-shadow-primary:0 8px 20px #c94e0c59;--tintora-shadow-accent:0 8px 20px #ee6b2566;--tintora-shadow-focus-ring:0 0 0 3px #ee6b2547;--tintora-shadow-menu:0 16px 32px #00000073;--tintora-shadow-tooltip:0 8px 20px #00000040;--tintora-shadow-knob:0 2px 4px #0000004d;--tintora-shadow-sheet:0 -16px 40px #00000059;--tintora-blur-glass:28px;--tintora-duration-fast:.15s;--tintora-duration-base:.2s;--tintora-opacity-disabled:.45}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--tintora-bg:linear-gradient(180deg, #3e3b3a, #222020);--tintora-surface-glass:linear-gradient(180deg, #3e3b3acc, #222020e6);--tintora-surface-card:#fbfaf9;--tintora-surface-row:#ffffff0f;--tintora-surface-field:#100f0f9e;--tintora-surface-menu:#1e1c1cf7;--tintora-text:var(--tintora-color-white);--tintora-text-muted:#ffffffb8;--tintora-text-faint:#ffffffa6;--tintora-text-nav-idle:#ffffffc7;--tintora-text-day:#ffffffd1;--tintora-text-error:#ff9a8a;--tintora-border-glass:#ffffff14;--tintora-border-card:transparent;--tintora-border-row:#ffffff0f;--tintora-border-field:#ffffff14;--tintora-border-field-hover:#ffffff52;--tintora-line:#ffffff1a;--tintora-line-strong:#ffffff52;--tintora-fill-subtle:#ffffff1a;--tintora-fill-subtle-hover:#fff3;--tintora-fill-subtle-pressed:#ffffff47;--tintora-fill-ghost-hover:#ffffff1f;--tintora-fill-day-hover:#ffffff24;--tintora-tag-bg:#ffffff24;--tintora-tag-fg:var(--tintora-color-white);--tintora-focus:var(--tintora-color-accent);--tintora-link:var(--tintora-color-accent);--tintora-ring:var(--tintora-color-white);--tintora-shadow-glass:0 30px 60px #00000059;--tintora-shadow-card:0 10px 24px #0000002e;--tintora-shadow-card-hover:0 18px 36px #00000052;--tintora-bg-glow:radial-gradient(60% 50% at 6% 8%, #deccb080, transparent 62%), radial-gradient(50% 45% at 96% 10%, #846a5680, transparent 62%);--tintora-text-placeholder:#ffffff9e;--tintora-scrim:#0a090999;--tintora-surface-modal:linear-gradient(180deg, #403c3b, #2a2726);--tintora-border-modal:#ffffff1f;--tintora-shadow-modal:0 40px 80px #00000080;--tintora-surface-popover:#2b2928;--tintora-border-popover:#ffffff24;--tintora-shadow-popover:0 24px 48px #00000073;--tintora-surface-tooltip:#fbfaf9;--tintora-text-on-tooltip:var(--tintora-color-ink);--tintora-text-on-tooltip-muted:#5a5754;--tintora-tooltip-kbd-bg:#1d1c1c1a;--tintora-surface-toast:#fbfaf9;--tintora-text-on-toast:var(--tintora-color-ink);--tintora-text-on-toast-muted:#5a5754;--tintora-toast-action:var(--tintora-color-accent-deep);--tintora-shadow-toast:0 16px 36px #0006;--tintora-toast-icon-success:var(--tintora-color-steps);--tintora-toast-icon-error:var(--tintora-color-destructive);--tintora-toast-icon-info:var(--tintora-color-sleep);--tintora-toast-icon-warning:#8a5600;--tintora-status-info-bg:#7896ff24;--tintora-status-info-border:#96afff61;--tintora-status-info-fg:#a9bcff;--tintora-status-success-bg:#4cc56b24;--tintora-status-success-border:#4cc56b66;--tintora-status-success-fg:#6ddb8b;--tintora-status-warning-bg:#f2a33a26;--tintora-status-warning-border:#f2a33a6b;--tintora-status-warning-fg:#f5b45a;--tintora-status-error-bg:#ff826e26;--tintora-status-error-border:#ff8c786b;--tintora-status-error-fg:var(--tintora-text-error);--tintora-control-fill:var(--tintora-color-accent);--tintora-control-on-fill:var(--tintora-color-on-accent);--tintora-control-border:#fff9;--tintora-control-hover-tint:#ee6b2529;--tintora-switch-track:#ffffff4d;--tintora-switch-track-hover:#fff6;--tintora-shimmer:linear-gradient(90deg, #ffffff14 0%, #fff3 50%, #ffffff14 100%)}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--tintora-bg:linear-gradient(180deg, #fcfaf7, #f2ebe4);--tintora-surface-glass:linear-gradient(180deg, #ffffffb3, #ffffff80);--tintora-surface-card:#fff;--tintora-surface-row:#ffffffd9;--tintora-surface-field:#ffffffd9;--tintora-surface-menu:#2a2827;--tintora-text:var(--tintora-color-ink);--tintora-text-muted:#5a5754;--tintora-text-faint:#5a5754;--tintora-text-nav-idle:#4a4745;--tintora-text-day:#2b2927;--tintora-text-error:var(--tintora-color-destructive);--tintora-border-glass:#ffffffd9;--tintora-border-card:#1d1c1c0d;--tintora-border-row:#1d1c1c0f;--tintora-border-field:#1d1c1c14;--tintora-border-field-hover:#1d1c1c4d;--tintora-line:#1d1c1c1a;--tintora-line-strong:#1d1c1c4d;--tintora-fill-subtle:#1d1c1c12;--tintora-fill-subtle-hover:#1d1c1c24;--tintora-fill-subtle-pressed:#1d1c1c33;--tintora-fill-ghost-hover:#1d1c1c14;--tintora-fill-day-hover:#1d1c1c1a;--tintora-tag-bg:#1d1c1c12;--tintora-tag-fg:var(--tintora-color-ink);--tintora-focus:var(--tintora-color-accent-deep);--tintora-link:var(--tintora-color-accent-deep);--tintora-ring:var(--tintora-color-ink);--tintora-shadow-glass:0 30px 60px #60402024;--tintora-shadow-card:0 10px 24px #6040201a;--tintora-shadow-card-hover:0 18px 36px #60402033;--tintora-bg-glow:radial-gradient(60% 50% at 6% 8%, #ffd6ace6, transparent 62%), radial-gradient(50% 45% at 96% 10%, #ffeed6f2, transparent 62%);--tintora-text-placeholder:#5f5b58;--tintora-scrim:#1d1c1c73;--tintora-surface-modal:#fff;--tintora-border-modal:#1d1c1c0f;--tintora-shadow-modal:0 40px 80px #3c281459;--tintora-surface-popover:#fff;--tintora-border-popover:#1d1c1c1a;--tintora-shadow-popover:0 24px 48px #3c281438;--tintora-surface-tooltip:#2a2827;--tintora-text-on-tooltip:var(--tintora-color-white);--tintora-text-on-tooltip-muted:#ffffffc7;--tintora-tooltip-kbd-bg:#ffffff2e;--tintora-surface-toast:#2a2827;--tintora-text-on-toast:var(--tintora-color-white);--tintora-text-on-toast-muted:#ffffffbf;--tintora-toast-action:#ff9a5c;--tintora-shadow-toast:0 16px 36px #3c281459;--tintora-toast-icon-success:var(--tintora-color-success);--tintora-toast-icon-error:#ff9a8a;--tintora-toast-icon-info:#9db4ff;--tintora-toast-icon-warning:#f2a33a;--tintora-status-info-bg:#2f4fc414;--tintora-status-info-border:#2f4fc447;--tintora-status-info-fg:var(--tintora-color-sleep);--tintora-status-success-bg:#1f7a3817;--tintora-status-success-border:#1f7a384d;--tintora-status-success-fg:var(--tintora-color-steps);--tintora-status-warning-bg:#a86a0a1a;--tintora-status-warning-border:#a86a0a52;--tintora-status-warning-fg:#8a5600;--tintora-status-error-bg:#b3261e14;--tintora-status-error-border:#b3261e47;--tintora-status-error-fg:var(--tintora-text-error);--tintora-control-fill:var(--tintora-color-accent-deep);--tintora-control-on-fill:var(--tintora-color-white);--tintora-control-border:#1d1c1c8c;--tintora-control-hover-tint:#ee6b2529;--tintora-switch-track:#1d1c1c61;--tintora-switch-track-hover:#1d1c1c80;--tintora-shimmer:linear-gradient(90deg, #1d1c1c12 0%, #1d1c1c29 50%, #1d1c1c12 100%)}@media (prefers-color-scheme:light){:root:not([data-theme]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--tintora-bg:linear-gradient(180deg, #fcfaf7, #f2ebe4);--tintora-surface-glass:linear-gradient(180deg, #ffffffb3, #ffffff80);--tintora-surface-card:#fff;--tintora-surface-row:#ffffffd9;--tintora-surface-field:#ffffffd9;--tintora-surface-menu:#2a2827;--tintora-text:var(--tintora-color-ink);--tintora-text-muted:#5a5754;--tintora-text-faint:#5a5754;--tintora-text-nav-idle:#4a4745;--tintora-text-day:#2b2927;--tintora-text-error:var(--tintora-color-destructive);--tintora-border-glass:#ffffffd9;--tintora-border-card:#1d1c1c0d;--tintora-border-row:#1d1c1c0f;--tintora-border-field:#1d1c1c14;--tintora-border-field-hover:#1d1c1c4d;--tintora-line:#1d1c1c1a;--tintora-line-strong:#1d1c1c4d;--tintora-fill-subtle:#1d1c1c12;--tintora-fill-subtle-hover:#1d1c1c24;--tintora-fill-subtle-pressed:#1d1c1c33;--tintora-fill-ghost-hover:#1d1c1c14;--tintora-fill-day-hover:#1d1c1c1a;--tintora-tag-bg:#1d1c1c12;--tintora-tag-fg:var(--tintora-color-ink);--tintora-focus:var(--tintora-color-accent-deep);--tintora-link:var(--tintora-color-accent-deep);--tintora-ring:var(--tintora-color-ink);--tintora-shadow-glass:0 30px 60px #60402024;--tintora-shadow-card:0 10px 24px #6040201a;--tintora-shadow-card-hover:0 18px 36px #60402033;--tintora-bg-glow:radial-gradient(60% 50% at 6% 8%, #ffd6ace6, transparent 62%), radial-gradient(50% 45% at 96% 10%, #ffeed6f2, transparent 62%);--tintora-text-placeholder:#5f5b58;--tintora-scrim:#1d1c1c73;--tintora-surface-modal:#fff;--tintora-border-modal:#1d1c1c0f;--tintora-shadow-modal:0 40px 80px #3c281459;--tintora-surface-popover:#fff;--tintora-border-popover:#1d1c1c1a;--tintora-shadow-popover:0 24px 48px #3c281438;--tintora-surface-tooltip:#2a2827;--tintora-text-on-tooltip:var(--tintora-color-white);--tintora-text-on-tooltip-muted:#ffffffc7;--tintora-tooltip-kbd-bg:#ffffff2e;--tintora-surface-toast:#2a2827;--tintora-text-on-toast:var(--tintora-color-white);--tintora-text-on-toast-muted:#ffffffbf;--tintora-toast-action:#ff9a5c;--tintora-shadow-toast:0 16px 36px #3c281459;--tintora-toast-icon-success:var(--tintora-color-success);--tintora-toast-icon-error:#ff9a8a;--tintora-toast-icon-info:#9db4ff;--tintora-toast-icon-warning:#f2a33a;--tintora-status-info-bg:#2f4fc414;--tintora-status-info-border:#2f4fc447;--tintora-status-info-fg:var(--tintora-color-sleep);--tintora-status-success-bg:#1f7a3817;--tintora-status-success-border:#1f7a384d;--tintora-status-success-fg:var(--tintora-color-steps);--tintora-status-warning-bg:#a86a0a1a;--tintora-status-warning-border:#a86a0a52;--tintora-status-warning-fg:#8a5600;--tintora-status-error-bg:#b3261e14;--tintora-status-error-border:#b3261e47;--tintora-status-error-fg:var(--tintora-text-error);--tintora-control-fill:var(--tintora-color-accent-deep);--tintora-control-on-fill:var(--tintora-color-white);--tintora-control-border:#1d1c1c8c;--tintora-control-hover-tint:#ee6b2529;--tintora-switch-track:#1d1c1c61;--tintora-switch-track-hover:#1d1c1c80;--tintora-shimmer:linear-gradient(90deg, #1d1c1c12 0%, #1d1c1c29 50%, #1d1c1c12 100%)}}.tintora-alert{box-sizing:border-box;border-radius:var(--tintora-radius-20);background:var(--tintora-alert-status-bg);border:var(--tintora-alert-status-border);align-items:flex-start;gap:14px;padding:16px 12px 16px 18px;display:flex}.tintora-alert--info{--tintora-alert-status-bg:var(--tintora-status-info-bg);--tintora-alert-status-border:1px solid var(--tintora-status-info-border)}.tintora-alert--success{--tintora-alert-status-bg:var(--tintora-status-success-bg);--tintora-alert-status-border:1px solid var(--tintora-status-success-border)}.tintora-alert--warning{--tintora-alert-status-bg:var(--tintora-status-warning-bg);--tintora-alert-status-border:1px solid var(--tintora-status-warning-border)}.tintora-alert--error{--tintora-alert-status-bg:var(--tintora-status-error-bg);--tintora-alert-status-border:1px solid var(--tintora-status-error-border)}.tintora-alert--announcement{border-radius:var(--tintora-radius-14);background:var(--tintora-color-accent-deep);height:44px;color:var(--tintora-color-on-accent-deep);font:var(--tintora-font-button);padding:0 16px}.tintora-alert__content{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.tintora-alert__content--announcement{flex-direction:row;justify-content:center;align-items:center;gap:14px;height:100%}.tintora-alert__content--announcement>.tintora-alert__content__sub-title{color:inherit;font:var(--tintora-font-button)}.tintora-alert__content--announcement>.tintora-alert__content__action{font:var(--tintora-font-button);color:inherit;align-self:inherit;margin-top:0}.tintora-alert__content__title{font:var(--tintora-font-subtitle)}.tintora-alert__content__sub-title{font:var(--tintora-font-label);line-height:1.5;font-weight:var(--tintora-font-weight-regular);color:var(--tintora-text-muted)}.tintora-alert__content__action{font:var(--tintora-font-label);color:var(--tintora-alert-status-action);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-self:flex-start;margin-top:6px;padding:0;text-decoration:underline}.tintora-alert__content__action--info{--tintora-alert-status-action:var(--tintora-status-info-fg)}.tintora-alert__content__action--success{--tintora-alert-status-action:var(--tintora-status-success-fg)}.tintora-alert__content__action--warning{--tintora-alert-status-action:var(--tintora-status-warning-fg)}.tintora-alert__content__action--error{--tintora-alert-status-action:var(--tintora-status-error-fg)}.tintora-alert__close{border-radius:var(--tintora-radius-pill);width:32px;height:32px;color:var(--tintora-text-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:flex}.tintora-avatar{border-radius:var(--tintora-radius-pill);color:var(--tintora-color-ink);font:var(--tintora-font-body);font-size:var(--tintora-avatar-font-size);font-weight:var(--tintora-font-weight-bold);background:linear-gradient(135deg,#f1d9bf,#c9a07a);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.tintora-avatar>img{object-fit:cover;width:100%;height:100%}.tintora-avatar--small{--tintora-avatar-font-size:.6875rem;width:32px;height:32px;font-weight:var(--tintora-font-weight-bold)}.tintora-avatar--medium{--tintora-avatar-font-size:.8125rem;width:40px;height:40px;font-weight:var(--tintora-font-weight-bold)}.tintora-avatar--large{--tintora-avatar-font-size:.875rem;width:44px;height:44px;font-weight:var(--tintora-font-weight-bold)}.tintora-drawer{box-sizing:border-box;width:var(--tintora-drawer-width,100vw);height:var(--tintora-drawer-height,auto);border:1px solid var(--tintora-border-modal);max-width:none;max-height:none;font-family:var(--tintora-font-family);color:var(--tintora-text);background:var(--tintora-surface-modal);box-shadow:var(--tintora-shadow-modal);transform:var(--tintora-drawer-offset);margin:0;padding:28px;position:fixed;overflow:auto}.tintora-drawer[open]{transform:none}.tintora-drawer::backdrop{background:var(--tintora-scrim)}.tintora-drawer--from-left,.tintora-drawer--from-right{width:var(--tintora-drawer-width,400px);height:var(--tintora-drawer-height,100vh)}.tintora-drawer--from-right{border-radius:var(--tintora-radius-32) 0 0 var(--tintora-radius-32);--tintora-drawer-offset:translateX(100%);inset:0 0 0 auto}.tintora-drawer--from-left{border-radius:0 var(--tintora-radius-32) var(--tintora-radius-32) 0;--tintora-drawer-offset:translateX(-100%);inset:0 auto 0 0}.tintora-drawer--from-top{border-radius:0 0 var(--tintora-radius-32) var(--tintora-radius-32);--tintora-drawer-offset:translateY(-100%);inset:0 0 auto}.tintora-drawer--from-bottom{border-radius:var(--tintora-radius-32) var(--tintora-radius-32) 0 0;--tintora-drawer-offset:translateY(100%);inset:auto 0 0}@media (width<=480px){.tintora-drawer--from-left,.tintora-drawer--from-right{border-radius:0;width:100vw}}@media (prefers-reduced-motion:no-preference){.tintora-drawer,.tintora-drawer::backdrop{transition:transform .3s ease, opacity .3s ease, overlay .3s allow-discrete, display .3s allow-discrete}.tintora-drawer::backdrop{opacity:0}.tintora-drawer[open]::backdrop{opacity:1}@starting-style{.tintora-drawer[open]{transform:var(--tintora-drawer-offset)}.tintora-drawer[open]::backdrop{opacity:0}}}body:has(.tintora-drawer:modal){overflow:hidden}.tintora-drawer.tintora-bottom-sheet{border:0;border-top:1px solid var(--tintora-border-popover);border-radius:var(--tintora-radius-28) var(--tintora-radius-28) 0 0;max-height:calc(100dvh - 48px);box-shadow:var(--tintora-shadow-sheet);flex-direction:column;gap:6px;padding:10px 16px 16px}.tintora-drawer.tintora-bottom-sheet[open]{display:flex}.tintora-bottom-sheet__grabber{border-radius:var(--tintora-radius-pill);background:var(--tintora-text-faint);flex:none;align-self:center;width:36px;height:4px}.tintora-bottom-sheet__title{font:var(--tintora-font-heading);padding:8px 4px 6px}.tintora-bottom-sheet__option{box-sizing:border-box;border-radius:var(--tintora-radius-16);height:48px;font:var(--tintora-font-button);font-weight:var(--tintora-font-weight-semibold);text-align:left;color:var(--tintora-text);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:space-between;align-items:center;padding:0 14px;display:flex}.tintora-bottom-sheet__option:hover{background:var(--tintora-fill-subtle-hover)}.tintora-bottom-sheet__option:focus-visible{outline:2px solid var(--tintora-focus);outline-offset:2px}.tintora-bottom-sheet__option[aria-pressed=true]{background:var(--tintora-fill-subtle)}.tintora-bottom-sheet__check{color:var(--tintora-control-fill);opacity:0;flex:none}.tintora-bottom-sheet__option[aria-pressed=true] .tintora-bottom-sheet__check{opacity:1}.tintora-spinner{flex-shrink:0;animation:.9s linear infinite tintora-spin}@keyframes tintora-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.tintora-spinner{animation:none}}.tintora-button{--tintora-button-border:1px solid transparent;box-sizing:border-box;cursor:pointer;outline-offset:2px;height:var(--tintora-button-height);padding:0 var(--tintora-button-padding-x);border:var(--tintora-button-border);border-radius:var(--tintora-button-border-radius);font-family:inherit;font-size:var(--tintora-button-font-size);font-weight:var(--tintora-button-font-weight);color:var(--tintora-button-fg);background-color:var(--tintora-button-bg);box-shadow:var(--tintora-button-shadow,none);outline:none;justify-content:center;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.tintora-button--small{--tintora-button-height:32px;--tintora-button-padding-x:14px;--tintora-button-border-radius:16px;--tintora-button-font-size:12px;--tintora-button-font-weight:var(--tintora-font-weight-bold)}.tintora-button--medium{--tintora-button-height:40px;--tintora-button-padding-x:18px;--tintora-button-border-radius:20px;--tintora-button-font-size:13px;--tintora-button-font-weight:var(--tintora-font-weight-bold)}.tintora-button--large{--tintora-button-height:48px;--tintora-button-padding-x:24px;--tintora-button-border-radius:24px;--tintora-button-font-size:14px;--tintora-button-font-weight:var(--tintora-font-weight-bold)}.tintora-button__icon{flex-shrink:0;display:inline-flex}.tintora-button--leading-icon{padding-inline-start:calc(var(--tintora-button-padding-x) - 4px)}.tintora-button--trailing-icon{padding-inline-end:calc(var(--tintora-button-padding-x) - 4px)}.tintora-button--full-width{width:100%}.tintora-button--primary{--tintora-button-fg:var(--tintora-color-on-accent-deep);--tintora-button-bg:var(--tintora-color-accent-deep);--tintora-button-shadow:var(--tintora-shadow-primary);--tintora-button-filter-hover:brightness(1.14);--tintora-button-filter-pressed:brightness(.9)}.tintora-button--secondary{--tintora-button-fg:var(--tintora-text);--tintora-button-bg:var(--tintora-fill-subtle);--tintora-button-bg-hover:var(--tintora-fill-subtle-hover);--tintora-button-bg-pressed:var(--tintora-fill-subtle-pressed)}.tintora-button--outline{--tintora-button-border:1px solid var(--tintora-line-strong);--tintora-button-fg:var(--tintora-text);--tintora-button-bg:transparent;--tintora-button-bg-hover:var(--tintora-fill-ghost-hover);--tintora-button-bg-pressed:var(--tintora-fill-subtle)}.tintora-button--ghost{--tintora-button-fg:var(--tintora-text-muted);--tintora-button-fg-hover:var(--tintora-text);--tintora-button-fg-pressed:var(--tintora-text);--tintora-button-bg:transparent;--tintora-button-bg-hover:var(--tintora-fill-ghost-hover);--tintora-button-bg-pressed:var(--tintora-fill-subtle)}.tintora-button:not(:disabled,[aria-disabled=true]):hover{color:var(--tintora-button-fg-hover,var(--tintora-button-fg));background-color:var(--tintora-button-bg-hover,var(--tintora-button-bg));filter:var(--tintora-button-filter-hover,none)}.tintora-button:not(:disabled,[aria-disabled=true]):active{color:var(--tintora-button-fg-pressed,var(--tintora-button-fg));background-color:var(--tintora-button-bg-pressed,var(--tintora-button-bg));filter:var(--tintora-button-filter-pressed,none);transform:translateY(1px)}.tintora-button:focus-visible{outline:2px solid var(--tintora-focus)}.tintora-button:is(:disabled,[aria-disabled=true]){opacity:var(--tintora-opacity-disabled);cursor:not-allowed;box-shadow:none}.tintora-button[aria-disabled=true]{pointer-events:none}.tintora-button--loading:is(:disabled,[aria-disabled=true]){opacity:.85;cursor:progress}.tintora-card{box-sizing:border-box;font:inherit;text-align:start;border:1px solid #0000;justify-content:space-between;align-items:center;gap:12px;margin:0;display:flex}.tintora-card--surface{border-color:var(--tintora-border-card);border-radius:var(--tintora-radius-card);background:var(--tintora-surface-card);box-shadow:var(--tintora-shadow-card);color:var(--tintora-color-ink);--tintora-card-text-muted:var(--tintora-text-on-card-muted);padding:18px 18px 18px 20px}.tintora-card--row{border-color:var(--tintora-border-row);border-radius:var(--tintora-radius-18);background:var(--tintora-surface-row);color:var(--tintora-text);--tintora-card-text-muted:var(--tintora-text-faint);justify-content:flex-start;padding:10px 6px 10px 10px}.tintora-card--selectable{cursor:pointer;width:100%}@media (prefers-reduced-motion:no-preference){.tintora-card--selectable{transition:transform .15s,box-shadow .15s,background-color .15s}}.tintora-card--selectable:not(.tintora-card--selected):hover{box-shadow:var(--tintora-shadow-card-hover);transform:translateY(-3px)}.tintora-card--selectable:focus-visible{outline:2px solid var(--tintora-focus);outline-offset:2px}.tintora-card--selectable:disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}.tintora-card--selected{background:var(--tintora-color-accent-deep);box-shadow:var(--tintora-shadow-selected);color:var(--tintora-color-on-accent-deep);--tintora-card-text-muted:var(--tintora-color-on-accent-deep);border-color:#0000}.tintora-card--selected .tintora-tag--card{background-color:var(--tintora-chip-selected-bg);color:var(--tintora-chip-selected-fg);font-weight:var(--tintora-font-weight-bold)}.tintora-checkbox{flex-shrink:0;width:22px;height:22px;display:inline-block;position:relative}.tintora-checkbox__input{opacity:0;cursor:pointer;width:44px;height:44px;margin:0;position:absolute;inset:-11px}.tintora-checkbox__box{box-sizing:border-box;border:2px solid var(--tintora-control-border);border-radius:var(--tintora-radius-7);outline-offset:2px;pointer-events:none;background:0 0;justify-content:center;align-items:center;transition:background .15s,border-color .15s;display:flex;position:absolute;inset:0}.tintora-checkbox__check,.tintora-checkbox__dash{stroke:var(--tintora-control-on-fill);opacity:0;position:absolute}.tintora-checkbox__input:enabled:hover+.tintora-checkbox__box{border-color:var(--tintora-control-fill);background:var(--tintora-control-hover-tint)}.tintora-checkbox__input:checked+.tintora-checkbox__box,.tintora-checkbox__input:indeterminate+.tintora-checkbox__box{border-color:var(--tintora-control-fill);background:var(--tintora-control-fill)}.tintora-checkbox__input:checked+.tintora-checkbox__box .tintora-checkbox__check{opacity:1}.tintora-checkbox__input:indeterminate+.tintora-checkbox__box .tintora-checkbox__check{opacity:0}.tintora-checkbox__input:indeterminate+.tintora-checkbox__box .tintora-checkbox__dash{opacity:1}.tintora-checkbox__input:focus-visible+.tintora-checkbox__box{outline:2px solid var(--tintora-focus)}.tintora-checkbox__input:disabled{cursor:not-allowed}.tintora-checkbox__input:disabled+.tintora-checkbox__box{opacity:var(--tintora-opacity-disabled)}@media (prefers-reduced-motion:reduce){.tintora-checkbox__box{transition:none}}.tintora-chip{border-radius:var(--tintora-radius-12);background-color:var(--tintora-chip-bg);color:var(--tintora-chip-fg);font:var(--tintora-font-caption);font-weight:var(--tintora-font-weight-semibold);cursor:pointer;outline-offset:2px;border:0;outline:none;align-items:center;padding:6px 12px;display:inline-flex}.tintora-chip:enabled:hover:not([aria-pressed=true]){background-color:var(--tintora-chip-bg-hover)}.tintora-chip[aria-pressed=true]{background-color:var(--tintora-chip-selected-bg);color:var(--tintora-chip-selected-fg);font-weight:var(--tintora-font-weight-bold)}.tintora-chip:focus-visible{outline:2px solid var(--tintora-focus)}.tintora-chip:disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}.tintora-dot{box-sizing:border-box;forced-color-adjust:none;flex-shrink:0;display:inline-block}.tintora-dot--unread{border-radius:var(--tintora-radius-pill);background-color:var(--tintora-color-accent);width:8px;height:8px}.tintora-dot--read{border-radius:var(--tintora-radius-pill);border:1.5px solid var(--tintora-text-faint);width:8px;height:8px}.tintora-dot--tick{background-color:var(--tintora-color-accent);border-radius:2px;width:3px;height:15px}.tintora-button.tintora-icon-button{--tintora-button-padding-x:0px}.tintora-icon-button{width:var(--tintora-button-height);flex-shrink:0}.tintora-icon-button__icon{display:inline-flex}.tintora-icon-button__icon svg{width:var(--tintora-icon-button-icon-size);height:var(--tintora-icon-button-icon-size)}.tintora-icon-button.tintora-icon-button--small{--tintora-button-height:32px;--tintora-icon-button-icon-size:14px}.tintora-icon-button.tintora-icon-button--medium{--tintora-button-height:36px;--tintora-icon-button-icon-size:15px}.tintora-icon-button.tintora-icon-button--large{--tintora-button-height:44px;--tintora-icon-button-icon-size:18px}.tintora-icon-button.tintora-icon-button--round{--tintora-button-border-radius:var(--tintora-radius-pill)}.tintora-icon-button.tintora-icon-button--field{--tintora-button-height:48px;--tintora-button-border-radius:var(--tintora-radius-pill);--tintora-button-border:1px solid var(--tintora-border-field);--tintora-button-fg:var(--tintora-text);--tintora-button-bg:var(--tintora-surface-field);--tintora-button-bg-hover:var(--tintora-surface-field);--tintora-button-bg-pressed:var(--tintora-fill-subtle);--tintora-icon-button-icon-size:18px}.tintora-icon-button--field:not(:disabled,[aria-disabled=true]):hover{border-color:var(--tintora-border-field-hover)}.tintora-icon-button--field:not(:disabled,[aria-disabled=true]):active{border-color:var(--tintora-border-field)}.tintora-icon-button.tintora-icon-button--nav{--tintora-button-height:44px;--tintora-button-border-radius:var(--tintora-radius-14);--tintora-button-fg:var(--tintora-text-nav-idle);--tintora-button-fg-hover:var(--tintora-text);--tintora-button-fg-pressed:var(--tintora-text);--tintora-button-bg:transparent;--tintora-button-bg-hover:var(--tintora-fill-ghost-hover);--tintora-button-bg-pressed:var(--tintora-fill-ghost-hover);--tintora-icon-button-icon-size:20px}.tintora-icon-button.tintora-icon-button--nav[aria-current=page]{--tintora-button-fg:#fff;--tintora-button-fg-hover:#fff;--tintora-button-fg-pressed:#fff;--tintora-button-bg:var(--tintora-color-accent);--tintora-button-bg-hover:var(--tintora-color-accent);--tintora-button-bg-pressed:var(--tintora-color-accent);--tintora-button-shadow:var(--tintora-shadow-accent)}.tintora-link{color:var(--tintora-link-color);text-underline-offset:.2em;border-radius:2px;text-decoration:underline;text-decoration-thickness:1px}.tintora-link--accent{--tintora-link-color:var(--tintora-link)}.tintora-link--white{--tintora-link-color:var(--tintora-color-white)}.tintora-link--transparent{--tintora-link-color:inherit;text-decoration:none;display:block}.tintora-link:hover{text-decoration-thickness:2px}.tintora-link--transparent:hover{text-decoration:none}.tintora-link:focus-visible{outline:2px solid var(--tintora-focus);outline-offset:2px}.tintora-modal{box-sizing:border-box;width:min(var(--tintora-modal-width), calc(100vw - 32px));border:1px solid var(--tintora-border-modal);border-radius:var(--tintora-radius-32);max-width:none;max-height:calc(100vh - 32px);font-family:var(--tintora-font-family);color:var(--tintora-text);background:var(--tintora-surface-modal);box-shadow:var(--tintora-shadow-modal);flex-direction:column;gap:18px;padding:28px;overflow:auto}.tintora-modal[open]{display:flex}.tintora-modal::backdrop{background:var(--tintora-scrim)}@media (prefers-reduced-motion:no-preference){.tintora-modal,.tintora-modal::backdrop{opacity:0;transition:opacity .2s ease, scale .2s ease, overlay .2s allow-discrete, display .2s allow-discrete}.tintora-modal{scale:.96}.tintora-modal[open],.tintora-modal[open]::backdrop{opacity:1}.tintora-modal[open]{scale:1}@starting-style{.tintora-modal[open],.tintora-modal[open]::backdrop{opacity:0}.tintora-modal[open]{scale:.96}}}body:has(.tintora-modal:modal){overflow:hidden}.tintora-modal--sm{--tintora-modal-width:400px}.tintora-modal--md{--tintora-modal-width:520px}.tintora-modal--lg{--tintora-modal-width:640px}.tintora-modal--center{text-align:center;align-items:center}.tintora-modal__close{position:absolute;top:18px;right:18px}.tintora-modal__title{font-size:20px;font-weight:var(--tintora-font-weight-bold);line-height:var(--tintora-line-height-tight);margin:0;padding-inline-end:44px}.tintora-modal--center .tintora-modal__title{padding-inline:0}.tintora-modal__description{color:var(--tintora-text-muted);margin:8px 0 0;font-size:13.5px;line-height:1.55}.tintora-modal__icon{border:1px solid var(--tintora-modal-status-border);border-radius:var(--tintora-radius-pill);width:52px;height:52px;color:var(--tintora-modal-status-fg);background:var(--tintora-modal-status-bg);justify-content:center;align-items:center;display:flex}.tintora-modal--center .tintora-modal__icon{width:64px;height:64px}.tintora-modal__icon svg{width:24px;height:24px}.tintora-modal--center .tintora-modal__icon svg{width:30px;height:30px}.tintora-modal__icon--success{--tintora-modal-status-bg:var(--tintora-status-success-bg);--tintora-modal-status-border:var(--tintora-status-success-border);--tintora-modal-status-fg:var(--tintora-status-success-fg)}.tintora-modal__icon--error{--tintora-modal-status-bg:var(--tintora-status-error-bg);--tintora-modal-status-border:var(--tintora-status-error-border);--tintora-modal-status-fg:var(--tintora-status-error-fg)}.tintora-modal__icon--info{--tintora-modal-status-bg:var(--tintora-status-info-bg);--tintora-modal-status-border:var(--tintora-status-info-border);--tintora-modal-status-fg:var(--tintora-status-info-fg)}.tintora-modal__icon--warning{--tintora-modal-status-bg:var(--tintora-status-warning-bg);--tintora-modal-status-border:var(--tintora-status-warning-border);--tintora-modal-status-fg:var(--tintora-status-warning-fg)}.tintora-modal__actions{justify-content:flex-end;gap:10px;padding-top:6px;display:flex}.tintora-modal--center .tintora-modal__actions{flex-direction:column;align-self:stretch}.tintora-popover-root{display:contents}.tintora-popover{box-sizing:border-box;border-radius:var(--tintora-radius-22);background:var(--tintora-surface-popover);border:1px solid var(--tintora-border-popover);box-shadow:var(--tintora-shadow-popover);flex-direction:column;gap:12px;margin:0;padding:18px;display:flex;position:fixed;inset:auto;overflow:visible}.tintora-popover--sm{border-radius:var(--tintora-radius-20);width:fit-content;padding:16px}.tintora-popover--md{width:300px}.tintora-popover:before{content:"";background:var(--tintora-surface-popover);width:12px;height:12px;position:absolute;transform:rotate(45deg)}.tintora-popover--top:before{bottom:-7px;left:calc(var(--tintora-popover-arrow-offset,50%) - 7px);border-right:1px solid var(--tintora-border-popover);border-bottom:1px solid var(--tintora-border-popover)}.tintora-popover--bottom:before{top:-7px;left:calc(var(--tintora-popover-arrow-offset,50%) - 7px);border-top:1px solid var(--tintora-border-popover);border-left:1px solid var(--tintora-border-popover)}.tintora-popover--left:before{right:-7px;top:calc(var(--tintora-popover-arrow-offset,50%) - 7px);border-top:1px solid var(--tintora-border-popover);border-right:1px solid var(--tintora-border-popover)}.tintora-popover--right:before{left:-7px;top:calc(var(--tintora-popover-arrow-offset,50%) - 7px);border-bottom:1px solid var(--tintora-border-popover);border-left:1px solid var(--tintora-border-popover)}.tintora-progress-bar{flex-direction:column;gap:6px;display:flex}.tintora-progress-bar__header{font:var(--tintora-font-label);font-weight:var(--tintora-font-weight-semibold);justify-content:space-between;display:flex}.tintora-progress-bar__value{color:var(--tintora-text-muted)}.tintora-progress-bar__track{border-radius:var(--tintora-radius-pill);background:var(--tintora-fill-subtle-hover);height:8px;position:relative;overflow:hidden}.tintora-progress-bar__fill{border-radius:var(--tintora-radius-4);background:var(--tintora-control-fill);height:100%;position:absolute;top:0;left:0}.tintora-progress-bar__fill--complete{background:var(--tintora-status-success-fg)}.tintora-progress-bar__fill--indeterminate{width:40%;animation:1.3s ease-in-out infinite tintora-indeterminate}@keyframes tintora-indeterminate{0%{left:-40%}to{left:100%}}@media (prefers-reduced-motion:reduce){.tintora-progress-bar__fill--indeterminate{animation:none}}.tintora-radio{flex-shrink:0;width:22px;height:22px;display:inline-block;position:relative}.tintora-radio__input{opacity:0;cursor:pointer;width:44px;height:44px;margin:0;position:absolute;inset:-11px}.tintora-radio__circle{box-sizing:border-box;border:2px solid var(--tintora-control-border);border-radius:var(--tintora-radius-pill);outline-offset:2px;pointer-events:none;background:0 0;justify-content:center;align-items:center;transition:background .15s,border-color .15s;display:flex;position:absolute;inset:0}.tintora-radio__circle:after{content:"";border-radius:var(--tintora-radius-pill);background:var(--tintora-control-fill);opacity:0;width:10px;height:10px}.tintora-radio__input:enabled:hover+.tintora-radio__circle{border-color:var(--tintora-control-fill);background:var(--tintora-control-hover-tint)}.tintora-radio__input:checked+.tintora-radio__circle{border-color:var(--tintora-control-fill);background:0 0}.tintora-radio__input:checked+.tintora-radio__circle:after{opacity:1}.tintora-radio__input:focus-visible+.tintora-radio__circle{outline:2px solid var(--tintora-focus)}.tintora-radio__input:disabled{cursor:not-allowed}.tintora-radio__input:disabled+.tintora-radio__circle{opacity:var(--tintora-opacity-disabled)}@media (prefers-reduced-motion:reduce){.tintora-radio__circle{transition:none}}.tintora-search-input{--tintora-search-input-font-size:.8125rem;--tintora-search-input-clear-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");box-sizing:border-box;border:1px solid var(--tintora-border-field);border-radius:var(--tintora-radius-pill);height:48px;color:var(--tintora-text-muted);background-color:var(--tintora-surface-field);align-items:center;gap:10px;padding:0 18px;display:flex}.tintora-search-input--disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}.tintora-search-input__icon{flex-shrink:0;width:16px;height:16px}.tintora-search-input__input{min-width:0;font-family:inherit;font-size:var(--tintora-search-input-font-size);color:var(--tintora-text);background:0 0;border:0;outline:0;flex:1;padding:0}.tintora-search-input__input::placeholder{color:var(--tintora-text-muted);opacity:1}.tintora-search-input__input:disabled{cursor:not-allowed}.tintora-search-input__input::-webkit-search-decoration{display:none}.tintora-search-input__input::-webkit-search-cancel-button{appearance:none;cursor:pointer;background-color:var(--tintora-text-muted);width:16px;height:16px;-webkit-mask:var(--tintora-search-input-clear-icon) center / contain no-repeat;-webkit-mask:var(--tintora-search-input-clear-icon) center / contain no-repeat;mask:var(--tintora-search-input-clear-icon) center / contain no-repeat}.tintora-search-input:not(.tintora-search-input--disabled):hover{border-color:var(--tintora-border-field-hover)}.tintora-search-input:focus-within{border-color:var(--tintora-focus);box-shadow:var(--tintora-shadow-focus-ring);outline-offset:2px;outline:2px solid #0000}.tintora-search-input__input::-webkit-search-cancel-button{appearance:none;cursor:pointer;background-color:var(--tintora-text-muted);width:16px;height:16px;-webkit-mask:var(--tintora-search-input-clear-icon) center / contain no-repeat;mask:var(--tintora-search-input-clear-icon) center / contain no-repeat}.tintora-search-input__input::-webkit-search-cancel-button:hover{background-color:var(--tintora-focus)}.tintora-select{--tintora-select-font-size:.71875rem;display:inline-block;position:relative}.tintora-select__trigger{box-sizing:border-box;border-radius:var(--tintora-radius-14);height:28px;font-family:inherit;font-size:var(--tintora-select-font-size);font-weight:var(--tintora-font-weight-medium);color:var(--tintora-chip-fg);background-color:var(--tintora-chip-bg);cursor:pointer;border:0;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.tintora-select__trigger:enabled:hover,.tintora-select__trigger[aria-expanded=true]{background-color:var(--tintora-chip-bg-hover)}.tintora-select__trigger:focus-visible{box-shadow:var(--tintora-shadow-focus-ring);outline-offset:2px;outline:2px solid #0000}.tintora-select__trigger:disabled{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}.tintora-select__value--placeholder{color:var(--tintora-text-on-card-muted)}.tintora-select__chevron{flex-shrink:0}.tintora-select__trigger[aria-expanded=true] .tintora-select__chevron{transform:rotate(180deg)}.tintora-select__menu{box-sizing:border-box;border:1px solid var(--tintora-menu-border);border-radius:var(--tintora-radius-14);max-height:50vh;color:var(--tintora-color-ink);background:var(--tintora-menu-bg);box-shadow:var(--tintora-menu-shadow);flex-direction:column;gap:2px;margin:0;padding:6px;display:flex;inset:auto;overflow-y:auto}.tintora-select__option{box-sizing:border-box;border-radius:var(--tintora-radius-12);min-height:32px;font:var(--tintora-font-body);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;padding:0 10px;display:flex}.tintora-select__option--active{background:var(--tintora-menu-item-hover)}.tintora-select__option[aria-selected=true]{font-weight:var(--tintora-font-weight-bold);color:var(--tintora-color-accent-deep);background:var(--tintora-tint-accent)}.tintora-select__option[aria-disabled=true]{opacity:var(--tintora-opacity-disabled);cursor:not-allowed}@media (pointer:coarse){.tintora-select__option{min-height:44px}}@media (forced-colors:active){.tintora-select__option--active{outline-offset:-2px;outline:2px solid highlight}}.tintora-settings-row{box-sizing:border-box;border-radius:var(--tintora-radius-18);border:1px solid var(--tintora-border-row);background:var(--tintora-surface-row);min-height:56px;font-family:var(--tintora-font-family);color:var(--tintora-text);align-items:center;padding:10px 16px;display:flex}.tintora-settings-row--described{min-height:64px}.tintora-settings-row--control-end{justify-content:space-between;gap:12px}.tintora-settings-row--control-start{gap:22px}.tintora-settings-row__text{min-width:0}.tintora-settings-row__title{font:var(--tintora-font-subtitle)}.tintora-settings-row__description{font:var(--tintora-font-body);font-weight:var(--tintora-font-weight-regular);color:var(--tintora-text-faint);margin-top:2px}.tintora-settings-row--control-end>:not(.tintora-settings-row__text){flex:none}.tintora-skeleton{border-radius:var(--tintora-radius-pill);background:var(--tintora-shimmer);background-size:200% 100%;flex-shrink:0;width:100%;height:14px;animation:1.4s linear infinite tintora-shimmer;display:block}@keyframes tintora-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.tintora-skeleton{animation:none}}.tintora-switch{flex-shrink:0;width:44px;height:26px;display:inline-block;position:relative}.tintora-switch__input{opacity:0;cursor:pointer;width:100%;height:calc(100% + 18px);margin:0;position:absolute;inset:-9px 0}.tintora-switch__track{--tintora-switch-offset:3px;border-radius:var(--tintora-radius-pill);background:var(--tintora-switch-track);outline-offset:2px;pointer-events:none;transition:background .2s;position:absolute;inset:0}.tintora-switch__track:after{content:"";top:var(--tintora-switch-offset);left:var(--tintora-switch-offset);border-radius:var(--tintora-radius-pill);background:var(--tintora-color-white);width:20px;height:20px;box-shadow:var(--tintora-shadow-knob);transition:transform .2s;position:absolute}.tintora-switch__input:hover+.tintora-switch__track{background:var(--tintora-switch-track-hover)}.tintora-switch__input:checked+.tintora-switch__track{background:var(--tintora-control-fill)}.tintora-switch__input:checked+.tintora-switch__track:after{transform:translate(18px)}.tintora-switch__input:focus-visible+.tintora-switch__track{outline:2px solid var(--tintora-focus)}.tintora-switch__input:disabled{cursor:not-allowed}.tintora-switch__input:disabled+.tintora-switch__track{opacity:var(--tintora-opacity-disabled);background:var(--tintora-switch-track)}.tintora-switch__input:disabled:checked+.tintora-switch__track{background:var(--tintora-control-fill)}@media (prefers-reduced-motion:reduce){.tintora-switch__track,.tintora-switch__track:after{transition:none}}.tintora-tabs{font-family:var(--tintora-font-family)}.tintora-tab{font:var(--tintora-font-button);color:var(--tintora-text-nav-idle);cursor:pointer;background:0 0;border:0}.tintora-tab:focus-visible{outline:2px solid var(--tintora-focus);outline-offset:2px}.tintora-tab:disabled{opacity:.45;cursor:not-allowed}.tintora-tabs--segmented{border-radius:var(--tintora-radius-22);background:var(--tintora-fill-subtle);gap:4px;padding:4px;display:inline-flex}.tintora-tabs--segmented .tintora-tab{border-radius:var(--tintora-radius-pill);height:36px;padding:0 18px}.tintora-tabs--segmented .tintora-tab:hover:not(:disabled){color:var(--tintora-text)}.tintora-tabs--segmented .tintora-tab[aria-selected=true]{color:var(--tintora-color-on-accent-deep);background:var(--tintora-color-accent-deep)}.tintora-tabs--underline{border-bottom:1px solid var(--tintora-line);gap:24px;display:flex}.tintora-tabs--underline .tintora-tab{border-bottom:3px solid #0000;height:40px;margin-bottom:-1px;padding:0 2px}.tintora-tabs--underline .tintora-tab:hover:not(:disabled){color:var(--tintora-text)}.tintora-tabs--underline .tintora-tab[aria-selected=true]{color:var(--tintora-text);border-bottom-color:var(--tintora-control-fill)}.tintora-tag{white-space:nowrap;font:var(--tintora-font-caption);font-weight:var(--tintora-font-weight-semibold);display:inline-block}.tintora-tag--neutral{background-color:var(--tintora-tag-bg);color:var(--tintora-tag-fg)}.tintora-tag--success{background-color:var(--tintora-color-success);color:var(--tintora-color-on-success)}.tintora-tag--accent{background-color:var(--tintora-color-accent-deep);color:var(--tintora-color-on-accent-deep);font-weight:var(--tintora-font-weight-bold)}.tintora-tag--card{background-color:var(--tintora-chip-bg);color:var(--tintora-chip-fg)}.tintora-tag--small{border-radius:var(--tintora-radius-8);padding:2px 8px}.tintora-tag--medium{border-radius:var(--tintora-radius-8);padding:3px 9px}.tintora-tag--large{border-radius:var(--tintora-radius-12);padding:5px 12px}.tintora-textfield{--tintora-textfield-font-size:.8125rem;flex-direction:column;gap:8px;display:inline-flex}.tintora-textfield--disabled{opacity:var(--tintora-opacity-disabled)}.tintora-textfield__label{font:var(--tintora-font-body);font-weight:var(--tintora-font-weight-semibold);color:var(--tintora-text)}.tintora-textfield__input{box-sizing:border-box;border:1px solid var(--tintora-border-field);border-radius:var(--tintora-radius-16);height:48px;font-family:inherit;font-size:var(--tintora-textfield-font-size);color:var(--tintora-text);background-color:var(--tintora-surface-field);padding:0 16px}.tintora-textfield__input::placeholder{color:var(--tintora-text-muted);opacity:1}.tintora-textfield__input:enabled:hover{border-color:var(--tintora-border-field-hover)}.tintora-textfield__input:focus-visible{border-color:var(--tintora-focus);box-shadow:var(--tintora-shadow-focus-ring);outline-offset:2px;outline:2px solid #0000}.tintora-textfield__input[aria-invalid=true]{border-color:var(--tintora-text-error)}.tintora-textfield__input:disabled{cursor:not-allowed}.tintora-textfield__hint{font:var(--tintora-font-caption);color:var(--tintora-text-faint)}.tintora-textfield__hint--error{color:var(--tintora-text-error)}.tintora-toast{box-sizing:border-box;border-radius:var(--tintora-radius-18);background:var(--tintora-surface-toast);min-height:52px;color:var(--tintora-text-on-toast);box-shadow:var(--tintora-shadow-toast);align-items:center;gap:12px;padding:10px 10px 10px 16px;display:flex}.tintora-toast--timer{min-height:56px;padding:10px 10px 14px 16px;position:relative;overflow:hidden}.tintora-toast__message{min-width:0;font:var(--tintora-font-button);font-weight:var(--tintora-font-weight-semibold);flex:1}.tintora-toast__action{border-radius:var(--tintora-radius-pill);height:32px;font-family:inherit;font:var(--tintora-font-button);font-weight:var(--tintora-font-weight-extrabold);color:var(--tintora-toast-action);cursor:pointer;background:0 0;border:0;padding:0 12px;display:inline-block}.tintora-toast__close{border-radius:var(--tintora-radius-pill);width:32px;height:32px;color:var(--tintora-text-on-toast-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:flex}.tintora-toast__progress{background:var(--tintora-toast-action);width:100%;height:4px;animation:progress-bar var(--tintora-toast-animation-duration) forwards;position:absolute;bottom:0;left:0}.tintora-toast--paused .tintora-toast__progress{animation-play-state:paused}@keyframes progress-bar{0%{width:100%}to{width:0}}@media (prefers-reduced-motion:reduce){.tintora-toast__progress{display:none}}.tintora-toggle{border-radius:var(--tintora-radius-pill);background-color:var(--tintora-fill-subtle);gap:4px;padding:5px;display:inline-flex;position:relative}.tintora-toggle--disabled{opacity:var(--tintora-opacity-disabled)}.tintora-toggle__item{box-sizing:border-box;border-radius:var(--tintora-radius-pill);min-width:34px;height:34px;color:var(--tintora-text-nav-idle);font:var(--tintora-font-label);cursor:pointer;outline-offset:2px;z-index:1;background:0 0;border:0;outline:none;justify-content:center;align-items:center;padding:0 8px;transition:color .2s;display:inline-flex}.tintora-toggle__item[aria-pressed=true]{color:#fff}.tintora-toggle__thumb{width:var(--tintora-toggle-thumb-width);border-radius:var(--tintora-radius-pill);background-color:var(--tintora-color-accent);transform:translateX(var(--tintora-toggle-thumb-x));pointer-events:none;transition:transform .2s;position:absolute;inset-block:5px;inset-inline-start:0}@media (prefers-reduced-motion:reduce){.tintora-toggle__thumb,.tintora-toggle__item{transition:none}}.tintora-toggle__item:focus-visible{outline:2px solid var(--tintora-focus)}.tintora-toggle__item:disabled{cursor:not-allowed}.tintora-toggle:not(.tintora-toggle--disabled) .tintora-toggle__item:disabled{opacity:var(--tintora-opacity-disabled)}.tintora-tooltip{display:contents}.tintora-tooltip__content{box-sizing:border-box;border-radius:var(--tintora-radius-10);width:max-content;font:var(--tintora-font-body);font-weight:var(--tintora-font-weight-semibold);white-space:nowrap;color:var(--tintora-text-on-tooltip);background:var(--tintora-surface-tooltip);box-shadow:var(--tintora-shadow-tooltip);border:0;align-items:center;gap:10px;margin:0;padding:6px 10px;display:inline-flex;inset:auto;overflow:visible}.tintora-tooltip__content:before{content:"";background:inherit;width:8px;height:8px;position:absolute;transform:rotate(45deg)}.tintora-tooltip__content--top:before{bottom:-4px;left:calc(var(--tintora-tooltip-arrow-offset,50%) - 4px)}.tintora-tooltip__content--bottom:before{top:-4px;left:calc(var(--tintora-tooltip-arrow-offset,50%) - 4px)}.tintora-tooltip__content--left:before{right:-4px;top:calc(var(--tintora-tooltip-arrow-offset,50%) - 4px)}.tintora-tooltip__content--right:before{left:-4px;top:calc(var(--tintora-tooltip-arrow-offset,50%) - 4px)}.tintora-tooltip__shortcut{border-radius:var(--tintora-radius-6);font:var(--tintora-font-caption);font-weight:var(--tintora-font-weight-bold);background:var(--tintora-tooltip-kbd-bg);margin-right:-2px;padding:2px 6px}.tintora-tooltip__content--rich{border-radius:var(--tintora-radius-12);width:220px;font-weight:var(--tintora-font-weight-medium);white-space:normal;padding:10px 12px;display:block}.tintora-tooltip__title{font:var(--tintora-font-label);display:block}.tintora-tooltip__text{min-width:0}.tintora-tooltip__content--rich .tintora-tooltip__text{color:var(--tintora-text-on-tooltip-muted);margin-top:2px;line-height:1.45;display:block}.tintora-tooltip__content--rich .tintora-tooltip__shortcut{margin-top:8px;display:inline-block}@media (prefers-reduced-motion:no-preference){.tintora-tooltip__content{animation:.12s ease-out tintora-tooltip-in}}@keyframes tintora-tooltip-in{0%{opacity:0}}
2
2
  /*$vite$:1*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tintora",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "repository": {