@growgroup/visual-editor 0.7.2 → 0.8.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
@@ -107,7 +107,7 @@ setEditorIO({
107
107
  - ページを移るときは、未保存の変更を先に保存してから移る(入口がフレームのクリックでも `contentId` プロップの変更でも同じ)
108
108
  - 複数選択はキャンバスの余白からドラッグ(マーキー)。ページの中に空白が無くても、余白から引けば帯がまたいだ要素が選ばれる
109
109
  - `contentList[].parentId` を渡すと、フレームがサイトマップの階層(親の下に子)のツリーで並び、親子が線でつながる(0.3.1)
110
- - 紙面のリンクを ⌘ + クリック(Windows は Ctrl + クリック)すると、リンク先へ移る。同じサイトのページは `contentList[].href` と照らし合わせてそのページを編集中にし(表記の揺れ `/company/`・`index.html`・相対パス・`?`・`#` も同じページ)、`#id` はその場所へ紙面を寄せ、別のサイトは新しいタブで開く。仕組みと既存の ⌘ クリックとの両立は `docs/link-nav-2026-09.md`
110
+ - 紙面のリンクを ⌥ Option + クリック(Windows は Alt + クリック)すると、リンク先へ移る。同じサイトのページは `contentList[].href` と照らし合わせてそのページを編集中にし(表記の揺れ `/company/`・`index.html`・相対パス・`?`・`#` も同じページ)、`#id` はその場所へ紙面を寄せ、別のサイトは新しいタブで開く。仕組みと、⌘ / Ctrl クリック(最下層の選択・レイヤーパネルの複数選択)から変えた理由は `docs/link-nav-2026-09.md`
111
111
  - `contentList[].href` を渡すと、フレーム名と一覧に「別タブで開く」が付く。`contentList[].revision` を進めると、そのページの紙面が読み直される(外からファイルが変わったとき)
112
112
  - `contentList[].thumbnail` にページ全体を写した画像(PNG / JPEG、幅 480px 以上、縦横比はページと同じ)の URL を渡すと、大きく縮めた表示で紙面が iframe ではなくその画像になり、縮小が軽くなる。実測で縮小の p95 が 26.5ms → 18.4ms、50ms を超えるフレームが 0 回。画像を出す倍率の上限は画像の解像度と `devicePixelRatio` から決まり(`min(0.5, 画像の幅 × 1.25 ÷ (紙面の幅 × DPR))`)、**Retina では 960px の画像だと 31% まで**。にじんで見えないように、それより拡大すると iframe に戻る。解像度の高い画像を渡せば上限は 0.5 まで上がる。縮小している最中も、上限 × 0.8 を割った時点で(画像が読めていれば)切り替わる。内容が変わったら URL も変える(`&v=…`)。渡さないページ・画像が読めなかったページは今までどおり iframe(0.4.0)
113
113
  - `documentAttributes={{ "data-notes": "0" }}` のように渡すと、編集中の文書と紙面の `<html>` に読み直さずに属性が付く(利用側の CSS で表示を切り替える)
@@ -166,6 +166,23 @@ setEditorIO({
166
166
  ブラウザがページから iframe の中を読ませないため、エディタ自体が動きません
167
167
  - 仕組みと確かめたことは [docs/collab-2026-09.md](docs/collab-2026-09.md)
168
168
 
169
+ ### 線の欄・リンク移動のキー・キャンバスのラベル崩れ(0.8.0)
170
+
171
+ - **リンク先へ移るのは Alt(Mac は ⌥ Option)+ クリック**になりました(0.7.0 は ⌘ / Ctrl + クリック)。
172
+ ⌘ / Ctrl + クリックは「最下層の要素を選ぶ」に戻り、レイヤーパネルの複数選択とぶつからなくなりました。
173
+ Alt を押してリンクの上にいると行き先の案内が出ます。⌘ / Ctrl / Shift と一緒に押したときは移りません。
174
+ 仕組みと変えた理由は [docs/link-nav-2026-09.md](docs/link-nav-2026-09.md)
175
+ - **線(border)の欄**が片側だけの線を扱えるようになりました
176
+ - 左だけ 2px の線(`border-l-2`)を選ぶと、線幅の欄に 2 と出ます(今までは 0)。線幅を変えても**その辺だけ**が変わります(四辺の枠になりません)
177
+ - 線色・線幅を変えても、他の種類のクラス(`border-l-2`・`border-wf-ink`・`border-dashed`・`border-collapse`)は消えません
178
+ - スタイルの「なし」が紙面に効きます。線幅・スタイルはクラスと一緒にインラインにも書きます
179
+ (紙面の CSS はファイルに書かれたクラスの分しか作られないため)
180
+ - スライドのリボンの「図形の枠線」も同じです。線の無い図形に色を選んだときに 2px を立てる動きは今までどおりです
181
+ - 原因と確かめたことは [docs/border-fixes-2026-09.md](docs/border-fixes-2026-09.md)
182
+ - **キャンバス表示でスライドのラベルが見出しに重なる**件を直しました。スライドを開くときの絶対配置への変換で、
183
+ 変換しないインライン要素(ラベルなど)が動いたときも巻き戻します。原因と確かめたことは
184
+ [docs/canvas-label-2026-09.md](docs/canvas-label-2026-09.md)
185
+
169
186
  ### テキスト編集の Enter・文字の一部の書式・サイズ欄の最小・最大(0.7.0)
170
187
 
171
188
  - テキスト編集中の **Enter は、同じ要素の中の改行(`<br>`)**です(Shift+Enter と同じ)。段落を分けて別の要素にはしません。
package/dist/editor.css CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-space-x-reverse:0}}}:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-sky-400:oklch(74.6% .16 232.661);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-900:oklch(38.1% .176 304.987);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--text-9xl:8rem;--text-9xl--line-height:1;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--drop-shadow-md:0 3px 3px #0000001f;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--radius:.5rem;--color-background:#fff;--color-foreground:#0a0a0a;--color-card:#fff;--color-card-foreground:#0a0a0a;--color-popover:#fff;--color-popover-foreground:#0a0a0a;--color-primary:#171717;--color-primary-foreground:#fafafa;--color-secondary:#f5f5f5;--color-secondary-foreground:#171717;--color-muted:#f5f5f5;--color-muted-foreground:#737373;--color-accent:#f5f5f5;--color-accent-foreground:#171717;--color-destructive:#ef4444;--color-destructive-foreground:#fafafa;--color-border:#e5e5e5;--color-input:#e5e5e5;--color-ring:#0a0a0a;--color-gg-green:#316a40;--color-ink:#2e2e2e;--color-mark-green:#cfe6d6}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-auto{inset:auto}.inset-x-2{inset-inline:calc(var(--spacing) * 2)}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-\[50\%\]{top:50%}.top-auto{top:auto}.top-full{top:100%}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-1\/2{right:50%}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.right-8{right:calc(var(--spacing) * 8)}.right-\[24px\]{right:24px}.right-auto{right:auto}.right-full{right:100%}.bottom-0{bottom:0}.bottom-0\.5{bottom:calc(var(--spacing) * .5)}.bottom-1{bottom:var(--spacing)}.bottom-1\/2{bottom:50%}.bottom-5{bottom:calc(var(--spacing) * 5)}.bottom-8{bottom:calc(var(--spacing) * 8)}.bottom-16{bottom:calc(var(--spacing) * 16)}.bottom-20{bottom:calc(var(--spacing) * 20)}.bottom-\[24px\]{bottom:24px}.bottom-auto{bottom:auto}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-4{left:calc(var(--spacing) * 4)}.left-\[36px\]{left:36px}.left-\[50\%\]{left:50%}.left-\[96px\]{left:96px}.left-\[142px\]{left:142px}.left-auto{left:auto}.left-full{left:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[70\]{z-index:70}.z-\[100\]{z-index:100}.z-\[1000\]{z-index:1000}.z-\[9999\]{z-index:9999}.z-auto{z-index:auto}.-order-1{order:calc(1 * -1)}.order-1{order:1}.order-2{order:2}.order-first{order:-9999}.order-last{order:9999}.order-none{order:0}.col-span-7{grid-column:span 7/span 7}.\!container{width:100%!important}@media (min-width:40rem){.\!container{max-width:40rem!important}}@media (min-width:48rem){.\!container{max-width:48rem!important}}@media (min-width:64rem){.\!container{max-width:64rem!important}}@media (min-width:80rem){.\!container{max-width:80rem!important}}@media (min-width:96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-m-0\.5{margin:calc(var(--spacing) * -.5)}.m-0{margin:0}.m-3{margin:calc(var(--spacing) * 3)}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-6{margin-inline:calc(var(--spacing) * -6)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:var(--spacing)}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-0{margin-top:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-\[22px\]{margin-top:22px}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.mr-0{margin-right:0}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-auto{margin-right:auto}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-auto{margin-bottom:auto}.ml-0{margin-left:0}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.list-item{display:list-item}.table{display:table}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.\!h-5{height:calc(var(--spacing) * 5)!important}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-1\/2{height:50%}.h-1\/3{height:33.3333%}.h-1\/4{height:25%}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-2\/3{height:66.6667%}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-3\/4{height:75%}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-40{height:calc(var(--spacing) * 40)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-96{height:calc(var(--spacing) * 96)}.h-\[1px\]{height:1px}.h-\[2\.5px\]{height:2.5px}.h-\[3px\]{height:3px}.h-\[4px\]{height:4px}.h-\[22px\]{height:22px}.h-\[26px\]{height:26px}.h-\[30px\]{height:30px}.h-\[56px\]{height:56px}.h-\[58px\]{height:58px}.h-\[64px\]{height:64px}.h-\[72px\]{height:72px}.h-\[82vh\]{height:82vh}.h-\[90vh\]{height:90vh}.h-\[96px\]{height:96px}.h-\[104px\]{height:104px}.h-\[240px\]{height:240px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-dvh{height:100dvh}.h-fit{height:fit-content}.h-full{height:100%}.h-max{height:max-content}.h-min{height:min-content}.h-px{height:1px}.h-screen{height:100vh}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[--radix-context-menu-content-available-height\]{max-height:--radix-context-menu-content-available-height}.max-h-\[--radix-select-content-available-height\]{max-height:--radix-select-content-available-height}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[240px\]{max-height:240px}.max-h-\[300px\]{max-height:300px}.max-h-\[420px\]{max-height:420px}.max-h-\[860px\]{max-height:860px}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-dvh{max-height:100dvh}.max-h-fit{max-height:fit-content}.max-h-full{max-height:100%}.max-h-max{max-height:max-content}.max-h-min{max-height:min-content}.max-h-none{max-height:none}.max-h-screen{max-height:100vh}.min-h-0{min-height:0}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-\[40px\]{min-height:40px}.min-h-\[44px\]{min-height:44px}.min-h-\[52px\]{min-height:52px}.min-h-\[60px\]{min-height:60px}.min-h-\[80px\]{min-height:80px}.min-h-\[100px\]{min-height:100px}.min-h-\[150px\]{min-height:150px}.min-h-dvh{min-height:100dvh}.min-h-fit{min-height:fit-content}.min-h-full{min-height:100%}.min-h-max{min-height:max-content}.min-h-min{min-height:min-content}.min-h-screen{min-height:100vh}.\!w-5{width:calc(var(--spacing) * 5)!important}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-1\/4{width:25%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[1px\]{width:1px}.w-\[16px\]{width:16px}.w-\[22px\]{width:22px}.w-\[38px\]{width:38px}.w-\[52px\]{width:52px}.w-\[54px\]{width:54px}.w-\[56px\]{width:56px}.w-\[62px\]{width:62px}.w-\[64px\]{width:64px}.w-\[68px\]{width:68px}.w-\[72px\]{width:72px}.w-\[90vw\]{width:90vw}.w-\[95vw\]{width:95vw}.w-\[136px\]{width:136px}.w-\[160px\]{width:160px}.w-\[180px\]{width:180px}.w-\[212px\]{width:212px}.w-\[220px\]{width:220px}.w-\[264px\]{width:264px}.w-\[280px\]{width:280px}.w-\[300px\]{width:300px}.w-\[400px\]{width:400px}.w-\[min\(1080px\,94vw\)\]{width:min(1080px,94vw)}.w-\[min\(1100px\,95vw\)\]{width:min(1100px,95vw)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-min{width:min-content}.w-px{width:1px}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-\[40px\]{max-width:40px}.max-w-\[80px\]{max-width:80px}.max-w-\[90px\]{max-width:90px}.max-w-\[420px\]{max-width:420px}.max-w-\[calc\(100\%-5rem\)\]{max-width:calc(100% - 5rem)}.max-w-fit{max-width:fit-content}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-max{max-width:max-content}.max-w-min{max-width:min-content}.max-w-none{max-width:none}.min-w-0{min-width:0}.min-w-\[3\.5rem\]{min-width:3.5rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[52px\]{min-width:52px}.min-w-\[60px\]{min-width:60px}.min-w-\[176px\]{min-width:176px}.min-w-\[300px\]{min-width:300px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-fit{min-width:fit-content}.min-w-full{min-width:100%}.min-w-max{min-width:max-content}.min-w-min{min-width:min-content}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-0{flex-basis:0}.basis-1\/2{flex-basis:50%}.basis-auto{flex-basis:auto}.basis-full{flex-basis:100%}.border-collapse{border-collapse:collapse}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:--radix-context-menu-content-transform-origin}.origin-\[--radix-dropdown-menu-content-transform-origin\]{transform-origin:--radix-dropdown-menu-content-transform-origin}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:--radix-popover-content-transform-origin}.origin-\[--radix-select-content-transform-origin\]{transform-origin:--radix-select-content-transform-origin}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:--radix-tooltip-content-transform-origin}.origin-top-left{transform-origin:0 0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-alias{cursor:alias}.cursor-all-scroll{cursor:all-scroll}.cursor-auto{cursor:auto}.cursor-cell{cursor:cell}.cursor-col-resize{cursor:col-resize}.cursor-context-menu{cursor:context-menu}.cursor-copy{cursor:copy}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-e-resize{cursor:e-resize}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-help{cursor:help}.cursor-move{cursor:move}.cursor-n-resize{cursor:n-resize}.cursor-ne-resize{cursor:ne-resize}.cursor-nesw-resize{cursor:nesw-resize}.cursor-no-drop{cursor:no-drop}.cursor-none{cursor:none}.cursor-not-allowed{cursor:not-allowed}.cursor-ns-resize{cursor:ns-resize}.cursor-nw-resize{cursor:nw-resize}.cursor-nwse-resize{cursor:nwse-resize}.cursor-pointer{cursor:pointer}.cursor-progress{cursor:progress}.cursor-row-resize{cursor:row-resize}.cursor-s-resize{cursor:s-resize}.cursor-se-resize{cursor:se-resize}.cursor-sw-resize{cursor:sw-resize}.cursor-text{cursor:text}.cursor-vertical-text{cursor:vertical-text}.cursor-w-resize{cursor:w-resize}.cursor-wait{cursor:wait}.cursor-zoom-in{cursor:zoom-in}.cursor-zoom-out{cursor:zoom-out}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.\[appearance\:textfield\]{appearance:textfield}.appearance-none{appearance:none}.grid-flow-col{grid-auto-flow:column}.grid-flow-col-dense{grid-auto-flow:column dense}.grid-flow-dense{grid-auto-flow:dense}.grid-flow-row{grid-auto-flow:row}.grid-flow-row-dense{grid-auto-flow:dense}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-none{grid-template-columns:none}.grid-cols-subgrid{grid-template-columns:subgrid}.grid-rows-none{grid-template-rows:none}.grid-rows-subgrid{grid-template-rows:subgrid}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.content-around{align-content:space-around}.content-baseline{align-content:baseline}.content-between{align-content:space-between}.content-center{align-content:center}.content-end{align-content:flex-end}.content-evenly{align-content:space-evenly}.content-start{align-content:flex-start}.content-stretch{align-content:stretch}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-evenly{justify-content:space-evenly}.justify-start{justify-content:flex-start}.justify-stretch{justify-content:stretch}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-\[3px\]{gap:3px}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-0{column-gap:0}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-0{row-gap:0}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.self-auto{align-self:auto}.self-baseline{align-self:baseline}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-visible{overflow-x:visible}.overflow-y-auto{overflow-y:auto}.overflow-y-clip{overflow-y:clip}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-visible{overflow-y:visible}.rounded{border-radius:var(--radius)}.rounded-\[2px\]{border-radius:2px}.rounded-\[3px\]{border-radius:3px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.rounded-l{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.rounded-tl{border-top-left-radius:var(--radius)}.rounded-r{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.rounded-tr{border-top-right-radius:var(--radius)}.rounded-br{border-bottom-right-radius:var(--radius)}.rounded-bl{border-bottom-left-radius:var(--radius)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-double{--tw-border-style:double;border-style:double}.border-hidden{--tw-border-style:hidden;border-style:hidden}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\[\#0d99ff\]{border-color:#0d99ff}.border-\[\#0d99ff\]\/30{border-color:oklab(66.9841% -.0648249 -.170866/.3)}.border-\[\#0d99ff\]\/50{border-color:oklab(66.9841% -.0648249 -.170866/.5)}.border-\[\#0d99ff\]\/60{border-color:oklab(66.9841% -.0648249 -.170866/.6)}.border-\[\#4a4a4a\]{border-color:#4a4a4a}.border-\[\#5d5d5d\]{border-color:#5d5d5d}.border-\[\#444444\]{border-color:#444}.border-\[\#444444\]\/50{border-color:oklab(38.6654% 0 0/.5)}.border-amber-500{border-color:var(--color-amber-500)}.border-amber-500\/60{border-color:#f99c0099}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/60{border-color:color-mix(in oklab, var(--color-amber-500) 60%, transparent)}}.border-blue-600\/30{border-color:#155dfc4d}@supports (color:color-mix(in lab, red, red)){.border-blue-600\/30{border-color:color-mix(in oklab, var(--color-blue-600) 30%, transparent)}}.border-blue-600\/40{border-color:#155dfc66}@supports (color:color-mix(in lab, red, red)){.border-blue-600\/40{border-color:color-mix(in oklab, var(--color-blue-600) 40%, transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-500{border-color:var(--color-gray-500)}.border-gray-700{border-color:var(--color-gray-700)}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab, red, red)){.border-green-500\/30{border-color:color-mix(in oklab, var(--color-green-500) 30%, transparent)}}.border-green-600{border-color:var(--color-green-600)}.border-input{border-color:var(--color-input)}.border-primary{border-color:var(--color-primary)}.border-primary\/50{border-color:#17171780}@supports (color:color-mix(in lab, red, red)){.border-primary\/50{border-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.border-purple-500{border-color:var(--color-purple-500)}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/30{border-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.border-purple-500\/50{border-color:#ac4bff80}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/50{border-color:color-mix(in oklab, var(--color-purple-500) 50%, transparent)}}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.border-red-500\/50{border-color:color-mix(in oklab, var(--color-red-500) 50%, transparent)}}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.border-yellow-500\/30{border-color:#edb2004d}@supports (color:color-mix(in lab, red, red)){.border-yellow-500\/30{border-color:color-mix(in oklab, var(--color-yellow-500) 30%, transparent)}}.border-t-blue-500{border-top-color:var(--color-blue-500)}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-\[\#0F6CBD\]{background-color:#0f6cbd}.bg-\[\#0d99ff\]{background-color:#0d99ff}.bg-\[\#0d99ff\]\/10{background-color:oklab(66.9841% -.0648249 -.170866/.1)}.bg-\[\#0d99ff\]\/15{background-color:oklab(66.9841% -.0648249 -.170866/.15)}.bg-\[\#0d99ff\]\/20{background-color:oklab(66.9841% -.0648249 -.170866/.2)}.bg-\[\#0d99ff\]\/25{background-color:oklab(66.9841% -.0648249 -.170866/.25)}.bg-\[\#0d99ff\]\/30{background-color:oklab(66.9841% -.0648249 -.170866/.3)}.bg-\[\#0d99ff\]\/40{background-color:oklab(66.9841% -.0648249 -.170866/.4)}.bg-\[\#1e1e1e\]{background-color:#1e1e1e}.bg-\[\#2a2a2a\]{background-color:#2a2a2a}.bg-\[\#2c2c2c\]{background-color:#2c2c2c}.bg-\[\#2e2e2e\]{background-color:#2e2e2e}.bg-\[\#4a4a4a\]{background-color:#4a4a4a}.bg-\[\#5a5a5a\]{background-color:#5a5a5a}.bg-\[\#37373d\]{background-color:#37373d}.bg-\[\#383838\]{background-color:#383838}.bg-\[\#444444\]{background-color:#444}.bg-\[\#444444\]\/20{background-color:oklab(38.6654% 0 0/.2)}.bg-\[\#C43E1C\]{background-color:#c43e1c}.bg-\[\#ff0000\]{background-color:red}.bg-amber-600{background-color:var(--color-amber-600)}.bg-background{background-color:var(--color-background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-black\/90{background-color:#000000e6}@supports (color:color-mix(in lab, red, red)){.bg-black\/90{background-color:color-mix(in oklab, var(--color-black) 90%, transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-border{background-color:var(--color-border)}.bg-card{background-color:var(--color-card)}.bg-destructive{background-color:var(--color-destructive)}.bg-gg-green{background-color:var(--color-gg-green)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/10{background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.bg-green-600{background-color:var(--color-green-600)}.bg-mark-green{background-color:var(--color-mark-green)}.bg-muted{background-color:var(--color-muted)}.bg-popover{background-color:var(--color-popover)}.bg-primary{background-color:var(--color-primary)}.bg-primary\/20{background-color:#17171733}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, var(--color-primary) 20%, transparent)}}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/10{background-color:color-mix(in oklab, var(--color-purple-500) 10%, transparent)}}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/20{background-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.bg-purple-600{background-color:var(--color-purple-600)}.bg-purple-600\/30{background-color:#9810fa4d}@supports (color:color-mix(in lab, red, red)){.bg-purple-600\/30{background-color:color-mix(in oklab, var(--color-purple-600) 30%, transparent)}}.bg-purple-900\/30{background-color:#59168b4d}@supports (color:color-mix(in lab, red, red)){.bg-purple-900\/30{background-color:color-mix(in oklab, var(--color-purple-900) 30%, transparent)}}.bg-purple-900\/50{background-color:#59168b80}@supports (color:color-mix(in lab, red, red)){.bg-purple-900\/50{background-color:color-mix(in oklab, var(--color-purple-900) 50%, transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/20{background-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.bg-red-500\/90{background-color:#fb2c36e6}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/90{background-color:color-mix(in oklab, var(--color-red-500) 90%, transparent)}}.bg-red-600{background-color:var(--color-red-600)}.bg-secondary{background-color:var(--color-secondary)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/15{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.bg-white\/15{background-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.bg-white\/20{background-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab, red, red)){.bg-yellow-500\/10{background-color:color-mix(in oklab, var(--color-yellow-500) 10%, transparent)}}.bg-cover{background-size:cover}.bg-center{background-position:50%}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-fill{object-fit:fill}.object-none{object-fit:none}.object-scale-down{object-fit:scale-down}.object-bottom{object-position:bottom}.object-center{object-position:center}.object-left{object-position:left}.object-left-bottom{object-position:left bottom}.object-left-top{object-position:left top}.object-right{object-position:right}.object-right-bottom{object-position:right bottom}.object-right-top{object-position:right top}.object-top{object-position:top}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[1px\]{padding:1px}.px-0{padding-inline:0}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-\[6px\]{padding-inline:6px}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-\[3px\]{padding-block:3px}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-0{padding-right:0}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-0{padding-left:0}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}.text-9xl{font-size:var(--text-9xl);line-height:var(--tw-leading,var(--text-9xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[2em\]{font-size:2em}.text-\[6px\]{font-size:6px}.text-\[7px\]{font-size:7px}.text-\[8px\]{font-size:8px}.text-\[9\.5px\]{font-size:9.5px}.text-\[9px\]{font-size:9px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[32px\]{font-size:32px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-normal{overflow-wrap:normal;word-break:normal}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-clip{text-overflow:clip}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#0d99ff\]{color:#0d99ff}.text-\[\#4fb8ff\]{color:#4fb8ff}.text-\[\#7cc4ff\]{color:#7cc4ff}.text-\[hsl\(\.\.\.\)\]{color:hsl(...)}.text-\[rgb\(\)\]{color:rgb()}.text-\[数値\]{color:数値}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/90{color:#fcbb00e6}@supports (color:color-mix(in lab, red, red)){.text-amber-400\/90{color:color-mix(in oklab, var(--color-amber-400) 90%, transparent)}}.text-amber-600{color:var(--color-amber-600)}.text-black{color:var(--color-black)}.text-blue-100{color:var(--color-blue-100)}.text-blue-200{color:var(--color-blue-200)}.text-blue-500{color:var(--color-blue-500)}.text-blue-700{color:var(--color-blue-700)}.text-card-foreground{color:var(--color-card-foreground)}.text-current{color:currentColor}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-foreground{color:var(--color-foreground)}.text-gray-100{color:var(--color-gray-100)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-green-400{color:var(--color-green-400)}.text-inherit{color:inherit}.text-muted{color:var(--color-muted)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-popover-foreground{color:var(--color-popover-foreground)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-purple-200{color:var(--color-purple-200)}.text-purple-300{color:var(--color-purple-300)}.text-purple-400{color:var(--color-purple-400)}.text-purple-600{color:var(--color-purple-600)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-sky-400{color:var(--color-sky-400)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab, red, red)){.text-white\/85{color:color-mix(in oklab, var(--color-white) 85%, transparent)}}.text-yellow-400{color:var(--color-yellow-400)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.accent-\[\#0F6CBD\]{accent-color:#0f6cbd}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-100{opacity:1}.bg-blend-color{background-blend-mode:color}.bg-blend-color-burn{background-blend-mode:color-burn}.bg-blend-color-dodge{background-blend-mode:color-dodge}.bg-blend-darken{background-blend-mode:darken}.bg-blend-difference{background-blend-mode:difference}.bg-blend-exclusion{background-blend-mode:exclusion}.bg-blend-hard-light{background-blend-mode:hard-light}.bg-blend-hue{background-blend-mode:hue}.bg-blend-lighten{background-blend-mode:lighten}.bg-blend-luminosity{background-blend-mode:luminosity}.bg-blend-multiply{background-blend-mode:multiply}.bg-blend-normal{background-blend-mode:normal}.bg-blend-overlay{background-blend-mode:overlay}.bg-blend-saturation{background-blend-mode:saturation}.bg-blend-screen{background-blend-mode:screen}.bg-blend-soft-light{background-blend-mode:soft-light}.mix-blend-color{mix-blend-mode:color}.mix-blend-color-burn{mix-blend-mode:color-burn}.mix-blend-color-dodge{mix-blend-mode:color-dodge}.mix-blend-darken{mix-blend-mode:darken}.mix-blend-difference{mix-blend-mode:difference}.mix-blend-exclusion{mix-blend-mode:exclusion}.mix-blend-hard-light{mix-blend-mode:hard-light}.mix-blend-hue{mix-blend-mode:hue}.mix-blend-lighten{mix-blend-mode:lighten}.mix-blend-luminosity{mix-blend-mode:luminosity}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-normal{mix-blend-mode:normal}.mix-blend-overlay{mix-blend-mode:overlay}.mix-blend-plus-darker{mix-blend-mode:plus-darker}.mix-blend-plus-lighter{mix-blend-mode:plus-lighter}.mix-blend-saturation{mix-blend-mode:saturation}.mix-blend-screen{mix-blend-mode:screen}.mix-blend-soft-light{mix-blend-mode:soft-light}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\[\#0d99ff\]{--tw-ring-color:#0d99ff}.ring-\[\#0d99ff\]\/50{--tw-ring-color:oklab(66.9841% -.0648249 -.170866/.5)}.ring-offset-background{--tw-ring-offset-color:var(--color-background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow-md{--tw-drop-shadow-size:drop-shadow(0 3px 3px var(--tw-drop-shadow-color,#0000001f));--tw-drop-shadow:drop-shadow(var(--drop-shadow-md));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;user-select:auto}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.ring-inset{--tw-ring-inset:inset}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\:scale-\[1\.04\]:is(:where(.group):hover *){scale:1.04}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\/fill\:block:is(:where(.group\/fill):hover *){display:block}.group-hover\/var-input\:opacity-100:is(:where(.group\/var-input):hover *){opacity:1}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.selection\:bg-transparent ::selection{background-color:#0000}.selection\:bg-transparent::selection{background-color:#0000}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--color-foreground)}.placeholder\:text-gray-500::placeholder{color:var(--color-gray-500)}.placeholder\:text-gray-600::placeholder{color:var(--color-gray-600)}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}.focus-within\:border-\[\#0d99ff\]:focus-within{border-color:#0d99ff}.focus-within\:ring-1:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-\[\#0d99ff\]:focus-within{--tw-ring-color:#0d99ff}@media (hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-\[\#0d99ff\]:hover{border-color:#0d99ff}.hover\:border-\[\#5d5d5d\]:hover{border-color:#5d5d5d}.hover\:border-\[\#555\]:hover{border-color:#555}.hover\:border-gray-500:hover{border-color:var(--color-gray-500)}.hover\:bg-\[\#0c8ce9\]:hover{background-color:#0c8ce9}.hover\:bg-\[\#0d99ff\]:hover{background-color:#0d99ff}.hover\:bg-\[\#0d99ff\]\/30:hover{background-color:oklab(66.9841% -.0648249 -.170866/.3)}.hover\:bg-\[\#2c2c2c\]:hover{background-color:#2c2c2c}.hover\:bg-\[\#4a4a4a\]:hover{background-color:#4a4a4a}.hover\:bg-\[\#4c4c4c\]:hover{background-color:#4c4c4c}.hover\:bg-\[\#5d5d5d\]:hover{background-color:#5d5d5d}.hover\:bg-\[\#6a6a6a\]:hover{background-color:#6a6a6a}.hover\:bg-\[\#333\]:hover{background-color:#333}.hover\:bg-\[\#353535\]:hover{background-color:#353535}.hover\:bg-\[\#383838\]:hover{background-color:#383838}.hover\:bg-\[\#444444\]:hover{background-color:#444}.hover\:bg-\[\#444444\]\/30:hover{background-color:oklab(38.6654% 0 0/.3)}.hover\:bg-\[\#444444\]\/50:hover{background-color:oklab(38.6654% 0 0/.5)}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-blue-100:hover{background-color:var(--color-blue-100)}.hover\:bg-blue-500\/50:hover{background-color:#3080ff80}@supports (color:color-mix(in lab, red, red)){.hover\:bg-blue-500\/50:hover{background-color:color-mix(in oklab, var(--color-blue-500) 50%, transparent)}}.hover\:bg-destructive\/80:hover{background-color:#ef4444cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab, var(--color-destructive) 80%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:#ef4444e6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--color-destructive) 90%, transparent)}}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-primary\/80:hover{background-color:#171717cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab, var(--color-primary) 80%, transparent)}}.hover\:bg-primary\/90:hover{background-color:#171717e6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--color-primary) 90%, transparent)}}.hover\:bg-purple-500\/20:hover{background-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-500\/20:hover{background-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.hover\:bg-purple-500\/30:hover{background-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-500\/30:hover{background-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.hover\:bg-purple-700:hover{background-color:var(--color-purple-700)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.hover\:bg-red-500\/20:hover{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/20:hover{background-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-red-900\/30:hover{background-color:#82181a4d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-900\/30:hover{background-color:color-mix(in oklab, var(--color-red-900) 30%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:#f5f5f5cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--color-secondary) 80%, transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:text-amber-300:hover{color:var(--color-amber-300)}.hover\:text-blue-400:hover{color:var(--color-blue-400)}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-gray-100:hover{color:var(--color-gray-100)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-300:hover{color:var(--color-gray-300)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-green-300:hover{color:var(--color-green-300)}.hover\:text-green-400:hover{color:var(--color-green-400)}.hover\:text-purple-300:hover{color:var(--color-purple-300)}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-white:hover{color:var(--color-white)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:ring-2:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:ring-\[\#0d99ff\]:hover{--tw-ring-color:#0d99ff}}.focus\:border-\[\#0d99ff\]:focus{border-color:#0d99ff}.focus\:border-purple-500:focus{border-color:var(--color-purple-500)}.focus\:bg-\[\#383838\]:focus{background-color:#383838}.focus\:bg-\[\#444444\]:focus{background-color:#444}.focus\:bg-accent:focus{background-color:var(--color-accent)}.focus\:bg-gray-700:focus{background-color:var(--color-gray-700)}.focus\:bg-white\/10:focus{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.focus\:bg-white\/10:focus{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.focus\:text-accent-foreground:focus{color:var(--color-accent-foreground)}.focus\:text-white:focus{color:var(--color-white)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-\[\#0d99ff\]:focus{--tw-ring-color:#0d99ff}.focus\:ring-purple-500:focus{--tw-ring-color:var(--color-purple-500)}.focus\:ring-ring:focus{--tw-ring-color:var(--color-ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[\#0d99ff\]:focus-visible{--tw-ring-color:#0d99ff}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--color-ring)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-\[\#2c2c2c\]:focus-visible{--tw-ring-offset-color:#2c2c2c}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--color-background)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:text-blue-500:active{color:var(--color-blue-500)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-\[\#2a2a2a\]:disabled{background-color:#2a2a2a}.disabled\:bg-\[\#383838\]:disabled{background-color:#383838}.disabled\:bg-gray-50:disabled{background-color:var(--color-gray-50)}.disabled\:bg-gray-100:disabled{background-color:var(--color-gray-100)}.disabled\:text-gray-400:disabled{color:var(--color-gray-400)}.disabled\:text-gray-500:disabled{color:var(--color-gray-500)}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (hover:hover){.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--color-muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=active\]\:bg-\[\#383838\][data-state=active]{background-color:#383838}.data-\[state\=active\]\:bg-\[\#444444\][data-state=active]{background-color:#444}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--color-background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--color-foreground)}.data-\[state\=active\]\:text-white[data-state=active]{color:var(--color-white)}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:bg-\[\#0d99ff\][data-state=checked]{background-color:#0d99ff}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--color-primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--color-primary-foreground)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--color-accent)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--color-accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--color-muted-foreground)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--color-input)}@media (min-width:40rem){.sm\:mt-0{margin-top:0}.sm\:max-w-\[600px\]{max-width:600px}.sm\:max-w-\[900px\]{max-width:900px}.sm\:flex-row{flex-direction:row}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:text-left{text-align:left}}@media (min-width:48rem){.md\:flex{display:flex}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{appearance:none}.\[\&\>button\:last-child\]\:hidden>button:last-child{display:none}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{rotate:180deg}.gg-editor-skin{--ed-bg:#1e1e1e;--ed-panel:#2c2c2c;--ed-panel-raised:#2c2c2c;--ed-surface:#383838;--ed-surface-hover:#444;--ed-line:#ffffff1a;--ed-line-strong:#ffffff29;--ed-accent:#0d99ff;--ed-accent-strong:#0d99ff;--ed-accent-hover:#0c8ce9}.gg-editor-skin .bg-\[\#1e1e1e\]{background-color:var(--ed-bg)}.gg-editor-skin .bg-\[\#2c2c2c\],.gg-editor-skin .bg-\[\#2a2a2a\]{background-color:var(--ed-panel)}.gg-editor-skin .bg-\[\#383838\]{background-color:var(--ed-surface)}.gg-editor-skin .bg-\[\#444444\],.gg-editor-skin .bg-\[\#4a4a4a\],.gg-editor-skin .bg-\[\#5d5d5d\]{background-color:var(--ed-surface-hover)}.gg-editor-skin .hover\:bg-\[\#444444\]:hover,.gg-editor-skin .hover\:bg-\[\#383838\]:hover{background-color:#ffffff14}.gg-editor-skin .hover\:bg-\[\#4a4a4a\]:hover{background-color:var(--ed-surface-hover)}.gg-editor-skin .border-\[\#444444\],.gg-editor-skin .border-\[\#383838\],.gg-editor-skin .border-\[\#2c2c2c\]{border-color:var(--ed-line)}.gg-editor-skin .border-\[\#4a4a4a\],.gg-editor-skin .border-\[\#5d5d5d\]{border-color:var(--ed-line-strong)}.gg-editor-skin .hover\:border-\[\#4a4a4a\]:hover,.gg-editor-skin .hover\:border-\[\#5d5d5d\]:hover{border-color:#0d99ff99}.gg-editor-skin .w-px.bg-\[\#444444\],.gg-editor-skin .h-px.bg-\[\#444444\]{background-color:var(--ed-line)}.gg-editor-skin .bg-\[\#0d99ff\],.gg-editor-skin .bg-blue-500,.gg-editor-skin .bg-blue-600{background-color:var(--ed-accent-strong)}.gg-editor-skin .hover\:bg-\[\#0c8ce9\]:hover,.gg-editor-skin .hover\:bg-blue-600:hover,.gg-editor-skin .hover\:bg-blue-700:hover{background-color:var(--ed-accent-hover)}.gg-editor-skin .text-\[\#0d99ff\],.gg-editor-skin .text-\[\#4fb8ff\],.gg-editor-skin .text-blue-400,.gg-editor-skin .text-blue-500{color:var(--ed-accent)}.gg-editor-skin .border-\[\#0d99ff\],.gg-editor-skin .border-blue-500{border-color:var(--ed-accent)}.gg-editor-skin .ring-\[\#0d99ff\],.gg-editor-skin .ring-blue-500{--tw-ring-color:var(--ed-accent)}.gg-editor-skin .text-gray-300{color:#ffffffd9}.gg-editor-skin .text-gray-400{color:#ffffffb3}.gg-editor-skin .text-gray-500{color:#ffffff73}.gg-editor-skin .rounded{border-radius:.375rem}.gg-editor-skin .shadow-lg,.gg-editor-skin .shadow-xl,.gg-editor-skin .shadow-2xl{box-shadow:0 5px 17px #00000059,0 2px 7px #00000026}.gg-editor-skin input:focus-visible,.gg-editor-skin button:focus-visible,.gg-editor-skin select:focus-visible{outline:2px solid var(--ed-accent);outline-offset:1px}@layer gg-editor-defaults{.gg-editor-ui{text-align:left;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Meiryo,sans-serif;font-size:12px;line-height:1.5}.gg-editor-ui,.gg-editor-ui :where(*){box-sizing:border-box;border-style:solid;border-width:0}.gg-editor-ui :where(button,input,textarea,select){font:inherit;color:inherit;margin:0}.gg-editor-ui :where(button){cursor:pointer;background:0 0}.gg-editor-ui :where(button:disabled){cursor:default}.gg-editor-ui :where(p,h1,h2,h3,h4,ul,ol){margin:0;padding:0}.gg-editor-ui :where(svg){flex-shrink:0;display:block}.gg-editor-ui :where(input,textarea){min-width:0}}.gg-editor-ui{color-scheme:light;--ed-bg:#f5f5f5;--ed-canvas:#f5f5f5;--ed-panel:#fff;--ed-panel-raised:#fff;--ed-surface:#f5f5f5;--ed-surface-hover:#e6e6e6;--ed-text:#1e1e1e;--ed-muted:#6b6b6b;--ed-line:#e6e6e6;--ed-line-strong:#b3b3b3;--ed-accent:#0d99ff;--ed-accent-strong:#0d99ff;--ed-accent-hover:#0c8ce9;--ed-accent-soft:#e5f4ff;--ed-success:#14ae5c;--ed-warning:#8f5a00;--ed-danger:#dc3412;--ed-frame-edge:#00000014;--ed-shadow:0 5px 17px #0003, 0 2px 7px #00000026;--ed-radius:6px;--ed-focus:0 0 0 2px var(--ed-panel), 0 0 0 4px var(--ed-accent);--color-background:var(--ed-panel);--color-foreground:var(--ed-text);--color-card:var(--ed-panel);--color-card-foreground:var(--ed-text);--color-popover:var(--ed-panel-raised);--color-popover-foreground:var(--ed-text);--color-primary:var(--ed-accent-strong);--color-primary-foreground:#fff;--color-secondary:var(--ed-surface);--color-secondary-foreground:var(--ed-text);--color-muted:var(--ed-surface);--color-muted-foreground:var(--ed-muted);--color-accent:var(--ed-surface-hover);--color-accent-foreground:var(--ed-text);--color-border:var(--ed-line);--color-input:var(--ed-line-strong);--color-ring:var(--ed-accent);--color-destructive:var(--ed-danger);color:var(--ed-text);accent-color:var(--ed-accent-strong);scrollbar-color:var(--ed-line-strong) transparent}.gg-editor-ui[data-editor-theme=dark]{color-scheme:dark;--ed-bg:#1e1e1e;--ed-canvas:#1e1e1e;--ed-panel:#2c2c2c;--ed-panel-raised:#333;--ed-surface:#383838;--ed-surface-hover:#444;--ed-text:#fff;--ed-muted:#b3b3b3;--ed-line:#444;--ed-line-strong:#5c5c5c;--ed-accent:#4fb8ff;--ed-accent-strong:#0d99ff;--ed-accent-hover:#0c8ce9;--ed-accent-soft:#244761;--ed-success:#85e0a3;--ed-warning:#ffcd29;--ed-danger:#fca397;--ed-frame-edge:#ffffff1f;--ed-shadow:0 5px 17px #00000073, 0 2px 7px #0000004d}.gg-editor-ui :is(.text-white,.text-gray-100,.text-gray-200,.text-gray-300):not([data-editor-preview] *){color:var(--ed-text)}.gg-editor-ui :is(.text-gray-400,.text-gray-500,.text-gray-600):not([data-editor-preview] *){color:var(--ed-muted)}.gg-editor-ui :is(.hover\:text-white:hover,.hover\:text-gray-200:hover):not([data-editor-preview] *){color:var(--ed-text)}.gg-editor-ui :is(.hover\:bg-\[\#444444\]:hover,.hover\:bg-\[\#383838\]:hover,.hover\:bg-white\/10:hover):not([data-editor-preview] *){background-color:var(--ed-surface-hover)}.gg-editor-ui :is(.text-sky-400,.text-\[\#7cc4ff\]):not([data-editor-preview] *){color:var(--ed-accent)}.gg-editor-ui :is(.text-red-400,.text-red-500):not([data-editor-preview] *){color:var(--ed-danger)}.gg-editor-ui :is(.bg-blue-500,.bg-blue-600,.bg-\[\#0d99ff\],.bg-green-600,.bg-purple-600,.bg-red-500,.bg-black\/90).text-white,.gg-editor-ui :is(.bg-blue-500,.bg-blue-600,.bg-\[\#0d99ff\],.bg-green-600,.bg-purple-600,.bg-red-500,.bg-black\/90) .text-white:not([data-editor-preview] *){color:#fff}.gg-editor-ui :is(.bg-\[\#0d99ff\]\/20,.bg-\[\#0d99ff\]\/15,.bg-\[\#0d99ff\]\/30):not([data-editor-preview] *){background-color:var(--ed-accent-soft)}.gg-editor-ui :is(.bg-white\/15,.bg-white\/10):not([data-editor-preview] *){background-color:var(--ed-line)}.gg-editor-ui :is(.shadow-lg,.shadow-xl,.shadow-2xl):not([data-editor-preview] *){box-shadow:var(--ed-shadow)}.gg-editor-ui :is([class*="text-[6px]"],[class*="text-[7px]"],[class*="text-[8px]"],[class*="text-[9px]"],[class*="text-[9.5px]"],[class*="text-[10px]"],[class*="text-[10.5px]"],[class*="text-[11px]"],[class*="text-[11.5px]"]):not([data-editor-preview] *){font-size:12px}.gg-editor-ui :is(button,input,select,textarea,a,[tabindex]):focus-visible{outline:2px solid var(--ed-accent);outline-offset:2px;box-shadow:none}.gg-editor-ui :is(input,textarea):not([data-editor-preview] *)::placeholder{color:var(--ed-muted);opacity:1}.gg-editor-ui .ed-icon-button,.gg-editor-ui .ed-button{border:1px solid var(--ed-line);border-radius:var(--ed-radius);height:36px;color:var(--ed-text);background:var(--ed-panel);white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.gg-editor-ui .ed-icon-button{background:0 0;border-color:#0000;width:32px;height:32px;padding:0}.gg-editor-ui :is(.ed-button,.ed-icon-button):hover:not([data-editor-preview] *){background:var(--ed-surface-hover)}.gg-editor-ui :is(.ed-button,.ed-icon-button)[aria-pressed=true]:not([data-editor-preview] *){background:var(--ed-accent-soft);color:var(--ed-accent);border-color:var(--ed-accent)}.gg-editor-ui .ed-button-primary{background:var(--ed-accent-strong);color:#fff;border-color:#0000}.gg-editor-ui .ed-button-primary:hover{background:var(--ed-accent-hover)}.gg-editor-ui button:disabled{opacity:.45}.gg-editor-ui [data-editor-topbar]{gap:12px;height:56px;padding-inline:16px}.gg-editor-ui [data-topbar=title]{font-size:14px}.gg-editor-ui .ed-save-status{white-space:nowrap;color:var(--ed-muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.gg-editor-ui .ed-save-status[data-save-status=dirty]{color:var(--ed-warning)}.gg-editor-ui .ed-save-status[data-save-status=error]{color:var(--ed-danger)}.gg-editor-ui .ed-save-status[data-save-status=saved] svg{color:var(--ed-success)}.gg-editor-ui .ed-collab-presence{align-items:center;gap:10px;display:inline-flex}.gg-editor-ui .ed-collab-avatars{align-items:center;padding-left:4px;display:inline-flex}.gg-editor-ui .ed-collab-avatar{border:2px solid var(--ed-panel);color:#fff;cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;margin-left:-4px;padding:0;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.gg-editor-ui .ed-collab-avatar:hover{transform:translateY(-1px)}.gg-editor-ui .ed-collab-avatar-self{cursor:default;box-shadow:0 0 0 1px var(--ed-line-strong);margin-left:4px}.gg-editor-ui .ed-collab-avatar-self:hover,.gg-editor-ui .ed-collab-avatar-more:hover{transform:none}.gg-editor-ui .ed-collab-avatar-more{background:var(--ed-panel-raised);color:var(--ed-text);cursor:default}.gg-editor-ui .ed-collab-bridge{white-space:nowrap;color:var(--ed-muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.gg-editor-ui .ed-collab-bridge-warn{color:var(--ed-warning)}.gg-editor-ui .ed-collab-bridge-alert{color:#fff;background:var(--ed-danger);border-radius:var(--ed-radius);padding:3px 8px;font-weight:600}.gg-editor-ui .ed-save-status[data-collab-status=synced] svg{color:var(--ed-success)}.gg-editor-ui .ed-save-status[data-collab-status=offline]{color:var(--ed-danger)}.gg-editor-ui .ed-save-status[data-collab-status=error]{color:var(--ed-danger);font-weight:600}.gg-editor-ui .ed-save-status[data-collab-pending]{color:var(--ed-warning)}.gg-editor-ui .ed-collab-dots{flex-shrink:0;align-items:center;gap:2px;display:inline-flex}.gg-editor-ui .ed-collab-dot{width:7px;height:7px;box-shadow:0 0 0 1px var(--ed-panel);border-radius:50%}.gg-editor-ui .ed-panel-heading{border-bottom:1px solid var(--ed-line);flex-shrink:0;align-items:center;gap:8px;height:48px;padding:0 16px;font-size:14px;font-weight:600;display:flex}.gg-editor-ui .ed-toolbar{border:1px solid var(--ed-line);background:var(--ed-panel-raised);color:var(--ed-text);box-shadow:var(--ed-shadow);border-radius:12px;padding:8px}.gg-editor-ui .ed-footer{border-top:1px solid var(--ed-line);background:var(--ed-panel);height:36px;color:var(--ed-muted);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:0 16px;font-size:12px;display:flex}.gg-editor-ui .ed-footer-hint{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gg-editor-ui .ed-empty{color:var(--ed-muted);flex-direction:column;align-items:flex-start;gap:12px;padding:24px;font-size:13px;line-height:1.7;display:flex}.gg-editor-ui .ed-empty strong{color:var(--ed-text);font-size:14px}@media (prefers-reduced-motion:reduce){.gg-editor-ui *,.gg-editor-ui :before,.gg-editor-ui :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.gg-editor-ui .ed-panel-tabs{border-bottom:1px solid var(--ed-line);background:var(--ed-panel);border-radius:0;flex-shrink:0;gap:4px;width:100%;height:48px;padding:8px;display:flex}.gg-editor-ui .ed-panel-tabs>button{flex:1;height:32px;font-size:12px}.gg-editor-ui .ed-panel-tabs>[data-state=active]{background:var(--ed-accent-soft);color:var(--ed-accent);box-shadow:none}.gg-editor-ui .ed-panel-tab-content{flex:1;min-height:0;margin:0;display:flex}.gg-editor-ui .ed-panel-tab-content[data-state=inactive]{display:none}.gg-editor-ui .ed-resize-handle{background-color:#0000;width:6px}.gg-editor-ui .ed-resize-handle:hover,.gg-editor-ui .ed-resize-handle:focus-visible{background-color:var(--ed-accent)}.gg-editor-ui .ed-layer-selected{box-shadow:inset 3px 0 var(--ed-accent)}.gg-editor-ui .ed-layer-selected :is(.text-white,.text-blue-100,.text-blue-200){color:var(--ed-accent)}.gg-editor-ui [data-property-panel] .ed-panel-heading{z-index:1;position:sticky;top:0}.gg-editor-ui [data-property-panel] .p-3{padding:0}.gg-editor-ui [data-property-panel] .p-3>*{padding-left:16px;padding-right:16px}.gg-editor-ui [data-property-panel] .p-3>.mb-3{min-height:44px;margin-bottom:0}.gg-editor-ui [data-property-panel] .p-3>[data-state]{border-top:1px solid var(--ed-line)}.gg-editor-ui [data-property-panel] .p-3>.ed-part-card{margin:0 16px 12px;padding:10px 12px}.gg-editor-ui [data-property-panel] [data-state]>button[data-state]{min-height:40px;color:var(--ed-text);border-top:0;border-radius:0;padding:0;font-size:13px;font-weight:600}.gg-editor-ui [data-property-panel] [data-state]>button[data-state]:hover{color:var(--ed-text);background:0 0}.gg-editor-ui [data-property-panel] [data-state]>button[data-state]>span:first-child>svg,.gg-editor-ui [data-property-panel] [data-state]>button[data-state]>svg:last-child{width:14px;height:14px;color:var(--ed-muted)}.gg-editor-ui [data-property-panel] [data-state]>div[data-state=open]{padding-bottom:16px}.gg-editor-ui [data-property-panel] label,.gg-editor-ui [data-property-panel] .ed-prop-label{color:var(--ed-muted);font-size:11px;font-weight:500;line-height:1.4}.gg-editor-ui [data-property-panel] :is(input:not([type=color]):not([type=checkbox]):not([type=range]),select,[role=combobox]):not(.group *){background:var(--ed-surface);height:32px;min-height:32px;color:var(--ed-text);box-shadow:none;border-radius:6px;padding-left:8px;padding-right:8px;font-size:12px;border:1px solid #0000!important}.gg-editor-ui [data-property-panel] :is(input:not([type=color]):not([type=checkbox]):not([type=range]),select,[role=combobox]):not(.group *):hover{border-color:var(--ed-line-strong)!important}.gg-editor-ui [data-property-panel] :is(input:not([type=color]):not([type=checkbox]):not([type=range]),select,[role=combobox]):not(.group *):focus-visible,.gg-editor-ui [data-property-panel] :is(input:not([type=color]):not([type=checkbox]):not([type=range]),select,[role=combobox]):not(.group *):focus-within{box-shadow:none;outline:none;border-color:var(--ed-accent)!important}.gg-editor-ui [data-property-panel] .group.h-5{background:var(--ed-surface);border-color:#0000;border-radius:6px;min-width:40px;height:28px}.gg-editor-ui [data-property-panel] .group.h-5:hover{border-color:var(--ed-line-strong)}.gg-editor-ui [data-property-panel] .group.h-5:focus-within{border-color:var(--ed-accent)}.gg-editor-ui [data-property-panel] .group.h-5 input{color:var(--ed-text);font-size:12px}.gg-editor-ui [data-property-panel] .group.h-5 input:focus{box-shadow:none}.gg-editor-ui [data-property-panel] button.h-7.w-7,.gg-editor-ui [data-property-panel] button.h-7{border-radius:6px;min-width:32px;height:32px}.gg-editor-ui [data-property-panel] button.h-7.w-7 svg{width:14px;height:14px}.gg-editor-ui [data-property-panel] button[data-state]:not([role=checkbox]):not([role=switch]){min-height:32px}.gg-editor-ui [data-property-panel] button[role=checkbox]{border:1px solid var(--ed-line-strong);background:var(--ed-surface);border-radius:4px;width:16px;height:16px;min-height:16px}.gg-editor-ui [data-property-panel] button[role=checkbox][data-state=checked]{background:var(--ed-accent-strong);border-color:var(--ed-accent-strong);color:#fff}.gg-editor-ui [data-property-panel] input[type=color]{border:1px solid var(--ed-line-strong);border-radius:6px;width:28px;height:28px;padding:0}.gg-editor-ui [data-property-panel] .grid.grid-cols-2{gap:8px}.gg-editor-ui [data-property-panel] .space-y-2>*+*,.gg-editor-ui [data-property-panel] .space-y-3>*+*{margin-top:10px}.gg-editor-ui[data-editor-surface=popup],.gg-editor-ui[data-editor-surface=dialog],.gg-editor-ui[data-editor-surface=tooltip]{color:var(--ed-text);background-color:var(--ed-panel-raised);border-color:var(--ed-line);box-shadow:var(--ed-shadow);z-index:10000;border-radius:12px}.gg-editor-ui[data-editor-surface=popup]{max-width:calc(100vw - 24px)}.gg-editor-ui[data-editor-surface=dialog]{max-width:min(var(--container-7xl,80rem), calc(100vw - 48px));border-radius:16px;max-height:calc(100dvh - 48px);overflow-y:auto}.gg-editor-ui[data-editor-surface=dialog].max-w-lg{max-width:min(32rem,100vw - 48px)}.gg-editor-ui[data-editor-surface=overlay]{z-index:9999;background:#10182766}.gg-editor-ui[data-editor-surface=tooltip]{border:1px solid var(--ed-line);font-size:12px}.gg-editor-ui [role=menuitem],.gg-editor-ui [role=menuitemcheckbox],.gg-editor-ui [role=menuitemradio]{min-height:32px;font-size:13px}.gg-editor-ui :is([role=menuitem],[role=menuitemcheckbox],[role=menuitemradio],[role=option])[data-highlighted]:not([data-editor-preview] *){background-color:var(--ed-accent-soft);color:var(--ed-accent)}.gg-editor-ui[data-editor-surface=dialog]>button:last-child{justify-content:center;align-items:center;min-width:28px;min-height:28px;display:flex}.gg-editor-ui .ed-comments-panel{background:var(--ed-surface)}.gg-editor-ui .ed-comment-thread p{overflow-wrap:anywhere}.gg-editor-ui .ed-comment-thread button{min-height:28px}.gg-editor-ui .ed-comments-panel textarea{border-radius:8px;min-height:88px;padding:12px;line-height:1.6}.gg-editor-ui .ed-comment-thread>div:first-child>button{min-width:28px}.gg-editor-ui .ed-ribbon [role=tab]{height:40px;padding-inline:12px;font-size:13px}.gg-editor-ui .ed-ribbon [role=tabpanel]{gap:4px;padding-inline:16px}.gg-editor-ui .ed-ribbon [role=tabpanel] button,.gg-editor-ui .ed-ribbon [role=tabpanel] input:not([type=color]),.gg-editor-ui .ed-ribbon [role=tabpanel] select{min-height:28px}.gg-editor-ui .ed-ribbon [role=tab][data-state=active]{color:var(--ed-accent)}.gg-editor-ui :is(input:not([type=color]),textarea,select):not([data-editor-preview] *){border-color:var(--ed-line-strong)!important}.gg-editor-ui .ed-frame-shell{background:#fff}.gg-editor-ui .ed-frame-label-row{align-items:center;gap:2px;max-width:100%;height:20px;display:inline-flex;position:absolute;left:0}.gg-editor-ui .ed-frame-label{white-space:nowrap;min-width:0;height:20px;color:var(--ed-muted);pointer-events:auto;cursor:pointer;text-overflow:ellipsis;border-radius:4px;align-items:center;gap:6px;padding:0 6px 0 4px;font-size:11px;line-height:1;display:inline-flex;overflow:hidden}.gg-editor-ui .ed-frame-label-link{width:18px;height:18px;color:var(--ed-muted);pointer-events:auto;opacity:0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .12s;display:inline-flex}.gg-editor-ui .ed-frame-label-link svg{width:12px;height:12px}.gg-editor-ui .ed-frame-label-row:hover .ed-frame-label-link,.gg-editor-ui .ed-frame-label-active+.ed-frame-label-link,.gg-editor-ui .ed-frame-label-link:focus-visible{opacity:1}.gg-editor-ui .ed-frame-label-link:hover{color:var(--ed-text);background:var(--ed-panel);box-shadow:0 0 0 1px var(--ed-line)}.gg-editor-ui .ed-part-card{border:1px solid #7b61ff}@supports (color:color-mix(in lab, red, red)){.gg-editor-ui .ed-part-card{border:1px solid color-mix(in srgb, #7b61ff 45%, var(--ed-line))}}.gg-editor-ui .ed-part-card{background:#7b61ff}@supports (color:color-mix(in lab, red, red)){.gg-editor-ui .ed-part-card{background:color-mix(in srgb, #7b61ff 8%, var(--ed-panel))}}.gg-editor-ui .ed-part-card{color:var(--ed-text)}.gg-editor-ui .ed-part-accent{color:#7b61ff}.gg-editor-ui[data-editor-theme=dark] .ed-part-accent{color:#a99cff}.gg-editor-ui .ed-part-note{color:var(--ed-muted)}.gg-editor-ui .ed-frame-label:hover{color:var(--ed-text);background:var(--ed-panel);box-shadow:0 0 0 1px var(--ed-line)}.gg-editor-ui .ed-frame-label-active,.gg-editor-ui .ed-frame-label-active:hover{color:var(--ed-accent);font-weight:600}.gg-editor-ui .ed-frame-label-index{font-variant-numeric:tabular-nums;opacity:.7}.gg-editor-ui .ed-frame-label-title{text-overflow:ellipsis;overflow:hidden}.gg-editor-ui .ed-frame-label-dirty{background:var(--ed-warning);border-radius:50%;flex-shrink:0;width:6px;height:6px}.gg-editor-ui .ed-frame-label-loading{border:1.5px solid var(--ed-line-strong);border-top-color:var(--ed-accent);border-radius:50%;flex-shrink:0;width:9px;height:9px;animation:.8s linear infinite ed-spin}@keyframes ed-spin{to{transform:rotate(360deg)}}.gg-editor-ui .ed-frame-ring{pointer-events:none;border-radius:1px;position:absolute;top:0;left:0}.gg-editor-ui .ed-canvas-marquee{z-index:20;pointer-events:none;border:1px solid var(--ed-accent);background:var(--ed-accent);position:absolute}@supports (color:color-mix(in lab, red, red)){.gg-editor-ui .ed-canvas-marquee{background:color-mix(in srgb, var(--ed-accent) 12%, transparent)}}.gg-editor-ui .ed-frame-ring-active{box-shadow:0 0 0 1.5px var(--ed-accent-strong)}.gg-editor-ui .ed-frame-ring-hover{box-shadow:0 0 0 1px var(--ed-accent-strong);opacity:.55}.gg-editor-ui [data-canvas-preview-image="1"] [data-page-preview][data-image-ready="1"] iframe{visibility:hidden}.gg-editor-ui .ed-frame-skeleton{background:#fff;flex-direction:column;gap:3%;padding:6% 8%;display:flex;position:absolute;inset:0}.gg-editor-ui .ed-frame-skeleton-bar{background:#eceff3;border-radius:999px;height:2.5%;min-height:8px;display:block}.gg-editor-ui .ed-frame-skeleton-note{color:#9aa3b2;font-size:40px}.gg-editor-ui [data-canvas-rulers] canvas{display:block}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-space-x-reverse:0}}}:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-sky-400:oklch(74.6% .16 232.661);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-900:oklch(38.1% .176 304.987);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--text-9xl:8rem;--text-9xl--line-height:1;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--leading-loose:2;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--drop-shadow-md:0 3px 3px #0000001f;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--radius:.5rem;--color-background:#fff;--color-foreground:#0a0a0a;--color-card:#fff;--color-card-foreground:#0a0a0a;--color-popover:#fff;--color-popover-foreground:#0a0a0a;--color-primary:#171717;--color-primary-foreground:#fafafa;--color-secondary:#f5f5f5;--color-secondary-foreground:#171717;--color-muted:#f5f5f5;--color-muted-foreground:#737373;--color-accent:#f5f5f5;--color-accent-foreground:#171717;--color-destructive:#ef4444;--color-destructive-foreground:#fafafa;--color-border:#e5e5e5;--color-input:#e5e5e5;--color-ring:#0a0a0a;--color-gg-green:#316a40;--color-ink:#2e2e2e;--color-mark-green:#cfe6d6}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-auto{inset:auto}.inset-x-2{inset-inline:calc(var(--spacing) * 2)}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-\[50\%\]{top:50%}.top-auto{top:auto}.top-full{top:100%}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-1\/2{right:50%}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.right-8{right:calc(var(--spacing) * 8)}.right-\[24px\]{right:24px}.right-auto{right:auto}.right-full{right:100%}.bottom-0{bottom:0}.bottom-0\.5{bottom:calc(var(--spacing) * .5)}.bottom-1{bottom:var(--spacing)}.bottom-1\/2{bottom:50%}.bottom-5{bottom:calc(var(--spacing) * 5)}.bottom-8{bottom:calc(var(--spacing) * 8)}.bottom-16{bottom:calc(var(--spacing) * 16)}.bottom-20{bottom:calc(var(--spacing) * 20)}.bottom-\[24px\]{bottom:24px}.bottom-auto{bottom:auto}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-4{left:calc(var(--spacing) * 4)}.left-\[36px\]{left:36px}.left-\[50\%\]{left:50%}.left-\[96px\]{left:96px}.left-\[142px\]{left:142px}.left-auto{left:auto}.left-full{left:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[70\]{z-index:70}.z-\[100\]{z-index:100}.z-\[1000\]{z-index:1000}.z-\[9999\]{z-index:9999}.z-auto{z-index:auto}.-order-1{order:calc(1 * -1)}.order-1{order:1}.order-2{order:2}.order-first{order:-9999}.order-last{order:9999}.order-none{order:0}.col-span-7{grid-column:span 7/span 7}.\!container{width:100%!important}@media (min-width:40rem){.\!container{max-width:40rem!important}}@media (min-width:48rem){.\!container{max-width:48rem!important}}@media (min-width:64rem){.\!container{max-width:64rem!important}}@media (min-width:80rem){.\!container{max-width:80rem!important}}@media (min-width:96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-m-0\.5{margin:calc(var(--spacing) * -.5)}.m-0{margin:0}.m-3{margin:calc(var(--spacing) * 3)}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-6{margin-inline:calc(var(--spacing) * -6)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:var(--spacing)}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-0{margin-top:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-\[10px\]{margin-top:10px}.mt-\[22px\]{margin-top:22px}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.mr-0{margin-right:0}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-auto{margin-right:auto}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-auto{margin-bottom:auto}.ml-0{margin-left:0}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.list-item{display:list-item}.table{display:table}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.\!h-5{height:calc(var(--spacing) * 5)!important}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-1\/2{height:50%}.h-1\/3{height:33.3333%}.h-1\/4{height:25%}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-2\/3{height:66.6667%}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-3\/4{height:75%}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-40{height:calc(var(--spacing) * 40)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-96{height:calc(var(--spacing) * 96)}.h-\[1px\]{height:1px}.h-\[2\.5px\]{height:2.5px}.h-\[3px\]{height:3px}.h-\[4px\]{height:4px}.h-\[22px\]{height:22px}.h-\[26px\]{height:26px}.h-\[30px\]{height:30px}.h-\[56px\]{height:56px}.h-\[58px\]{height:58px}.h-\[64px\]{height:64px}.h-\[72px\]{height:72px}.h-\[82vh\]{height:82vh}.h-\[90vh\]{height:90vh}.h-\[96px\]{height:96px}.h-\[104px\]{height:104px}.h-\[240px\]{height:240px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-dvh{height:100dvh}.h-fit{height:fit-content}.h-full{height:100%}.h-max{height:max-content}.h-min{height:min-content}.h-px{height:1px}.h-screen{height:100vh}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[--radix-context-menu-content-available-height\]{max-height:--radix-context-menu-content-available-height}.max-h-\[--radix-select-content-available-height\]{max-height:--radix-select-content-available-height}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[240px\]{max-height:240px}.max-h-\[300px\]{max-height:300px}.max-h-\[420px\]{max-height:420px}.max-h-\[860px\]{max-height:860px}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-dvh{max-height:100dvh}.max-h-fit{max-height:fit-content}.max-h-full{max-height:100%}.max-h-max{max-height:max-content}.max-h-min{max-height:min-content}.max-h-none{max-height:none}.max-h-screen{max-height:100vh}.min-h-0{min-height:0}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-\[40px\]{min-height:40px}.min-h-\[44px\]{min-height:44px}.min-h-\[52px\]{min-height:52px}.min-h-\[60px\]{min-height:60px}.min-h-\[80px\]{min-height:80px}.min-h-\[100px\]{min-height:100px}.min-h-\[150px\]{min-height:150px}.min-h-dvh{min-height:100dvh}.min-h-fit{min-height:fit-content}.min-h-full{min-height:100%}.min-h-max{min-height:max-content}.min-h-min{min-height:min-content}.min-h-screen{min-height:100vh}.\!w-5{width:calc(var(--spacing) * 5)!important}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-1\/4{width:25%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[1px\]{width:1px}.w-\[16px\]{width:16px}.w-\[22px\]{width:22px}.w-\[38px\]{width:38px}.w-\[52px\]{width:52px}.w-\[54px\]{width:54px}.w-\[56px\]{width:56px}.w-\[62px\]{width:62px}.w-\[64px\]{width:64px}.w-\[68px\]{width:68px}.w-\[72px\]{width:72px}.w-\[90vw\]{width:90vw}.w-\[95vw\]{width:95vw}.w-\[136px\]{width:136px}.w-\[160px\]{width:160px}.w-\[180px\]{width:180px}.w-\[212px\]{width:212px}.w-\[220px\]{width:220px}.w-\[264px\]{width:264px}.w-\[280px\]{width:280px}.w-\[300px\]{width:300px}.w-\[400px\]{width:400px}.w-\[min\(1080px\,94vw\)\]{width:min(1080px,94vw)}.w-\[min\(1100px\,95vw\)\]{width:min(1100px,95vw)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-min{width:min-content}.w-px{width:1px}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-\[40px\]{max-width:40px}.max-w-\[80px\]{max-width:80px}.max-w-\[90px\]{max-width:90px}.max-w-\[420px\]{max-width:420px}.max-w-\[calc\(100\%-5rem\)\]{max-width:calc(100% - 5rem)}.max-w-fit{max-width:fit-content}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-max{max-width:max-content}.max-w-min{max-width:min-content}.max-w-none{max-width:none}.min-w-0{min-width:0}.min-w-\[3\.5rem\]{min-width:3.5rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[52px\]{min-width:52px}.min-w-\[60px\]{min-width:60px}.min-w-\[176px\]{min-width:176px}.min-w-\[300px\]{min-width:300px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-fit{min-width:fit-content}.min-w-full{min-width:100%}.min-w-max{min-width:max-content}.min-w-min{min-width:min-content}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-0{flex-basis:0}.basis-1\/2{flex-basis:50%}.basis-auto{flex-basis:auto}.basis-full{flex-basis:100%}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:separate}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:--radix-context-menu-content-transform-origin}.origin-\[--radix-dropdown-menu-content-transform-origin\]{transform-origin:--radix-dropdown-menu-content-transform-origin}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:--radix-popover-content-transform-origin}.origin-\[--radix-select-content-transform-origin\]{transform-origin:--radix-select-content-transform-origin}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:--radix-tooltip-content-transform-origin}.origin-top-left{transform-origin:0 0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-alias{cursor:alias}.cursor-all-scroll{cursor:all-scroll}.cursor-auto{cursor:auto}.cursor-cell{cursor:cell}.cursor-col-resize{cursor:col-resize}.cursor-context-menu{cursor:context-menu}.cursor-copy{cursor:copy}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-e-resize{cursor:e-resize}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-help{cursor:help}.cursor-move{cursor:move}.cursor-n-resize{cursor:n-resize}.cursor-ne-resize{cursor:ne-resize}.cursor-nesw-resize{cursor:nesw-resize}.cursor-no-drop{cursor:no-drop}.cursor-none{cursor:none}.cursor-not-allowed{cursor:not-allowed}.cursor-ns-resize{cursor:ns-resize}.cursor-nw-resize{cursor:nw-resize}.cursor-nwse-resize{cursor:nwse-resize}.cursor-pointer{cursor:pointer}.cursor-progress{cursor:progress}.cursor-row-resize{cursor:row-resize}.cursor-s-resize{cursor:s-resize}.cursor-se-resize{cursor:se-resize}.cursor-sw-resize{cursor:sw-resize}.cursor-text{cursor:text}.cursor-vertical-text{cursor:vertical-text}.cursor-w-resize{cursor:w-resize}.cursor-wait{cursor:wait}.cursor-zoom-in{cursor:zoom-in}.cursor-zoom-out{cursor:zoom-out}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.\[appearance\:textfield\]{appearance:textfield}.appearance-none{appearance:none}.grid-flow-col{grid-auto-flow:column}.grid-flow-col-dense{grid-auto-flow:column dense}.grid-flow-dense{grid-auto-flow:dense}.grid-flow-row{grid-auto-flow:row}.grid-flow-row-dense{grid-auto-flow:dense}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-none{grid-template-columns:none}.grid-cols-subgrid{grid-template-columns:subgrid}.grid-rows-none{grid-template-rows:none}.grid-rows-subgrid{grid-template-rows:subgrid}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.content-around{align-content:space-around}.content-baseline{align-content:baseline}.content-between{align-content:space-between}.content-center{align-content:center}.content-end{align-content:flex-end}.content-evenly{align-content:space-evenly}.content-start{align-content:flex-start}.content-stretch{align-content:stretch}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-evenly{justify-content:space-evenly}.justify-start{justify-content:flex-start}.justify-stretch{justify-content:stretch}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-\[3px\]{gap:3px}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-0{column-gap:0}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-0{row-gap:0}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.self-auto{align-self:auto}.self-baseline{align-self:baseline}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-visible{overflow-x:visible}.overflow-y-auto{overflow-y:auto}.overflow-y-clip{overflow-y:clip}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-visible{overflow-y:visible}.rounded{border-radius:var(--radius)}.rounded-\[2px\]{border-radius:2px}.rounded-\[3px\]{border-radius:3px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.rounded-l{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.rounded-tl{border-top-left-radius:var(--radius)}.rounded-r{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.rounded-tr{border-top-right-radius:var(--radius)}.rounded-br{border-bottom-right-radius:var(--radius)}.rounded-bl{border-bottom-left-radius:var(--radius)}.\!border-2{border-style:var(--tw-border-style)!important;border-width:2px!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-\(length\:--w\){border-style:var(--tw-border-style);border-width:var(--w)}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-2\!{border-style:var(--tw-border-style)!important;border-width:2px!important}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-\[2px\]{border-style:var(--tw-border-style);border-width:2px}.border-\[3px\]{border-style:var(--tw-border-style);border-width:3px}.border-\[4px\]{border-style:var(--tw-border-style);border-width:4px}.border-\[length\:var\(--w\)\]{border-style:var(--tw-border-style);border-width:var(--w)}.border-\[medium\]{border-style:var(--tw-border-style);border-width:medium}.border-\[min\(2px\,1vw\)\]{border-style:var(--tw-border-style);border-width:min(2px,1vw)}.border-\[thick\]{border-style:var(--tw-border-style);border-width:thick}.border-\[thin\]{border-style:var(--tw-border-style);border-width:thin}.border-x-2{border-inline-style:var(--tw-border-style);border-inline-width:2px}.border-bs-2{border-block-start-style:var(--tw-border-style);border-block-start-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-\[5px\]{border-left-style:var(--tw-border-style);border-left-width:5px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dashed\!{--tw-border-style:dashed!important;border-style:dashed!important}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-double{--tw-border-style:double;border-style:double}.border-hidden{--tw-border-style:hidden;border-style:hidden}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\[\#0d99ff\]{border-color:#0d99ff}.border-\[\#0d99ff\]\/30{border-color:oklab(66.9841% -.0648249 -.170866/.3)}.border-\[\#0d99ff\]\/50{border-color:oklab(66.9841% -.0648249 -.170866/.5)}.border-\[\#0d99ff\]\/60{border-color:oklab(66.9841% -.0648249 -.170866/.6)}.border-\[\#4a4a4a\]{border-color:#4a4a4a}.border-\[\#5d5d5d\]{border-color:#5d5d5d}.border-\[\#444444\]{border-color:#444}.border-\[\#444444\]\/50{border-color:oklab(38.6654% 0 0/.5)}.border-\[\#fff\],.border-\[\#ffffff\]{border-color:#fff}.border-\[mediumblue\]{border-color:#0000cd}.border-\[var\(--x\)\]{border-color:var(--x)}.border-amber-500{border-color:var(--color-amber-500)}.border-amber-500\/60{border-color:#f99c0099}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/60{border-color:color-mix(in oklab, var(--color-amber-500) 60%, transparent)}}.border-blue-600\/30{border-color:#155dfc4d}@supports (color:color-mix(in lab, red, red)){.border-blue-600\/30{border-color:color-mix(in oklab, var(--color-blue-600) 30%, transparent)}}.border-blue-600\/40{border-color:#155dfc66}@supports (color:color-mix(in lab, red, red)){.border-blue-600\/40{border-color:color-mix(in oklab, var(--color-blue-600) 40%, transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-500{border-color:var(--color-gray-500)}.border-gray-700{border-color:var(--color-gray-700)}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab, red, red)){.border-green-500\/30{border-color:color-mix(in oklab, var(--color-green-500) 30%, transparent)}}.border-green-600{border-color:var(--color-green-600)}.border-input{border-color:var(--color-input)}.border-primary{border-color:var(--color-primary)}.border-primary\/50{border-color:#17171780}@supports (color:color-mix(in lab, red, red)){.border-primary\/50{border-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.border-purple-500{border-color:var(--color-purple-500)}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/30{border-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.border-purple-500\/50{border-color:#ac4bff80}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/50{border-color:color-mix(in oklab, var(--color-purple-500) 50%, transparent)}}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.border-red-500\/50{border-color:color-mix(in oklab, var(--color-red-500) 50%, transparent)}}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.border-yellow-500\/30{border-color:#edb2004d}@supports (color:color-mix(in lab, red, red)){.border-yellow-500\/30{border-color:color-mix(in oklab, var(--color-yellow-500) 30%, transparent)}}.border-t-blue-500{border-top-color:var(--color-blue-500)}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-\[\#0F6CBD\]{background-color:#0f6cbd}.bg-\[\#0d99ff\]{background-color:#0d99ff}.bg-\[\#0d99ff\]\/10{background-color:oklab(66.9841% -.0648249 -.170866/.1)}.bg-\[\#0d99ff\]\/15{background-color:oklab(66.9841% -.0648249 -.170866/.15)}.bg-\[\#0d99ff\]\/20{background-color:oklab(66.9841% -.0648249 -.170866/.2)}.bg-\[\#0d99ff\]\/25{background-color:oklab(66.9841% -.0648249 -.170866/.25)}.bg-\[\#0d99ff\]\/30{background-color:oklab(66.9841% -.0648249 -.170866/.3)}.bg-\[\#0d99ff\]\/40{background-color:oklab(66.9841% -.0648249 -.170866/.4)}.bg-\[\#1e1e1e\]{background-color:#1e1e1e}.bg-\[\#2a2a2a\]{background-color:#2a2a2a}.bg-\[\#2c2c2c\]{background-color:#2c2c2c}.bg-\[\#2e2e2e\]{background-color:#2e2e2e}.bg-\[\#4a4a4a\]{background-color:#4a4a4a}.bg-\[\#5a5a5a\]{background-color:#5a5a5a}.bg-\[\#37373d\]{background-color:#37373d}.bg-\[\#383838\]{background-color:#383838}.bg-\[\#444444\]{background-color:#444}.bg-\[\#444444\]\/20{background-color:oklab(38.6654% 0 0/.2)}.bg-\[\#C43E1C\]{background-color:#c43e1c}.bg-\[\#ff0000\]{background-color:red}.bg-amber-600{background-color:var(--color-amber-600)}.bg-background{background-color:var(--color-background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-black\/90{background-color:#000000e6}@supports (color:color-mix(in lab, red, red)){.bg-black\/90{background-color:color-mix(in oklab, var(--color-black) 90%, transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-border{background-color:var(--color-border)}.bg-card{background-color:var(--color-card)}.bg-destructive{background-color:var(--color-destructive)}.bg-gg-green{background-color:var(--color-gg-green)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/10{background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.bg-green-600{background-color:var(--color-green-600)}.bg-mark-green{background-color:var(--color-mark-green)}.bg-muted{background-color:var(--color-muted)}.bg-popover{background-color:var(--color-popover)}.bg-primary{background-color:var(--color-primary)}.bg-primary\/20{background-color:#17171733}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, var(--color-primary) 20%, transparent)}}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/10{background-color:color-mix(in oklab, var(--color-purple-500) 10%, transparent)}}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/20{background-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.bg-purple-600{background-color:var(--color-purple-600)}.bg-purple-600\/30{background-color:#9810fa4d}@supports (color:color-mix(in lab, red, red)){.bg-purple-600\/30{background-color:color-mix(in oklab, var(--color-purple-600) 30%, transparent)}}.bg-purple-900\/30{background-color:#59168b4d}@supports (color:color-mix(in lab, red, red)){.bg-purple-900\/30{background-color:color-mix(in oklab, var(--color-purple-900) 30%, transparent)}}.bg-purple-900\/50{background-color:#59168b80}@supports (color:color-mix(in lab, red, red)){.bg-purple-900\/50{background-color:color-mix(in oklab, var(--color-purple-900) 50%, transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/20{background-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.bg-red-500\/90{background-color:#fb2c36e6}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/90{background-color:color-mix(in oklab, var(--color-red-500) 90%, transparent)}}.bg-red-600{background-color:var(--color-red-600)}.bg-secondary{background-color:var(--color-secondary)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/15{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.bg-white\/15{background-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.bg-white\/20{background-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab, red, red)){.bg-yellow-500\/10{background-color:color-mix(in oklab, var(--color-yellow-500) 10%, transparent)}}.bg-cover{background-size:cover}.bg-center{background-position:50%}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-fill{object-fit:fill}.object-none{object-fit:none}.object-scale-down{object-fit:scale-down}.object-bottom{object-position:bottom}.object-center{object-position:center}.object-left{object-position:left}.object-left-bottom{object-position:left bottom}.object-left-top{object-position:left top}.object-right{object-position:right}.object-right-bottom{object-position:right bottom}.object-right-top{object-position:right top}.object-top{object-position:top}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[1px\]{padding:1px}.px-0{padding-inline:0}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-\[6px\]{padding-inline:6px}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-\[3px\]{padding-block:3px}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-0{padding-right:0}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-0{padding-left:0}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}.text-9xl{font-size:var(--text-9xl);line-height:var(--tw-leading,var(--text-9xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[2em\]{font-size:2em}.text-\[6px\]{font-size:6px}.text-\[7px\]{font-size:7px}.text-\[8px\]{font-size:8px}.text-\[9\.5px\]{font-size:9.5px}.text-\[9px\]{font-size:9px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[26px\]{font-size:26px}.text-\[32px\]{font-size:32px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-loose{--tw-leading:var(--leading-loose);line-height:var(--leading-loose)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-normal{overflow-wrap:normal;word-break:normal}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-clip{text-overflow:clip}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#0d99ff\]{color:#0d99ff}.text-\[\#4fb8ff\]{color:#4fb8ff}.text-\[\#7cc4ff\]{color:#7cc4ff}.text-\[hsl\(\.\.\.\)\]{color:hsl(...)}.text-\[rgb\(\)\]{color:rgb()}.text-\[数値\]{color:数値}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/90{color:#fcbb00e6}@supports (color:color-mix(in lab, red, red)){.text-amber-400\/90{color:color-mix(in oklab, var(--color-amber-400) 90%, transparent)}}.text-amber-600{color:var(--color-amber-600)}.text-black{color:var(--color-black)}.text-blue-100{color:var(--color-blue-100)}.text-blue-200{color:var(--color-blue-200)}.text-blue-500{color:var(--color-blue-500)}.text-blue-700{color:var(--color-blue-700)}.text-card-foreground{color:var(--color-card-foreground)}.text-current{color:currentColor}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-foreground{color:var(--color-foreground)}.text-gray-100{color:var(--color-gray-100)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-green-400{color:var(--color-green-400)}.text-inherit{color:inherit}.text-muted{color:var(--color-muted)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-popover-foreground{color:var(--color-popover-foreground)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-purple-200{color:var(--color-purple-200)}.text-purple-300{color:var(--color-purple-300)}.text-purple-400{color:var(--color-purple-400)}.text-purple-600{color:var(--color-purple-600)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-sky-400{color:var(--color-sky-400)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab, red, red)){.text-white\/85{color:color-mix(in oklab, var(--color-white) 85%, transparent)}}.text-yellow-400{color:var(--color-yellow-400)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.accent-\[\#0F6CBD\]{accent-color:#0f6cbd}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-100{opacity:1}.bg-blend-color{background-blend-mode:color}.bg-blend-color-burn{background-blend-mode:color-burn}.bg-blend-color-dodge{background-blend-mode:color-dodge}.bg-blend-darken{background-blend-mode:darken}.bg-blend-difference{background-blend-mode:difference}.bg-blend-exclusion{background-blend-mode:exclusion}.bg-blend-hard-light{background-blend-mode:hard-light}.bg-blend-hue{background-blend-mode:hue}.bg-blend-lighten{background-blend-mode:lighten}.bg-blend-luminosity{background-blend-mode:luminosity}.bg-blend-multiply{background-blend-mode:multiply}.bg-blend-normal{background-blend-mode:normal}.bg-blend-overlay{background-blend-mode:overlay}.bg-blend-saturation{background-blend-mode:saturation}.bg-blend-screen{background-blend-mode:screen}.bg-blend-soft-light{background-blend-mode:soft-light}.mix-blend-color{mix-blend-mode:color}.mix-blend-color-burn{mix-blend-mode:color-burn}.mix-blend-color-dodge{mix-blend-mode:color-dodge}.mix-blend-darken{mix-blend-mode:darken}.mix-blend-difference{mix-blend-mode:difference}.mix-blend-exclusion{mix-blend-mode:exclusion}.mix-blend-hard-light{mix-blend-mode:hard-light}.mix-blend-hue{mix-blend-mode:hue}.mix-blend-lighten{mix-blend-mode:lighten}.mix-blend-luminosity{mix-blend-mode:luminosity}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-normal{mix-blend-mode:normal}.mix-blend-overlay{mix-blend-mode:overlay}.mix-blend-plus-darker{mix-blend-mode:plus-darker}.mix-blend-plus-lighter{mix-blend-mode:plus-lighter}.mix-blend-saturation{mix-blend-mode:saturation}.mix-blend-screen{mix-blend-mode:screen}.mix-blend-soft-light{mix-blend-mode:soft-light}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\[\#0d99ff\]{--tw-ring-color:#0d99ff}.ring-\[\#0d99ff\]\/50{--tw-ring-color:oklab(66.9841% -.0648249 -.170866/.5)}.ring-offset-background{--tw-ring-offset-color:var(--color-background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow-md{--tw-drop-shadow-size:drop-shadow(0 3px 3px var(--tw-drop-shadow-color,#0000001f));--tw-drop-shadow:drop-shadow(var(--drop-shadow-md));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;user-select:auto}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.ring-inset{--tw-ring-inset:inset}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\:scale-\[1\.04\]:is(:where(.group):hover *){scale:1.04}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\/fill\:block:is(:where(.group\/fill):hover *){display:block}.group-hover\/var-input\:opacity-100:is(:where(.group\/var-input):hover *){opacity:1}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.selection\:bg-transparent ::selection{background-color:#0000}.selection\:bg-transparent::selection{background-color:#0000}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--color-foreground)}.placeholder\:text-gray-500::placeholder{color:var(--color-gray-500)}.placeholder\:text-gray-600::placeholder{color:var(--color-gray-600)}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}.focus-within\:border-\[\#0d99ff\]:focus-within{border-color:#0d99ff}.focus-within\:ring-1:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-\[\#0d99ff\]:focus-within{--tw-ring-color:#0d99ff}@media (hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-\[\#0d99ff\]:hover{border-color:#0d99ff}.hover\:border-\[\#5d5d5d\]:hover{border-color:#5d5d5d}.hover\:border-\[\#555\]:hover{border-color:#555}.hover\:border-gray-500:hover{border-color:var(--color-gray-500)}.hover\:bg-\[\#0c8ce9\]:hover{background-color:#0c8ce9}.hover\:bg-\[\#0d99ff\]:hover{background-color:#0d99ff}.hover\:bg-\[\#0d99ff\]\/30:hover{background-color:oklab(66.9841% -.0648249 -.170866/.3)}.hover\:bg-\[\#2c2c2c\]:hover{background-color:#2c2c2c}.hover\:bg-\[\#4a4a4a\]:hover{background-color:#4a4a4a}.hover\:bg-\[\#4c4c4c\]:hover{background-color:#4c4c4c}.hover\:bg-\[\#5d5d5d\]:hover{background-color:#5d5d5d}.hover\:bg-\[\#6a6a6a\]:hover{background-color:#6a6a6a}.hover\:bg-\[\#333\]:hover{background-color:#333}.hover\:bg-\[\#353535\]:hover{background-color:#353535}.hover\:bg-\[\#383838\]:hover{background-color:#383838}.hover\:bg-\[\#444444\]:hover{background-color:#444}.hover\:bg-\[\#444444\]\/30:hover{background-color:oklab(38.6654% 0 0/.3)}.hover\:bg-\[\#444444\]\/50:hover{background-color:oklab(38.6654% 0 0/.5)}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-blue-100:hover{background-color:var(--color-blue-100)}.hover\:bg-blue-500\/50:hover{background-color:#3080ff80}@supports (color:color-mix(in lab, red, red)){.hover\:bg-blue-500\/50:hover{background-color:color-mix(in oklab, var(--color-blue-500) 50%, transparent)}}.hover\:bg-destructive\/80:hover{background-color:#ef4444cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab, var(--color-destructive) 80%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:#ef4444e6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--color-destructive) 90%, transparent)}}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-primary\/80:hover{background-color:#171717cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab, var(--color-primary) 80%, transparent)}}.hover\:bg-primary\/90:hover{background-color:#171717e6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--color-primary) 90%, transparent)}}.hover\:bg-purple-500\/20:hover{background-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-500\/20:hover{background-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.hover\:bg-purple-500\/30:hover{background-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-500\/30:hover{background-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.hover\:bg-purple-700:hover{background-color:var(--color-purple-700)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.hover\:bg-red-500\/20:hover{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/20:hover{background-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-red-900\/30:hover{background-color:#82181a4d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-900\/30:hover{background-color:color-mix(in oklab, var(--color-red-900) 30%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:#f5f5f5cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--color-secondary) 80%, transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:text-amber-300:hover{color:var(--color-amber-300)}.hover\:text-blue-400:hover{color:var(--color-blue-400)}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-gray-100:hover{color:var(--color-gray-100)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-300:hover{color:var(--color-gray-300)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-green-300:hover{color:var(--color-green-300)}.hover\:text-green-400:hover{color:var(--color-green-400)}.hover\:text-purple-300:hover{color:var(--color-purple-300)}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-white:hover{color:var(--color-white)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:ring-2:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:ring-\[\#0d99ff\]:hover{--tw-ring-color:#0d99ff}}.focus\:border-\[\#0d99ff\]:focus{border-color:#0d99ff}.focus\:border-purple-500:focus{border-color:var(--color-purple-500)}.focus\:bg-\[\#383838\]:focus{background-color:#383838}.focus\:bg-\[\#444444\]:focus{background-color:#444}.focus\:bg-accent:focus{background-color:var(--color-accent)}.focus\:bg-gray-700:focus{background-color:var(--color-gray-700)}.focus\:bg-white\/10:focus{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.focus\:bg-white\/10:focus{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.focus\:text-accent-foreground:focus{color:var(--color-accent-foreground)}.focus\:text-white:focus{color:var(--color-white)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-\[\#0d99ff\]:focus{--tw-ring-color:#0d99ff}.focus\:ring-purple-500:focus{--tw-ring-color:var(--color-purple-500)}.focus\:ring-ring:focus{--tw-ring-color:var(--color-ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[\#0d99ff\]:focus-visible{--tw-ring-color:#0d99ff}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--color-ring)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-\[\#2c2c2c\]:focus-visible{--tw-ring-offset-color:#2c2c2c}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--color-background)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:text-blue-500:active{color:var(--color-blue-500)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-\[\#2a2a2a\]:disabled{background-color:#2a2a2a}.disabled\:bg-\[\#383838\]:disabled{background-color:#383838}.disabled\:bg-gray-50:disabled{background-color:var(--color-gray-50)}.disabled\:bg-gray-100:disabled{background-color:var(--color-gray-100)}.disabled\:text-gray-400:disabled{color:var(--color-gray-400)}.disabled\:text-gray-500:disabled{color:var(--color-gray-500)}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (hover:hover){.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--color-muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=active\]\:bg-\[\#383838\][data-state=active]{background-color:#383838}.data-\[state\=active\]\:bg-\[\#444444\][data-state=active]{background-color:#444}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--color-background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--color-foreground)}.data-\[state\=active\]\:text-white[data-state=active]{color:var(--color-white)}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:bg-\[\#0d99ff\][data-state=checked]{background-color:#0d99ff}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--color-primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--color-primary-foreground)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--color-accent)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--color-accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--color-muted-foreground)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--color-input)}@media (min-width:40rem){.sm\:mt-0{margin-top:0}.sm\:max-w-\[600px\]{max-width:600px}.sm\:max-w-\[900px\]{max-width:900px}.sm\:flex-row{flex-direction:row}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:text-left{text-align:left}}@media (min-width:48rem){.md\:flex{display:flex}.md\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{appearance:none}.\[\&\>button\:last-child\]\:hidden>button:last-child{display:none}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{rotate:180deg}.gg-editor-skin{--ed-bg:#1e1e1e;--ed-panel:#2c2c2c;--ed-panel-raised:#2c2c2c;--ed-surface:#383838;--ed-surface-hover:#444;--ed-line:#ffffff1a;--ed-line-strong:#ffffff29;--ed-accent:#0d99ff;--ed-accent-strong:#0d99ff;--ed-accent-hover:#0c8ce9}.gg-editor-skin .bg-\[\#1e1e1e\]{background-color:var(--ed-bg)}.gg-editor-skin .bg-\[\#2c2c2c\],.gg-editor-skin .bg-\[\#2a2a2a\]{background-color:var(--ed-panel)}.gg-editor-skin .bg-\[\#383838\]{background-color:var(--ed-surface)}.gg-editor-skin .bg-\[\#444444\],.gg-editor-skin .bg-\[\#4a4a4a\],.gg-editor-skin .bg-\[\#5d5d5d\]{background-color:var(--ed-surface-hover)}.gg-editor-skin .hover\:bg-\[\#444444\]:hover,.gg-editor-skin .hover\:bg-\[\#383838\]:hover{background-color:#ffffff14}.gg-editor-skin .hover\:bg-\[\#4a4a4a\]:hover{background-color:var(--ed-surface-hover)}.gg-editor-skin .border-\[\#444444\],.gg-editor-skin .border-\[\#383838\],.gg-editor-skin .border-\[\#2c2c2c\]{border-color:var(--ed-line)}.gg-editor-skin .border-\[\#4a4a4a\],.gg-editor-skin .border-\[\#5d5d5d\]{border-color:var(--ed-line-strong)}.gg-editor-skin .hover\:border-\[\#4a4a4a\]:hover,.gg-editor-skin .hover\:border-\[\#5d5d5d\]:hover{border-color:#0d99ff99}.gg-editor-skin .w-px.bg-\[\#444444\],.gg-editor-skin .h-px.bg-\[\#444444\]{background-color:var(--ed-line)}.gg-editor-skin .bg-\[\#0d99ff\],.gg-editor-skin .bg-blue-500,.gg-editor-skin .bg-blue-600{background-color:var(--ed-accent-strong)}.gg-editor-skin .hover\:bg-\[\#0c8ce9\]:hover,.gg-editor-skin .hover\:bg-blue-600:hover,.gg-editor-skin .hover\:bg-blue-700:hover{background-color:var(--ed-accent-hover)}.gg-editor-skin .text-\[\#0d99ff\],.gg-editor-skin .text-\[\#4fb8ff\],.gg-editor-skin .text-blue-400,.gg-editor-skin .text-blue-500{color:var(--ed-accent)}.gg-editor-skin .border-\[\#0d99ff\],.gg-editor-skin .border-blue-500{border-color:var(--ed-accent)}.gg-editor-skin .ring-\[\#0d99ff\],.gg-editor-skin .ring-blue-500{--tw-ring-color:var(--ed-accent)}.gg-editor-skin .text-gray-300{color:#ffffffd9}.gg-editor-skin .text-gray-400{color:#ffffffb3}.gg-editor-skin .text-gray-500{color:#ffffff73}.gg-editor-skin .rounded{border-radius:.375rem}.gg-editor-skin .shadow-lg,.gg-editor-skin .shadow-xl,.gg-editor-skin .shadow-2xl{box-shadow:0 5px 17px #00000059,0 2px 7px #00000026}.gg-editor-skin input:focus-visible,.gg-editor-skin button:focus-visible,.gg-editor-skin select:focus-visible{outline:2px solid var(--ed-accent);outline-offset:1px}@layer gg-editor-defaults{.gg-editor-ui{text-align:left;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Meiryo,sans-serif;font-size:12px;line-height:1.5}.gg-editor-ui,.gg-editor-ui :where(*){box-sizing:border-box;border-style:solid;border-width:0}.gg-editor-ui :where(button,input,textarea,select){font:inherit;color:inherit;margin:0}.gg-editor-ui :where(button){cursor:pointer;background:0 0}.gg-editor-ui :where(button:disabled){cursor:default}.gg-editor-ui :where(p,h1,h2,h3,h4,ul,ol){margin:0;padding:0}.gg-editor-ui :where(svg){flex-shrink:0;display:block}.gg-editor-ui :where(input,textarea){min-width:0}}.gg-editor-ui{color-scheme:light;--ed-bg:#f5f5f5;--ed-canvas:#f5f5f5;--ed-panel:#fff;--ed-panel-raised:#fff;--ed-surface:#f5f5f5;--ed-surface-hover:#e6e6e6;--ed-text:#1e1e1e;--ed-muted:#6b6b6b;--ed-line:#e6e6e6;--ed-line-strong:#b3b3b3;--ed-accent:#0d99ff;--ed-accent-strong:#0d99ff;--ed-accent-hover:#0c8ce9;--ed-accent-soft:#e5f4ff;--ed-success:#14ae5c;--ed-warning:#8f5a00;--ed-danger:#dc3412;--ed-frame-edge:#00000014;--ed-shadow:0 5px 17px #0003, 0 2px 7px #00000026;--ed-radius:6px;--ed-focus:0 0 0 2px var(--ed-panel), 0 0 0 4px var(--ed-accent);--color-background:var(--ed-panel);--color-foreground:var(--ed-text);--color-card:var(--ed-panel);--color-card-foreground:var(--ed-text);--color-popover:var(--ed-panel-raised);--color-popover-foreground:var(--ed-text);--color-primary:var(--ed-accent-strong);--color-primary-foreground:#fff;--color-secondary:var(--ed-surface);--color-secondary-foreground:var(--ed-text);--color-muted:var(--ed-surface);--color-muted-foreground:var(--ed-muted);--color-accent:var(--ed-surface-hover);--color-accent-foreground:var(--ed-text);--color-border:var(--ed-line);--color-input:var(--ed-line-strong);--color-ring:var(--ed-accent);--color-destructive:var(--ed-danger);color:var(--ed-text);accent-color:var(--ed-accent-strong);scrollbar-color:var(--ed-line-strong) transparent}.gg-editor-ui[data-editor-theme=dark]{color-scheme:dark;--ed-bg:#1e1e1e;--ed-canvas:#1e1e1e;--ed-panel:#2c2c2c;--ed-panel-raised:#333;--ed-surface:#383838;--ed-surface-hover:#444;--ed-text:#fff;--ed-muted:#b3b3b3;--ed-line:#444;--ed-line-strong:#5c5c5c;--ed-accent:#4fb8ff;--ed-accent-strong:#0d99ff;--ed-accent-hover:#0c8ce9;--ed-accent-soft:#244761;--ed-success:#85e0a3;--ed-warning:#ffcd29;--ed-danger:#fca397;--ed-frame-edge:#ffffff1f;--ed-shadow:0 5px 17px #00000073, 0 2px 7px #0000004d}.gg-editor-ui :is(.text-white,.text-gray-100,.text-gray-200,.text-gray-300):not([data-editor-preview] *){color:var(--ed-text)}.gg-editor-ui :is(.text-gray-400,.text-gray-500,.text-gray-600):not([data-editor-preview] *){color:var(--ed-muted)}.gg-editor-ui :is(.hover\:text-white:hover,.hover\:text-gray-200:hover):not([data-editor-preview] *){color:var(--ed-text)}.gg-editor-ui :is(.hover\:bg-\[\#444444\]:hover,.hover\:bg-\[\#383838\]:hover,.hover\:bg-white\/10:hover):not([data-editor-preview] *){background-color:var(--ed-surface-hover)}.gg-editor-ui :is(.text-sky-400,.text-\[\#7cc4ff\]):not([data-editor-preview] *){color:var(--ed-accent)}.gg-editor-ui :is(.text-red-400,.text-red-500):not([data-editor-preview] *){color:var(--ed-danger)}.gg-editor-ui :is(.bg-blue-500,.bg-blue-600,.bg-\[\#0d99ff\],.bg-green-600,.bg-purple-600,.bg-red-500,.bg-black\/90).text-white,.gg-editor-ui :is(.bg-blue-500,.bg-blue-600,.bg-\[\#0d99ff\],.bg-green-600,.bg-purple-600,.bg-red-500,.bg-black\/90) .text-white:not([data-editor-preview] *){color:#fff}.gg-editor-ui :is(.bg-\[\#0d99ff\]\/20,.bg-\[\#0d99ff\]\/15,.bg-\[\#0d99ff\]\/30):not([data-editor-preview] *){background-color:var(--ed-accent-soft)}.gg-editor-ui :is(.bg-white\/15,.bg-white\/10):not([data-editor-preview] *){background-color:var(--ed-line)}.gg-editor-ui :is(.shadow-lg,.shadow-xl,.shadow-2xl):not([data-editor-preview] *){box-shadow:var(--ed-shadow)}.gg-editor-ui :is([class*="text-[6px]"],[class*="text-[7px]"],[class*="text-[8px]"],[class*="text-[9px]"],[class*="text-[9.5px]"],[class*="text-[10px]"],[class*="text-[10.5px]"],[class*="text-[11px]"],[class*="text-[11.5px]"]):not([data-editor-preview] *){font-size:12px}.gg-editor-ui :is(button,input,select,textarea,a,[tabindex]):focus-visible{outline:2px solid var(--ed-accent);outline-offset:2px;box-shadow:none}.gg-editor-ui :is(input,textarea):not([data-editor-preview] *)::placeholder{color:var(--ed-muted);opacity:1}.gg-editor-ui .ed-icon-button,.gg-editor-ui .ed-button{border:1px solid var(--ed-line);border-radius:var(--ed-radius);height:36px;color:var(--ed-text);background:var(--ed-panel);white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.gg-editor-ui .ed-icon-button{background:0 0;border-color:#0000;width:32px;height:32px;padding:0}.gg-editor-ui :is(.ed-button,.ed-icon-button):hover:not([data-editor-preview] *){background:var(--ed-surface-hover)}.gg-editor-ui :is(.ed-button,.ed-icon-button)[aria-pressed=true]:not([data-editor-preview] *){background:var(--ed-accent-soft);color:var(--ed-accent);border-color:var(--ed-accent)}.gg-editor-ui .ed-button-primary{background:var(--ed-accent-strong);color:#fff;border-color:#0000}.gg-editor-ui .ed-button-primary:hover{background:var(--ed-accent-hover)}.gg-editor-ui button:disabled{opacity:.45}.gg-editor-ui [data-editor-topbar]{gap:12px;height:56px;padding-inline:16px}.gg-editor-ui [data-topbar=title]{font-size:14px}.gg-editor-ui .ed-save-status{white-space:nowrap;color:var(--ed-muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.gg-editor-ui .ed-save-status[data-save-status=dirty]{color:var(--ed-warning)}.gg-editor-ui .ed-save-status[data-save-status=error]{color:var(--ed-danger)}.gg-editor-ui .ed-save-status[data-save-status=saved] svg{color:var(--ed-success)}.gg-editor-ui .ed-collab-presence{align-items:center;gap:10px;display:inline-flex}.gg-editor-ui .ed-collab-avatars{align-items:center;padding-left:4px;display:inline-flex}.gg-editor-ui .ed-collab-avatar{border:2px solid var(--ed-panel);color:#fff;cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;margin-left:-4px;padding:0;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.gg-editor-ui .ed-collab-avatar:hover{transform:translateY(-1px)}.gg-editor-ui .ed-collab-avatar-self{cursor:default;box-shadow:0 0 0 1px var(--ed-line-strong);margin-left:4px}.gg-editor-ui .ed-collab-avatar-self:hover,.gg-editor-ui .ed-collab-avatar-more:hover{transform:none}.gg-editor-ui .ed-collab-avatar-more{background:var(--ed-panel-raised);color:var(--ed-text);cursor:default}.gg-editor-ui .ed-collab-bridge{white-space:nowrap;color:var(--ed-muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.gg-editor-ui .ed-collab-bridge-warn{color:var(--ed-warning)}.gg-editor-ui .ed-collab-bridge-alert{color:#fff;background:var(--ed-danger);border-radius:var(--ed-radius);padding:3px 8px;font-weight:600}.gg-editor-ui .ed-save-status[data-collab-status=synced] svg{color:var(--ed-success)}.gg-editor-ui .ed-save-status[data-collab-status=offline]{color:var(--ed-danger)}.gg-editor-ui .ed-save-status[data-collab-status=error]{color:var(--ed-danger);font-weight:600}.gg-editor-ui .ed-save-status[data-collab-pending]{color:var(--ed-warning)}.gg-editor-ui .ed-collab-dots{flex-shrink:0;align-items:center;gap:2px;display:inline-flex}.gg-editor-ui .ed-collab-dot{width:7px;height:7px;box-shadow:0 0 0 1px var(--ed-panel);border-radius:50%}.gg-editor-ui .ed-panel-heading{border-bottom:1px solid var(--ed-line);flex-shrink:0;align-items:center;gap:8px;height:48px;padding:0 16px;font-size:14px;font-weight:600;display:flex}.gg-editor-ui .ed-toolbar{border:1px solid var(--ed-line);background:var(--ed-panel-raised);color:var(--ed-text);box-shadow:var(--ed-shadow);border-radius:12px;padding:8px}.gg-editor-ui .ed-footer{border-top:1px solid var(--ed-line);background:var(--ed-panel);height:36px;color:var(--ed-muted);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:0 16px;font-size:12px;display:flex}.gg-editor-ui .ed-footer-hint{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gg-editor-ui .ed-empty{color:var(--ed-muted);flex-direction:column;align-items:flex-start;gap:12px;padding:24px;font-size:13px;line-height:1.7;display:flex}.gg-editor-ui .ed-empty strong{color:var(--ed-text);font-size:14px}@media (prefers-reduced-motion:reduce){.gg-editor-ui *,.gg-editor-ui :before,.gg-editor-ui :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.gg-editor-ui .ed-panel-tabs{border-bottom:1px solid var(--ed-line);background:var(--ed-panel);border-radius:0;flex-shrink:0;gap:4px;width:100%;height:48px;padding:8px;display:flex}.gg-editor-ui .ed-panel-tabs>button{flex:1;height:32px;font-size:12px}.gg-editor-ui .ed-panel-tabs>[data-state=active]{background:var(--ed-accent-soft);color:var(--ed-accent);box-shadow:none}.gg-editor-ui .ed-panel-tab-content{flex:1;min-height:0;margin:0;display:flex}.gg-editor-ui .ed-panel-tab-content[data-state=inactive]{display:none}.gg-editor-ui .ed-resize-handle{background-color:#0000;width:6px}.gg-editor-ui .ed-resize-handle:hover,.gg-editor-ui .ed-resize-handle:focus-visible{background-color:var(--ed-accent)}.gg-editor-ui .ed-layer-selected{box-shadow:inset 3px 0 var(--ed-accent)}.gg-editor-ui .ed-layer-selected :is(.text-white,.text-blue-100,.text-blue-200){color:var(--ed-accent)}.gg-editor-ui [data-property-panel] .ed-panel-heading{z-index:1;position:sticky;top:0}.gg-editor-ui [data-property-panel] .p-3{padding:0}.gg-editor-ui [data-property-panel] .p-3>*{padding-left:16px;padding-right:16px}.gg-editor-ui [data-property-panel] .p-3>.mb-3{min-height:44px;margin-bottom:0}.gg-editor-ui [data-property-panel] .p-3>[data-state]{border-top:1px solid var(--ed-line)}.gg-editor-ui [data-property-panel] .p-3>.ed-part-card{margin:0 16px 12px;padding:10px 12px}.gg-editor-ui [data-property-panel] [data-state]>button[data-state]{min-height:40px;color:var(--ed-text);border-top:0;border-radius:0;padding:0;font-size:13px;font-weight:600}.gg-editor-ui [data-property-panel] [data-state]>button[data-state]:hover{color:var(--ed-text);background:0 0}.gg-editor-ui [data-property-panel] [data-state]>button[data-state]>span:first-child>svg,.gg-editor-ui [data-property-panel] [data-state]>button[data-state]>svg:last-child{width:14px;height:14px;color:var(--ed-muted)}.gg-editor-ui [data-property-panel] [data-state]>div[data-state=open]{padding-bottom:16px}.gg-editor-ui [data-property-panel] label,.gg-editor-ui [data-property-panel] .ed-prop-label{color:var(--ed-muted);font-size:11px;font-weight:500;line-height:1.4}.gg-editor-ui [data-property-panel] :is(input:not([type=color]):not([type=checkbox]):not([type=range]),select,[role=combobox]):not(.group *){background:var(--ed-surface);height:32px;min-height:32px;color:var(--ed-text);box-shadow:none;border-radius:6px;padding-left:8px;padding-right:8px;font-size:12px;border:1px solid #0000!important}.gg-editor-ui [data-property-panel] :is(input:not([type=color]):not([type=checkbox]):not([type=range]),select,[role=combobox]):not(.group *):hover{border-color:var(--ed-line-strong)!important}.gg-editor-ui [data-property-panel] :is(input:not([type=color]):not([type=checkbox]):not([type=range]),select,[role=combobox]):not(.group *):focus-visible,.gg-editor-ui [data-property-panel] :is(input:not([type=color]):not([type=checkbox]):not([type=range]),select,[role=combobox]):not(.group *):focus-within{box-shadow:none;outline:none;border-color:var(--ed-accent)!important}.gg-editor-ui [data-property-panel] .group.h-5{background:var(--ed-surface);border-color:#0000;border-radius:6px;min-width:40px;height:28px}.gg-editor-ui [data-property-panel] .group.h-5:hover{border-color:var(--ed-line-strong)}.gg-editor-ui [data-property-panel] .group.h-5:focus-within{border-color:var(--ed-accent)}.gg-editor-ui [data-property-panel] .group.h-5 input{color:var(--ed-text);font-size:12px}.gg-editor-ui [data-property-panel] .group.h-5 input:focus{box-shadow:none}.gg-editor-ui [data-property-panel] button.h-7.w-7,.gg-editor-ui [data-property-panel] button.h-7{border-radius:6px;min-width:32px;height:32px}.gg-editor-ui [data-property-panel] button.h-7.w-7 svg{width:14px;height:14px}.gg-editor-ui [data-property-panel] button[data-state]:not([role=checkbox]):not([role=switch]){min-height:32px}.gg-editor-ui [data-property-panel] button[role=checkbox]{border:1px solid var(--ed-line-strong);background:var(--ed-surface);border-radius:4px;width:16px;height:16px;min-height:16px}.gg-editor-ui [data-property-panel] button[role=checkbox][data-state=checked]{background:var(--ed-accent-strong);border-color:var(--ed-accent-strong);color:#fff}.gg-editor-ui [data-property-panel] input[type=color]{border:1px solid var(--ed-line-strong);border-radius:6px;width:28px;height:28px;padding:0}.gg-editor-ui [data-property-panel] .grid.grid-cols-2{gap:8px}.gg-editor-ui [data-property-panel] .space-y-2>*+*,.gg-editor-ui [data-property-panel] .space-y-3>*+*{margin-top:10px}.gg-editor-ui[data-editor-surface=popup],.gg-editor-ui[data-editor-surface=dialog],.gg-editor-ui[data-editor-surface=tooltip]{color:var(--ed-text);background-color:var(--ed-panel-raised);border-color:var(--ed-line);box-shadow:var(--ed-shadow);z-index:10000;border-radius:12px}.gg-editor-ui[data-editor-surface=popup]{max-width:calc(100vw - 24px)}.gg-editor-ui[data-editor-surface=dialog]{max-width:min(var(--container-7xl,80rem), calc(100vw - 48px));border-radius:16px;max-height:calc(100dvh - 48px);overflow-y:auto}.gg-editor-ui[data-editor-surface=dialog].max-w-lg{max-width:min(32rem,100vw - 48px)}.gg-editor-ui[data-editor-surface=overlay]{z-index:9999;background:#10182766}.gg-editor-ui[data-editor-surface=tooltip]{border:1px solid var(--ed-line);font-size:12px}.gg-editor-ui [role=menuitem],.gg-editor-ui [role=menuitemcheckbox],.gg-editor-ui [role=menuitemradio]{min-height:32px;font-size:13px}.gg-editor-ui :is([role=menuitem],[role=menuitemcheckbox],[role=menuitemradio],[role=option])[data-highlighted]:not([data-editor-preview] *){background-color:var(--ed-accent-soft);color:var(--ed-accent)}.gg-editor-ui[data-editor-surface=dialog]>button:last-child{justify-content:center;align-items:center;min-width:28px;min-height:28px;display:flex}.gg-editor-ui .ed-comments-panel{background:var(--ed-surface)}.gg-editor-ui .ed-comment-thread p{overflow-wrap:anywhere}.gg-editor-ui .ed-comment-thread button{min-height:28px}.gg-editor-ui .ed-comments-panel textarea{border-radius:8px;min-height:88px;padding:12px;line-height:1.6}.gg-editor-ui .ed-comment-thread>div:first-child>button{min-width:28px}.gg-editor-ui .ed-ribbon [role=tab]{height:40px;padding-inline:12px;font-size:13px}.gg-editor-ui .ed-ribbon [role=tabpanel]{gap:4px;padding-inline:16px}.gg-editor-ui .ed-ribbon [role=tabpanel] button,.gg-editor-ui .ed-ribbon [role=tabpanel] input:not([type=color]),.gg-editor-ui .ed-ribbon [role=tabpanel] select{min-height:28px}.gg-editor-ui .ed-ribbon [role=tab][data-state=active]{color:var(--ed-accent)}.gg-editor-ui :is(input:not([type=color]),textarea,select):not([data-editor-preview] *){border-color:var(--ed-line-strong)!important}.gg-editor-ui .ed-frame-shell{background:#fff}.gg-editor-ui .ed-frame-label-row{align-items:center;gap:2px;max-width:100%;height:20px;display:inline-flex;position:absolute;left:0}.gg-editor-ui .ed-frame-label{white-space:nowrap;min-width:0;height:20px;color:var(--ed-muted);pointer-events:auto;cursor:pointer;text-overflow:ellipsis;border-radius:4px;align-items:center;gap:6px;padding:0 6px 0 4px;font-size:11px;line-height:1;display:inline-flex;overflow:hidden}.gg-editor-ui .ed-frame-label-link{width:18px;height:18px;color:var(--ed-muted);pointer-events:auto;opacity:0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .12s;display:inline-flex}.gg-editor-ui .ed-frame-label-link svg{width:12px;height:12px}.gg-editor-ui .ed-frame-label-row:hover .ed-frame-label-link,.gg-editor-ui .ed-frame-label-active+.ed-frame-label-link,.gg-editor-ui .ed-frame-label-link:focus-visible{opacity:1}.gg-editor-ui .ed-frame-label-link:hover{color:var(--ed-text);background:var(--ed-panel);box-shadow:0 0 0 1px var(--ed-line)}.gg-editor-ui .ed-part-card{border:1px solid #7b61ff}@supports (color:color-mix(in lab, red, red)){.gg-editor-ui .ed-part-card{border:1px solid color-mix(in srgb, #7b61ff 45%, var(--ed-line))}}.gg-editor-ui .ed-part-card{background:#7b61ff}@supports (color:color-mix(in lab, red, red)){.gg-editor-ui .ed-part-card{background:color-mix(in srgb, #7b61ff 8%, var(--ed-panel))}}.gg-editor-ui .ed-part-card{color:var(--ed-text)}.gg-editor-ui .ed-part-accent{color:#7b61ff}.gg-editor-ui[data-editor-theme=dark] .ed-part-accent{color:#a99cff}.gg-editor-ui .ed-part-note{color:var(--ed-muted)}.gg-editor-ui .ed-frame-label:hover{color:var(--ed-text);background:var(--ed-panel);box-shadow:0 0 0 1px var(--ed-line)}.gg-editor-ui .ed-frame-label-active,.gg-editor-ui .ed-frame-label-active:hover{color:var(--ed-accent);font-weight:600}.gg-editor-ui .ed-frame-label-index{font-variant-numeric:tabular-nums;opacity:.7}.gg-editor-ui .ed-frame-label-title{text-overflow:ellipsis;overflow:hidden}.gg-editor-ui .ed-frame-label-dirty{background:var(--ed-warning);border-radius:50%;flex-shrink:0;width:6px;height:6px}.gg-editor-ui .ed-frame-label-loading{border:1.5px solid var(--ed-line-strong);border-top-color:var(--ed-accent);border-radius:50%;flex-shrink:0;width:9px;height:9px;animation:.8s linear infinite ed-spin}@keyframes ed-spin{to{transform:rotate(360deg)}}.gg-editor-ui .ed-frame-ring{pointer-events:none;border-radius:1px;position:absolute;top:0;left:0}.gg-editor-ui .ed-canvas-marquee{z-index:20;pointer-events:none;border:1px solid var(--ed-accent);background:var(--ed-accent);position:absolute}@supports (color:color-mix(in lab, red, red)){.gg-editor-ui .ed-canvas-marquee{background:color-mix(in srgb, var(--ed-accent) 12%, transparent)}}.gg-editor-ui .ed-frame-ring-active{box-shadow:0 0 0 1.5px var(--ed-accent-strong)}.gg-editor-ui .ed-frame-ring-hover{box-shadow:0 0 0 1px var(--ed-accent-strong);opacity:.55}.gg-editor-ui [data-canvas-preview-image="1"] [data-page-preview][data-image-ready="1"] iframe{visibility:hidden}.gg-editor-ui .ed-frame-skeleton{background:#fff;flex-direction:column;gap:3%;padding:6% 8%;display:flex;position:absolute;inset:0}.gg-editor-ui .ed-frame-skeleton-bar{background:#eceff3;border-radius:999px;height:2.5%;min-height:8px;display:block}.gg-editor-ui .ed-frame-skeleton-note{color:#9aa3b2;font-size:40px}.gg-editor-ui [data-canvas-rulers] canvas{display:block}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@growgroup/visual-editor",
3
- "version": "0.7.2",
3
+ "version": "0.8.0",
4
4
  "description": "HTMLをブラウザ上で直接編集するビジュアルエディタ。スライド(固定サイズ)とWebページ(可変高さ)の両方に使え、保存先はアダプタで差し替えられます。",
5
5
  "keywords": [
6
6
  "visual-editor",
@@ -273,7 +273,7 @@ export function EditorCanvas() {
273
273
  marqueeGeomRef,
274
274
  });
275
275
 
276
- // ⌘ / Ctrl + クリックでリンク先へ移る(選択の mousedown には手を出さず、クリックが確定してから移る)
276
+ // Alt(⌥)+ クリックでリンク先へ移る(選択の mousedown には手を出さず、クリックが確定してから移る)
277
277
  const { setupLinkNavigation } = useLinkNavigation();
278
278
 
279
279
  // マーキー選択
@@ -541,7 +541,7 @@ export function EditorCanvas() {
541
541
 
542
542
  // 選択リスナー(mousedown, dblclick)
543
543
  cleanupFunctions.push(setupSelectionListeners(iframeDoc));
544
- // ⌘ / Ctrl + クリックでリンク先へ(ページ・アンカー・外部サイト)
544
+ // Alt(⌥)+ クリックでリンク先へ(ページ・アンカー・外部サイト)
545
545
  cleanupFunctions.push(setupLinkNavigation(iframeDoc));
546
546
  // テキスト編集中の範囲選択に、マーカー・太字のツールバーを出す
547
547
  cleanupFunctions.push(setupInlineFormatToolbar(iframeDoc));
@@ -7,7 +7,9 @@ import { Popover, PopoverContent, PopoverTrigger } from '../../components/ui/pop
7
7
 
8
8
  export function EditorFooter() {
9
9
  const { activeTool, editorMode, selectedElement, selectedElementIds } = useEditorContext();
10
- const cmd = typeof navigator !== 'undefined' && /Mac|iPhone|iPad/.test(navigator.platform) ? '⌘' : 'Ctrl+';
10
+ const isMac = typeof navigator !== 'undefined' && /Mac|iPhone|iPad/.test(navigator.platform);
11
+ const cmd = isMac ? '⌘' : 'Ctrl+';
12
+ const alt = isMac ? '⌥' : 'Alt+';
11
13
  const hint = activeTool === 'move' ? 'ドラッグで紙面を移動 · V で選択に戻る'
12
14
  : activeTool === 'scale' ? 'ドラッグで拡大・縮小 · V で選択に戻る'
13
15
  : activeTool === 'comment' ? '紙面をドラッグして範囲を指定 · クリックで点 · Esc で選択に戻る'
@@ -21,6 +23,7 @@ export function EditorFooter() {
21
23
  ['保存', `${cmd}S`], ['複製', `${cmd}D`],
22
24
  ['全体表示 / 100% / 選択範囲', `${cmd}0 / ${cmd}1 / ${cmd}2`],
23
25
  ['複数選択', 'Shift+クリック'], ['最下層の要素を選択', `${cmd}クリック`],
26
+ ['リンク先へ移動', `${alt}クリック`],
24
27
  ['選択・入力を終了', 'Esc'],
25
28
  ];
26
29
  return (
@@ -69,6 +69,7 @@ import { buildFilterString, buildTransformString } from "../utils/style-utils";
69
69
  import { useEditorContext } from "../EditorContext";
70
70
  import { useElementActions, useEditorColors, useInlineTextSelection } from "../hooks";
71
71
  import { MIXED } from "../utils/inline-text-style";
72
+ import { borderWidthStyles } from "../utils/border-sides";
72
73
  import { FONT_WEIGHTS } from "../constants";
73
74
  import type { PanelSections, SelectedElementInfo } from "../types";
74
75
  import {
@@ -2571,7 +2572,8 @@ export const EditorPropertyPanel = memo(function EditorPropertyPanel() {
2571
2572
  const needsStyleChange = selectedElement.borderStyle === "none" &&
2572
2573
  !val.startsWith('var(') && parseFloat(val) > 0;
2573
2574
  updateElementStyle({
2574
- borderWidth: val,
2575
+ // 片側だけの線(border-l-2 など)は、その辺の線幅だけを変える(四辺の枠にしない)
2576
+ ...borderWidthStyles(val, selectedElement.borderSides),
2575
2577
  ...(needsStyleChange ? { borderStyle: "solid" } : {}),
2576
2578
  });
2577
2579
  }}
@@ -2613,12 +2615,10 @@ export const EditorPropertyPanel = memo(function EditorPropertyPanel() {
2613
2615
  )}
2614
2616
  onChange={(config) => {
2615
2617
  if (config.type === "solid" && config.color) {
2618
+ // スタイルは線が無いときだけ実線にする(今のスタイルを書き直さない)
2616
2619
  updateElementStyle({
2617
2620
  borderColor: config.color,
2618
- borderStyle:
2619
- selectedElement.borderStyle === "none"
2620
- ? "solid"
2621
- : selectedElement.borderStyle,
2621
+ ...(selectedElement.borderStyle === "none" ? { borderStyle: "solid" } : {}),
2622
2622
  });
2623
2623
  } else if (config.type === "none") {
2624
2624
  updateElementStyle({ borderStyle: "none" });
@@ -2627,10 +2627,7 @@ export const EditorPropertyPanel = memo(function EditorPropertyPanel() {
2627
2627
  onVariableSelect={(varRef) => {
2628
2628
  updateElementStyle({
2629
2629
  borderColor: varRef,
2630
- borderStyle:
2631
- selectedElement.borderStyle === "none"
2632
- ? "solid"
2633
- : selectedElement.borderStyle,
2630
+ ...(selectedElement.borderStyle === "none" ? { borderStyle: "solid" } : {}),
2634
2631
  });
2635
2632
  }}
2636
2633
  presetColors={colorPresets}
@@ -46,6 +46,7 @@ import { moveSlide, deleteSlide, duplicateSlide, updateSlideMeta, insertSlide }
46
46
  import { startCleanup } from '../../../components/SaveNote';
47
47
  import { unresolvedCount } from './PptComments';
48
48
  import { enterCropMode, type CropSession } from '../../utils/crop-mode';
49
+ import { borderWidthStyles, summarizeBorder } from '../../utils/border-sides';
49
50
  import { useGoogleFonts } from '../../hooks/useGoogleFonts';
50
51
  import { DeckSlideRender } from '../../../components/DeckSlideRender';
51
52
  const PptDesignProposals = lazy(() => import('./PptDesignProposals').then((m) => ({ default: m.PptDesignProposals })));
@@ -270,7 +271,11 @@ function Dropdown({
270
271
  const PAINT_PROPS = new Set([
271
272
  'backgroundColor', 'background', 'backgroundImage', 'clipPath', 'borderRadius',
272
273
  'border', 'borderColor', 'borderWidth', 'borderStyle',
274
+ // 辺ごとの線も中身の図形へ(片側だけの線の読み書き。上の辺だけだと、枠の右・下・左を枠の外側から読んでいた)
273
275
  'borderTopWidth', 'borderTopStyle', 'borderTopColor',
276
+ 'borderRightWidth', 'borderRightStyle', 'borderRightColor',
277
+ 'borderBottomWidth', 'borderBottomStyle', 'borderBottomColor',
278
+ 'borderLeftWidth', 'borderLeftStyle', 'borderLeftColor',
274
279
  ]);
275
280
 
276
281
  /** リボンが読む computed style の名前 → 選んだ文字の見た目(InlineTextSummary)の項目 */
@@ -1264,13 +1269,22 @@ export function PptRibbon({
1264
1269
 
1265
1270
  /** 枠線の色/太さを変えるとき、枠線が無ければ実線を立てる(PowerPointの挙動) */
1266
1271
  const ensureBorder = useCallback((styles: Record<string, string>) => {
1267
- const w = parseFloat(readComputed('border-top-width'));
1268
- const st = readComputed('border-top-style');
1269
- const out = { ...styles };
1270
- if (!('borderWidth' in out) && (!Number.isFinite(w) || w === 0)) out.borderWidth = '2px';
1271
- if (!('borderStyle' in out) && (st === 'none' || st === '')) out.borderStyle = 'solid';
1272
+ // 片側だけの線(border-l-2 など)は上の辺が 0 なので、上だけ見ると「線が無い」と判定して
1273
+ // 四辺に 2px を足していた。辺ごとに見て、線が見えていれば足さず、太さはその辺だけに当てる
1274
+ const first = targets()[0];
1275
+ const border = summarizeBorder({ getPropertyValue: readComputed }, first ? paintTarget(first) : null);
1276
+ let out: Record<string, string> = { ...styles };
1277
+ if ('borderWidth' in out && border.sides) {
1278
+ const { borderWidth, ...rest } = out;
1279
+ out = { ...rest, ...borderWidthStyles(borderWidth, border.sides) };
1280
+ }
1281
+ // 線が無ければ 2px を立てる(片側だけの線を 0 にしていたら、その辺に)
1282
+ if (!('borderWidth' in styles) && (!Number.isFinite(border.width) || border.width === 0)) {
1283
+ Object.assign(out, borderWidthStyles('2px', border.sides));
1284
+ }
1285
+ if (!('borderStyle' in out) && (border.style === 'none' || border.style === '')) out.borderStyle = 'solid';
1272
1286
  apply(out);
1273
- }, [readComputed, apply]);
1287
+ }, [readComputed, apply, targets]);
1274
1288
 
1275
1289
  const borderRadiusPx = useMemo(() => {
1276
1290
  const v = parseFloat(readComputed('border-radius'));
@@ -16,6 +16,7 @@ import {
16
16
  } from '../../../components/ui/collapsible';
17
17
  import { Circle, ChevronRight } from 'lucide-react';
18
18
  import { rgbToHex } from '../../utils/style-utils';
19
+ import { borderWidthStyles } from '../../utils/border-sides';
19
20
  import { BORDER_STYLES } from '../../constants';
20
21
  import type { SelectedElementInfo } from '../../types';
21
22
 
@@ -52,7 +53,8 @@ export function BorderSection({
52
53
  value={Math.round(selectedElement.borderWidth)}
53
54
  onChange={(e) =>
54
55
  onStyleChange({
55
- borderWidth: `${e.target.value}px`,
56
+ // 片側だけの線は、その辺の線幅だけを変える
57
+ ...borderWidthStyles(`${e.target.value}px`, selectedElement.borderSides),
56
58
  borderStyle:
57
59
  selectedElement.borderStyle === 'none'
58
60
  ? 'solid'
@@ -1,5 +1,5 @@
1
1
  /**
2
- * ⌘ / Ctrl + クリックでリンク先へ移る(utils/link-navigation.ts)の、エディタ側の行き先。
2
+ * Alt(⌥)+ クリックでリンク先へ移る(utils/link-navigation.ts)の、エディタ側の行き先。
3
3
  *
4
4
  * ページの切替は、ページ一覧で切り替えるときと同じ経路を通す
5
5
  * (未保存の変更は FrontendVisualEditor.handleContentChange が保存してから移る):
@@ -122,7 +122,7 @@ export function useLinkNavigation() {
122
122
  [revealAnchor],
123
123
  );
124
124
 
125
- /** 紙面に ⌘ / Ctrl + クリックの移動を付ける。戻り値は後始末 */
125
+ /** 紙面に Alt(⌥)+ クリックの移動を付ける。戻り値は後始末 */
126
126
  const setupLinkNavigation = useCallback(
127
127
  (iframeDoc: Document) => {
128
128
  const detach = attachLinkNavigation(iframeDoc, {
@@ -3,6 +3,8 @@
3
3
  * (スライド、ページ、コンポーネント等で共用)
4
4
  */
5
5
 
6
+ import type { BorderSide } from './utils/border-sides';
7
+
6
8
  // 再エクスポート(既存の型)
7
9
  export type {
8
10
  EditorTool,
@@ -184,7 +186,9 @@ export interface SelectedElementInfo {
184
186
  rawFontSize?: string; // font-size
185
187
  rawLineHeight?: string; // line-height
186
188
  rawLetterSpacing?: string; // letter-spacing
187
- rawBorderWidth?: string; // border-width
189
+ rawBorderWidth?: string; // border-width(片側だけの線ならその辺の値)
190
+ /** 線が見えている辺が 1〜3 辺のときだけ、その辺(utils/border-sides.ts)。線幅の変更をその辺だけに当てる */
191
+ borderSides?: BorderSide[];
188
192
  rawGap?: string; // gap (flexbox/grid)
189
193
  rawLeft?: string; // left (position)
190
194
  rawTop?: string; // top (position)
@@ -0,0 +1,112 @@
1
+ /**
2
+ * 片側だけの線(`border-l-2` など)を、右パネル・リボンの「線」の欄で扱う。
3
+ *
4
+ * 欄は 1 本の線幅・スタイル・色しか持たない。以前は computed の `border-width` を
5
+ * parseFloat していたので、左だけ 2px の線は「0px」、スタイルは「none none none solid」と読めず、
6
+ * 線幅を変えると `border-[3px]` で四辺の枠になっていた。
7
+ * 線が見えている辺が 1〜3 辺なら、その辺の値を出し、線幅の変更もその辺だけに当てる。
8
+ */
9
+
10
+ import { isBorderWidthClass, isZeroBorderWidthClass, type SideLetter } from './tailwind-utils';
11
+
12
+ export type BorderSide = 'top' | 'right' | 'bottom' | 'left';
13
+
14
+ export const BORDER_SIDES: readonly BorderSide[] = ['top', 'right', 'bottom', 'left'];
15
+
16
+ const SIDE_WIDTH_PROPERTY: Record<BorderSide, string> = {
17
+ top: 'borderTopWidth',
18
+ right: 'borderRightWidth',
19
+ bottom: 'borderBottomWidth',
20
+ left: 'borderLeftWidth',
21
+ };
22
+
23
+ export interface BorderSummary {
24
+ width: number;
25
+ style: string;
26
+ color: string;
27
+ /**
28
+ * 線が見えている辺が 1〜3 辺のときだけ、その辺(上・右・下・左の順)。四辺とも・線なしは undefined。
29
+ * 線が見えていなくても、要素自身が 1〜3 辺だけに線幅を指定していればその辺(declaredBorderSides)
30
+ */
31
+ sides?: BorderSide[];
32
+ }
33
+
34
+ /**
35
+ * 線が見えていないとき(片側だけの線を線幅 0 にした・スタイルを「なし」にした)の辺を、要素自身の指定から読む。
36
+ * computed では辺が分からず、次に線幅を入れると四辺の枠になっていた(実エディタで確認)。
37
+ * インラインの辺ごとの線幅(border-left-width)と、辺の太さのクラス(border-l-0 / border-x-2)を見る。
38
+ * 四辺まとめての指定(インラインの border-width・border / border-2 クラス)があれば四辺とみなす
39
+ */
40
+ export function declaredBorderSides(element: Element): BorderSide[] | undefined {
41
+ const inline = (element as HTMLElement).style;
42
+ const inlineSides = inline ? BORDER_SIDES.filter((side) => inline.getPropertyValue(`border-${side}-width`) !== '') : [];
43
+ if (inlineSides.length === BORDER_SIDES.length) return undefined;
44
+ if (inline?.getPropertyValue('border-width')) return undefined;
45
+ const classes = (element.getAttribute('class') || '').split(/\s+/).filter(Boolean);
46
+ // 四辺まとめての太さ(border / border-2。border-0 は除く)があれば、辺ごとの指定があっても四辺とみなす
47
+ if (classes.some((cls) => isBorderWidthClass(cls, '') && !isZeroBorderWidthClass(cls))) return undefined;
48
+ // 太さ 0 のクラス(border-b-0 など)は「線を消す指定」なので、辺を名乗るものとして数えない。
49
+ // 欄で線幅を 0 にしたときは、同時に書くインラインの辺ごとの線幅(上)で辺が分かる
50
+ const has = (letter: SideLetter) =>
51
+ classes.some((cls) => isBorderWidthClass(cls, letter) && !isZeroBorderWidthClass(cls));
52
+ const classSides: BorderSide[] = [];
53
+ // s / e は書字方向の始め・終わり、bs / be はブロック方向。LTR の横書きを既定として当てる
54
+ if (has('t') || has('y') || has('bs')) classSides.push('top');
55
+ if (has('r') || has('x') || has('e')) classSides.push('right');
56
+ if (has('b') || has('y') || has('be')) classSides.push('bottom');
57
+ if (has('l') || has('x') || has('s')) classSides.push('left');
58
+ // その辺を 0 にするクラス(border-x-2 border-l-0 の左)は、辺から外す
59
+ const zero = (letter: SideLetter) =>
60
+ classes.some((cls) => isBorderWidthClass(cls, letter) && isZeroBorderWidthClass(cls));
61
+ const zeroSides = new Set<BorderSide>();
62
+ if (zero('t') || zero('y') || zero('bs')) zeroSides.add('top');
63
+ if (zero('r') || zero('x') || zero('e')) zeroSides.add('right');
64
+ if (zero('b') || zero('y') || zero('be')) zeroSides.add('bottom');
65
+ if (zero('l') || zero('x') || zero('s')) zeroSides.add('left');
66
+ const sides = BORDER_SIDES.filter(
67
+ (side) => inlineSides.includes(side) || (classSides.includes(side) && !zeroSides.has(side)),
68
+ );
69
+ return sides.length > 0 && sides.length < BORDER_SIDES.length ? sides : undefined;
70
+ }
71
+
72
+ /**
73
+ * computed style(`getPropertyValue` を持つもの)から、「線」の欄に出す値。
74
+ * element を渡すと、線が見えていないときに要素自身の指定から辺を読む(declaredBorderSides)
75
+ */
76
+ export function summarizeBorder(
77
+ style: Pick<CSSStyleDeclaration, 'getPropertyValue'>,
78
+ element?: Element | null,
79
+ ): BorderSummary {
80
+ const perSide = BORDER_SIDES.map((side) => ({
81
+ side,
82
+ width: parseFloat(style.getPropertyValue(`border-${side}-width`)) || 0,
83
+ style: style.getPropertyValue(`border-${side}-style`),
84
+ color: style.getPropertyValue(`border-${side}-color`),
85
+ }));
86
+ const shown = perSide.filter((s) => s.width > 0 && s.style !== 'none' && s.style !== 'hidden');
87
+ if (shown.length === 0 || shown.length === BORDER_SIDES.length) {
88
+ // 四辺とも・線なしは今までどおり(省略形の値)
89
+ const sides = shown.length === 0 && element ? declaredBorderSides(element) : undefined;
90
+ return {
91
+ width: parseFloat(style.getPropertyValue('border-width')) || 0,
92
+ style: sides ? style.getPropertyValue(`border-${sides[0]}-style`) : style.getPropertyValue('border-style'),
93
+ color: sides ? style.getPropertyValue(`border-${sides[0]}-color`) : style.getPropertyValue('border-color'),
94
+ ...(sides ? { sides } : {}),
95
+ };
96
+ }
97
+ const first = shown[0];
98
+ return { width: first.width, style: first.style, color: first.color, sides: shown.map((s) => s.side) };
99
+ }
100
+
101
+ /** 線幅の変更。片側だけの線なら、その辺の線幅(borderLeftWidth など)にする */
102
+ export function borderWidthStyles(value: string, sides?: readonly BorderSide[]): Record<string, string> {
103
+ if (!sides || sides.length === 0 || sides.length === BORDER_SIDES.length) return { borderWidth: value };
104
+ const out: Record<string, string> = {};
105
+ for (const side of sides) out[SIDE_WIDTH_PROPERTY[side]] = value;
106
+ return out;
107
+ }
108
+
109
+ /** その辺の線幅の CSS プロパティ名(kebab)。インラインの生値を読むときに使う */
110
+ export function borderSideWidthCss(side: BorderSide): string {
111
+ return `border-${side}-width`;
112
+ }
@@ -676,6 +676,11 @@ export function convertToAbsolutePositioning(iframeDoc: Document): number {
676
676
 
677
677
  // 1. まず全要素の現在の位置・サイズをキャプチャ(インライン要素は除外)
678
678
  const captures: ElementCapture[] = [];
679
+ // 変換しないインライン要素の、変換前の位置(自己検証で使う)。
680
+ // 変換しなかった要素は流れの中に残るので、ブロックの兄弟が絶対配置で流れから抜けると
681
+ // その分だけ上へ詰まる。例: <td><div>見出し</div><span class="mt-[10px] inline-block">ラベル</span></td>
682
+ // で見出しだけが抜け、ラベルが見出しに重なる
683
+ const skippedInline: { element: HTMLElement; rect: DOMRect }[] = [];
679
684
 
680
685
  editableElements.forEach((el) => {
681
686
  const element = el as HTMLElement;
@@ -694,6 +699,7 @@ export function convertToAbsolutePositioning(iframeDoc: Document): number {
694
699
 
695
700
  // インライン要素はスキップ(ただし flex/grid アイテムは除く)
696
701
  if (!isFlexOrGridItem && isInlineElement(element, computedStyle)) {
702
+ skippedInline.push({ element, rect: element.getBoundingClientRect() });
697
703
  return;
698
704
  }
699
705
 
@@ -900,11 +906,21 @@ export function convertToAbsolutePositioning(iframeDoc: Document): number {
900
906
  const overY = element.scrollHeight - element.clientHeight > 2;
901
907
  return (overX || overY) && element.getAttribute('data-gg-pre-overflow') !== 'true';
902
908
  });
903
- if (moved.length > 0) {
909
+ // 変換しなかったインライン要素も、流れの中で動いていないかを見る。
910
+ // 変換した要素だけを比べていたため、ブロックの兄弟が抜けて詰まったラベルを見逃し、
911
+ // 等倍で採寸が正確なキャンバス表示でだけ崩れた姿が確定していた
912
+ // (1 枚表示は縮小による端数で別の要素がずれ、たまたま巻き戻っていた)
913
+ const movedInline = skippedInline.filter(({ element, rect }) => {
914
+ const now = element.getBoundingClientRect();
915
+ return Math.abs(now.left - rect.left) > 1.5 || Math.abs(now.top - rect.top) > 1.5;
916
+ });
917
+ if (moved.length > 0 || movedInline.length > 0) {
904
918
  console.warn(
905
919
  '[convertToAbsolutePositioning] 変換で',
906
920
  moved.length,
907
- '要素がずれたため巻き戻します(採寸タイミングの問題の可能性)',
921
+ '要素がずれた・変換しないインライン要素が',
922
+ movedInline.length,
923
+ '個動いたため巻き戻します(採寸タイミング、または流れに残る要素が詰まった可能性)',
908
924
  );
909
925
  captures.forEach(({ element, prevStyle }) => {
910
926
  if (prevStyle == null) element.removeAttribute('style');
@@ -1,5 +1,5 @@
1
1
  /**
2
- * ⌘ / Ctrl + クリックで、紙面の中のリンク(`<a href>`)の先へ移る。
2
+ * Alt(Mac は ⌥ Option)+ クリックで、紙面の中のリンク(`<a href>`)の先へ移る。
3
3
  *
4
4
  * - 同じサイトのページ(contentList[].href と照らし合わせる) … そのページを編集中にする
5
5
  * - 同じページのアンカー(`#id`) … その要素が見える位置へ紙面を移す
@@ -7,19 +7,27 @@
7
7
  * - `mailto:` / `tel:` / `javascript:` など … 何もしない
8
8
  * - ページ一覧に無い同じオリジンの URL … 短く知らせる
9
9
  *
10
- * [既存の ⌘ / Ctrl クリックとの両立]
11
- * useElementSelection の mousedown では ⌘ / Ctrl は「階層を無視して最深要素を選ぶ」、
12
- * ⌘ + Shift は「最深要素の追加・解除」、⌘ + ドラッグは自由配置(useDragResize)、
13
- * ⌘ + ダブルクリックはテキスト編集。押した瞬間にはどれになるか決められないので、
14
- * ここは mousedown で候補を覚えるだけにして選択には手を出さず、
10
+ * [⌘ / Ctrl ではなく Alt にした理由]
11
+ * 0.7.0 では ⌘ / Ctrl + クリックで移っていたが、⌘ / Ctrl + クリックはレイヤーパネルでは
12
+ * 「選択に足す・外す」(EditorLayerPanel)、紙面では「最深要素を選ぶ」で、複数選択のつもりの
13
+ * ⌘ クリックがリンクの上だとページ移動になった。紙面のクリックで Alt が空いている:
14
+ * Alt の既存の意味はホバーの距離メジャー(useAltMeasure、mousemove だけ)・中心からのリサイズ
15
+ * (ハンドルのドラッグ)・ズームツールの縮小(zoom-tool の間。下で止める)で、クリックには無い。
16
+ *
17
+ * [紙面のクリックとの両立]
18
+ * useElementSelection の mousedown は Alt を見ない(Alt + クリックは素のクリックと同じ選択)。
19
+ * Alt + ドラッグは移動、Alt + ダブルクリックは素のダブルクリック(潜る・テキスト編集)。
20
+ * 押した瞬間にはどれになるか決められないので、ここは mousedown で候補を覚えるだけにして
21
+ * 選択には手を出さず、
15
22
  * - 動かさずに離した(ドラッグではない)
16
- * - Shift / Alt を押していない
23
+ * - ⌘ / Ctrl / Shift を押していない(⌘ + Alt + クリックは最深要素を選ぶだけで移らない)
17
24
  * - 2 回目の mousedown(ダブルクリック)が LINK_NAV_DELAY_MS 以内に来なかった
18
25
  * - 押した点がテキスト編集中の要素の中ではない
19
- * ときだけ移る。リンクの中の深い要素を移らずに選びたいときは ⌘ + Alt + クリック。
26
+ * ときだけ移る。
20
27
  *
21
- * Mac は ⌘ だけ。Mac の Ctrl + クリックは右クリック扱い(contextmenu が出て click が来ない)で、
22
- * エディタのコンテキストメニューが開く。Windows などは Ctrl(と Meta)。
28
+ * Alt + クリックのリンクの既定の動作は、ブラウザによってはダウンロード(Chromium で実測)。
29
+ * 紙面のリンクの click は useElementSelection の handleClick が preventDefault するが、
30
+ * トリミング中は止めないので、Alt + クリックはここ(capture)でも必ず止める。
23
31
  */
24
32
  import { MARQUEE_DRAG_THRESHOLD } from '../constants';
25
33
 
@@ -175,17 +183,29 @@ export function clearPendingAnchor(id?: string): void {
175
183
 
176
184
  /**
177
185
  * 1 回目のクリックから移るまでの待ち。この間に 2 回目の mousedown が来たら
178
- * ダブルクリック(⌘ + ダブルクリック = テキスト編集)として移動を取り消す
186
+ * ダブルクリック(潜る・テキスト編集)として移動を取り消す
179
187
  */
180
188
  export const LINK_NAV_DELAY_MS = 350;
181
189
 
182
- /** ⌘ / Ctrl を押してリンクの上にいる間、紙面の <html> に付ける(カーソルを指にする) */
190
+ /** Alt を押してリンクの上にいる間、紙面の <html> に付ける(カーソルを指にする) */
183
191
  export const LINK_NAV_ATTR = 'data-gg-link-nav';
184
192
 
185
193
  const OVERLAY_SELECTOR =
186
194
  '.selection-box,.marquee-selection-box,[data-editor-overlay],#gg-smart-guides,#gg-measure-layer';
187
- /** 描画・テキスト・コメント・手のひら・トリミングの間は、クリックに別の意味がある */
188
- const BLOCKING_BODY_CLASSES = ['draw-mode', 'text-mode', 'comment-mode', 'move-mode', 'pan-mode', 'panning', 'gg-cropping'];
195
+ /**
196
+ * 描画・テキスト・コメント・手のひら・トリミング・ズームの間は、クリックに別の意味がある
197
+ * (ズームツールの Alt + クリックは縮小)
198
+ */
199
+ const BLOCKING_BODY_CLASSES = [
200
+ 'draw-mode',
201
+ 'text-mode',
202
+ 'comment-mode',
203
+ 'move-mode',
204
+ 'pan-mode',
205
+ 'panning',
206
+ 'gg-cropping',
207
+ 'zoom-tool',
208
+ ];
189
209
 
190
210
  const isMac = () => {
191
211
  if (typeof navigator === 'undefined') return false;
@@ -226,7 +246,7 @@ export interface LinkNavigationOptions {
226
246
  }
227
247
 
228
248
  /**
229
- * 紙面(iframe の文書)に ⌘ / Ctrl + クリックの移動を付ける。戻り値は後始末
249
+ * 紙面(iframe の文書)に Alt + クリックの移動を付ける。戻り値は後始末
230
250
  */
231
251
  export function attachLinkNavigation(iframeDoc: Document, options: LinkNavigationOptions): () => void {
232
252
  const win = iframeDoc.defaultView;
@@ -234,9 +254,9 @@ export function attachLinkNavigation(iframeDoc: Document, options: LinkNavigatio
234
254
  const hostDoc = frameEl?.ownerDocument ?? null;
235
255
  const hostWin = hostDoc?.defaultView ?? null;
236
256
  const mac = isMac();
237
- const mod = mac ? '⌘ ' : 'Ctrl + ';
238
- const navKey = (e: MouseEvent | KeyboardEvent) => (mac ? e.metaKey : e.ctrlKey || e.metaKey);
239
- const isNavKeyName = (key: string) => key === 'Meta' || (!mac && key === 'Control');
257
+ const mod = mac ? '⌥ ' : 'Alt + ';
258
+ /** Alt だけ。⌘ / Ctrl / Shift と一緒なら選択の操作(最深要素・追加)なので移らない */
259
+ const navKey = (e: MouseEvent | KeyboardEvent) => e.altKey && !e.metaKey && !e.ctrlKey && !e.shiftKey;
240
260
 
241
261
  let pointer: { x: number; y: number } | null = null;
242
262
  let modifier = false;
@@ -330,7 +350,7 @@ export function attachLinkNavigation(iframeDoc: Document, options: LinkNavigatio
330
350
  if (hint) hint.hidden = true;
331
351
  };
332
352
 
333
- /** ⌘ / Ctrl を押してリンクの上にいれば、指のカーソルと行き先の案内を出す */
353
+ /** Alt を押してリンクの上にいれば、指のカーソルと行き先の案内を出す */
334
354
  const update = (buttons = 0) => {
335
355
  if (!modifier || !pointer || buttons !== 0 || blocked()) {
336
356
  disarm();
@@ -378,16 +398,26 @@ export function attachLinkNavigation(iframeDoc: Document, options: LinkNavigatio
378
398
  };
379
399
  const onKey = (e: KeyboardEvent) => {
380
400
  if (e.key === 'Escape') cancel();
381
- if (!isNavKeyName(e.key)) {
382
- // ⌘ を離したことに気づけなかった(別のウィンドウで離した等)ときの戻し
383
- if (modifier && !navKey(e)) {
384
- modifier = false;
385
- disarm();
401
+ if (e.key === 'Alt') {
402
+ // Alt の keydown で altKey が立たない実装があっても、押したことを優先する
403
+ modifier = e.type === 'keydown' ? !(e.metaKey || e.ctrlKey || e.shiftKey) : navKey(e);
404
+ update();
405
+ return;
406
+ }
407
+ if (e.key === 'Meta' || e.key === 'Control' || e.key === 'Shift') {
408
+ // Alt を押したまま ⌘ / Ctrl / Shift を足す(移らなくなる)・離す(移れるようになる)
409
+ const next = navKey(e);
410
+ if (next !== modifier) {
411
+ modifier = next;
412
+ update();
386
413
  }
387
414
  return;
388
415
  }
389
- modifier = e.type === 'keydown' ? true : navKey(e);
390
- update();
416
+ // Alt を離したことに気づけなかった(別のウィンドウで離した等)ときの戻し
417
+ if (modifier && !navKey(e)) {
418
+ modifier = false;
419
+ disarm();
420
+ }
391
421
  };
392
422
  const onBlur = () => {
393
423
  modifier = false;
@@ -397,7 +427,7 @@ export function attachLinkNavigation(iframeDoc: Document, options: LinkNavigatio
397
427
  const onMouseDown = (e: MouseEvent) => {
398
428
  // 2 回目の mousedown(ダブルクリック)・別のクリックが来たら、前の移動は取り消す
399
429
  cancel();
400
- if (e.button !== 0 || !navKey(e) || e.shiftKey || e.altKey) return;
430
+ if (e.button !== 0 || !navKey(e)) return;
401
431
  if (e.detail > 1 || blocked()) return;
402
432
  // 選択枠のハンドル(リサイズ・回転)を押したのはハンドルの操作。下にリンクがあっても移らない
403
433
  if ((e.target as Element | null)?.closest?.('[data-handle]')) return;
@@ -408,14 +438,16 @@ export function attachLinkNavigation(iframeDoc: Document, options: LinkNavigatio
408
438
  const moved = (e: MouseEvent, p: { x: number; y: number }) =>
409
439
  Math.abs(e.clientX - p.x) > MARQUEE_DRAG_THRESHOLD || Math.abs(e.clientY - p.y) > MARQUEE_DRAG_THRESHOLD;
410
440
  const onMouseUp = (e: MouseEvent) => {
411
- // ⌘ + ドラッグ(自由配置)だった
441
+ // Alt + ドラッグ(移動)だった
412
442
  if (pending && moved(e, pending)) pending = null;
413
443
  };
414
444
  const onClick = (e: MouseEvent) => {
445
+ // 移らないとき(ズームツール・トリミング中・⌘ と一緒など)も、リンクのダウンロードはさせない
446
+ if (e.altKey && (e.target as Element | null)?.closest?.('a[href]')) e.preventDefault();
415
447
  const p = pending;
416
448
  pending = null;
417
449
  if (!p || e.button !== 0 || e.detail > 1) return;
418
- if (!navKey(e) || e.shiftKey || e.altKey || moved(e, p)) return;
450
+ if (!navKey(e) || moved(e, p)) return;
419
451
  timer = setTimeout(() => {
420
452
  timer = null;
421
453
  // 待っている間にテキスト編集に入った・紙面が差し替わった・モードが変わった
@@ -5,6 +5,7 @@
5
5
  import type { SelectedElementInfo, ImageFillMode } from '../types';
6
6
  import { getArtboardScale } from './dom-utils';
7
7
  import { extractValueFromTailwindClass } from './tailwind-utils';
8
+ import { summarizeBorder, borderSideWidthCss } from './border-sides';
8
9
 
9
10
  /**
10
11
  * RGB/RGBA色をHEXに変換
@@ -525,7 +526,11 @@ export function extractElementInfo(
525
526
  const rawFontSize = extractRawStyleValue(element.style.fontSize, 'fontSize');
526
527
  const rawLineHeight = extractRawStyleValue(element.style.lineHeight, 'lineHeight');
527
528
  const rawLetterSpacing = extractRawStyleValue(element.style.letterSpacing, 'letterSpacing');
528
- const rawBorderWidth = extractRawStyleValue(element.style.borderWidth, 'borderWidth');
529
+ // 片側だけの線(border-l-2 など)は、見えている辺の値を出す(utils/border-sides.ts)
530
+ const border = summarizeBorder(style, element);
531
+ const rawBorderWidth = border.sides
532
+ ? extractRawStyleValue(element.style.getPropertyValue(borderSideWidthCss(border.sides[0])), 'borderWidth')
533
+ : extractRawStyleValue(element.style.borderWidth, 'borderWidth');
529
534
  const rawGap = extractRawStyleValue(element.style.gap, 'gap');
530
535
  // Position values (left/top)
531
536
  const rawLeft = extractRawStyleValue(element.style.left, 'left');
@@ -573,9 +578,10 @@ export function extractElementInfo(
573
578
  imagePositionX: parseBackgroundPositionX(style.backgroundPosition),
574
579
  imagePositionY: parseBackgroundPositionY(style.backgroundPosition),
575
580
  imageScale: parseBackgroundScale(style.backgroundSize),
576
- borderWidth: parseFloat(style.borderWidth) || 0,
577
- borderColor: style.borderColor,
578
- borderStyle: style.borderStyle,
581
+ borderWidth: border.width,
582
+ borderColor: border.color,
583
+ borderStyle: border.style,
584
+ borderSides: border.sides,
579
585
  borderRadius: parseFloat(style.borderRadius) || 0,
580
586
  borderRadiusTopLeft: parseFloat(style.borderTopLeftRadius) || 0,
581
587
  borderRadiusTopRight: parseFloat(style.borderTopRightRadius) || 0,
@@ -94,13 +94,8 @@ export const TAILWIND_CONFLICT_GROUPS: Record<string, string[]> = {
94
94
  borderTopRightRadius: ['rounded-tr-'],
95
95
  borderBottomRightRadius: ['rounded-br-'],
96
96
  borderBottomLeftRadius: ['rounded-bl-'],
97
- borderWidth: ['border-'],
98
- borderTopWidth: ['border-t-'],
99
- borderRightWidth: ['border-r-'],
100
- borderBottomWidth: ['border-b-'],
101
- borderLeftWidth: ['border-l-'],
102
- borderColor: ['border-'],
103
- borderStyle: ['border-solid', 'border-dashed', 'border-dotted', 'border-none'],
97
+ // borderWidth / border*Width / borderColor / borderStyle は tailwind-utils の removeConflictingClasses が
98
+ // クラスの形で見分けて消す(接頭辞 border- では太さ・色・スタイルが区別できない)
104
99
 
105
100
  // Typography
106
101
  // 注意: fontSize と color は両方 text- プレフィックスを使用するが、
@@ -294,6 +294,80 @@ function isTextColorClass(cls: string): boolean {
294
294
  return false;
295
295
  }
296
296
 
297
+ // ------------------------------------------------------------
298
+ // 線(border-*)のクラスの見分け
299
+ // ------------------------------------------------------------
300
+ // border- で始まるクラスには、太さ(border-2 / border-l-2)・色(border-wf-ink)・
301
+ // スタイル(border-dashed)・表(border-collapse)が混ざっている。
302
+ // 以前は線色・線幅の変更で「border- で始まるもの」を全部消していたので、
303
+ // 左だけの線(border-l-2)や色・破線まで消えていた。tailwind-merge と同じ見分け方にする
304
+ // (太さ・スタイル・表の形でないものを色とみなす。テーマの色名を名簿で持たずに済む)
305
+
306
+ const BORDER_STYLE_CLASSES = new Set([
307
+ 'border-solid',
308
+ 'border-dashed',
309
+ 'border-dotted',
310
+ 'border-double',
311
+ 'border-hidden',
312
+ 'border-none',
313
+ ]);
314
+
315
+ const isBorderTableClass = (cls: string) => /^border-(collapse|separate|spacing(-|$))/.test(cls);
316
+
317
+ /**
318
+ * important の印を外す(`border-2!` / `!border-2`)。付いていても種類は同じなので、
319
+ * 判定の前に外して、消すときも同じ種類として消す(付いたまま残ると、新しい太さが !important に負ける)
320
+ */
321
+ const stripImportant = (cls: string) => cls.replace(/^!/, '').replace(/!$/, '');
322
+
323
+ /**
324
+ * 太さの値: 数字(border-2)、長さの任意値(border-[2px] / border-[length:var(--w)] /
325
+ * border-[min(2px,1vw)])、太さのキーワード(border-[thin] など。`border-[mediumblue]` は色なので厳密一致)、
326
+ * border-(length:--w)
327
+ */
328
+ const BORDER_WIDTH_VALUE = String.raw`(-\d+|-\[(?:thin|medium|thick)\]|-\[(?:\d|\.|calc\(|min\(|max\(|clamp\(|length:)[^\]]*\]|-\(length:[^)]*\))?`;
329
+
330
+ /** 辺の指定。`bs` / `be`(書字方向の始め・終わり)も Tailwind では辺の太さ */
331
+ const BORDER_SIDE_TOKENS = '(?:[trblxyse]|bs|be)';
332
+
333
+ /**
334
+ * 太さのクラス。side を渡すとその辺だけ(border-l / border-l-2 / border-l-[3px])、
335
+ * '' なら四辺まとめての指定だけ(border / border-2)。渡さなければ全部の辺と各辺
336
+ */
337
+ /** 辺を表す文字。`s` / `e` は書字方向、`bs` / `be` はブロック方向 */
338
+ export type SideLetter = 't' | 'r' | 'b' | 'l' | 'x' | 'y' | 's' | 'e' | 'bs' | 'be';
339
+
340
+ export function isBorderWidthClass(cls: string, side?: SideLetter | ''): boolean {
341
+ const sides = side === undefined ? `(-${BORDER_SIDE_TOKENS})?` : side ? `-${side}` : '';
342
+ return new RegExp(`^border${sides}${BORDER_WIDTH_VALUE}$`).test(stripImportant(cls));
343
+ }
344
+
345
+ /** スタイルのクラス(border-solid / border-dashed!) */
346
+ const isBorderStyleClass = (cls: string) => BORDER_STYLE_CLASSES.has(stripImportant(cls));
347
+
348
+ /** 太さ 0 の指定(border-0 / border-l-0 / border-[0px])。「線がある」の判定では数えない */
349
+ export function isZeroBorderWidthClass(cls: string): boolean {
350
+ return new RegExp(`^border(-${BORDER_SIDE_TOKENS})?-(0|\\[0(?:px|rem|em)?\\])$`).test(stripImportant(cls));
351
+ }
352
+
353
+ /** 色のクラス(border-wf-ink / border-l-wf-ink / border-[#fff] / border-[var(--x)] / border-wf-ink/50) */
354
+ function isBorderColorClass(cls: string): boolean {
355
+ const bare = stripImportant(cls);
356
+ return (
357
+ bare.startsWith('border-') &&
358
+ !BORDER_STYLE_CLASSES.has(bare) &&
359
+ !isBorderTableClass(bare) &&
360
+ !isBorderWidthClass(bare)
361
+ );
362
+ }
363
+
364
+ const BORDER_SIDE_WIDTH_PROPERTIES: Record<string, 't' | 'r' | 'b' | 'l'> = {
365
+ borderTopWidth: 't',
366
+ borderRightWidth: 'r',
367
+ borderBottomWidth: 'b',
368
+ borderLeftWidth: 'l',
369
+ };
370
+
297
371
  /**
298
372
  * 競合するクラスを要素から削除
299
373
  *
@@ -322,6 +396,26 @@ export function removeConflictingClasses(
322
396
  return;
323
397
  }
324
398
 
399
+ // 線の太さ・色・スタイルは、同じ種類のクラスだけを消す(太さを変えても色・破線は残す。色を変えても左だけの線は残す)。
400
+ // スタイルもここで消すのは、important 付き(border-dashed!)を名前の一致では拾えないため
401
+ if (
402
+ property === 'borderWidth' ||
403
+ property === 'borderColor' ||
404
+ property === 'borderStyle' ||
405
+ property in BORDER_SIDE_WIDTH_PROPERTIES
406
+ ) {
407
+ const side = BORDER_SIDE_WIDTH_PROPERTIES[property];
408
+ const conflicts =
409
+ property === 'borderColor'
410
+ ? isBorderColorClass
411
+ : property === 'borderStyle'
412
+ ? isBorderStyleClass
413
+ : (cls: string) => isBorderWidthClass(cls, side);
414
+ const currentClasses = getElementClassName(element).split(/\s+/).filter(Boolean);
415
+ setElementClassName(element, currentClasses.filter((cls) => !conflicts(cls)).join(' '));
416
+ return;
417
+ }
418
+
325
419
  if (!conflictPrefixes || conflictPrefixes.length === 0) return;
326
420
 
327
421
  const currentClasses = getElementClassName(element).split(/\s+/).filter(Boolean);
@@ -379,6 +473,17 @@ const LAYOUT_CRITICAL_PROPERTIES = new Set([
379
473
  'maxWidth',
380
474
  'minHeight',
381
475
  'maxHeight',
476
+ // 線のスタイル(なし / 実線 / 破線 / 点線)も同じ理由でインラインを残す。
477
+ // 紙面の CSS はファイルに書かれたクラスの分しか作られない(Vite の @source 走査)ので、
478
+ // 付けたばかりの border-none / border-solid にはルールが無く、紙面が変わらない。
479
+ // 右パネルは紙面の computed style を読み直すため、「なし」を選んでも「実線」に戻って見えていた
480
+ 'borderStyle',
481
+ // 線幅も同じ。border-0 / border-l-0 などは紙面の CSS に無いことが多い(構成ラフの殻で実測)
482
+ 'borderWidth',
483
+ 'borderTopWidth',
484
+ 'borderRightWidth',
485
+ 'borderBottomWidth',
486
+ 'borderLeftWidth',
382
487
  'display',
383
488
  'flexDirection',
384
489
  'flexWrap',
package/src/version.ts CHANGED
@@ -6,4 +6,4 @@
6
6
  * 利用側はこの値と node_modules の package.json を見比べて、食い違っていれば
7
7
  * 「再起動してください」と出せる(構成ラフのテンプレートが行っている)
8
8
  */
9
- export const EDITOR_VERSION = '0.7.2';
9
+ export const EDITOR_VERSION = '0.8.0';