@3gs/ui 0.1.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.
Files changed (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +43 -0
  3. package/dist/components/ActionSheet/ActionSheet.d.ts +40 -0
  4. package/dist/components/ActionSheet/index.d.ts +2 -0
  5. package/dist/components/Alert/Alert.d.ts +36 -0
  6. package/dist/components/Alert/index.d.ts +2 -0
  7. package/dist/components/Badge/Badge.d.ts +13 -0
  8. package/dist/components/Badge/index.d.ts +2 -0
  9. package/dist/components/Button/Button.d.ts +32 -0
  10. package/dist/components/Button/index.d.ts +2 -0
  11. package/dist/components/DatePicker/DatePicker.d.ts +57 -0
  12. package/dist/components/DatePicker/index.d.ts +2 -0
  13. package/dist/components/HUD/HUD.d.ts +56 -0
  14. package/dist/components/HUD/index.d.ts +2 -0
  15. package/dist/components/Icon/Icon.d.ts +27 -0
  16. package/dist/components/Icon/index.d.ts +2 -0
  17. package/dist/components/Keyboard/Keyboard.d.ts +38 -0
  18. package/dist/components/Keyboard/index.d.ts +2 -0
  19. package/dist/components/List/List.d.ts +55 -0
  20. package/dist/components/List/index.d.ts +2 -0
  21. package/dist/components/ModalSheet/ModalSheet.d.ts +36 -0
  22. package/dist/components/ModalSheet/index.d.ts +2 -0
  23. package/dist/components/NavigationBar/NavigationBar.d.ts +41 -0
  24. package/dist/components/NavigationBar/index.d.ts +2 -0
  25. package/dist/components/NotificationBanner/NotificationBanner.d.ts +50 -0
  26. package/dist/components/NotificationBanner/index.d.ts +2 -0
  27. package/dist/components/PageControl/PageControl.d.ts +32 -0
  28. package/dist/components/PageControl/index.d.ts +2 -0
  29. package/dist/components/Picker/Picker.d.ts +45 -0
  30. package/dist/components/Picker/index.d.ts +2 -0
  31. package/dist/components/Popover/Popover.d.ts +40 -0
  32. package/dist/components/Popover/index.d.ts +2 -0
  33. package/dist/components/Progress/Progress.d.ts +37 -0
  34. package/dist/components/Progress/index.d.ts +2 -0
  35. package/dist/components/SearchBar/SearchBar.d.ts +61 -0
  36. package/dist/components/SearchBar/index.d.ts +2 -0
  37. package/dist/components/SegmentedControl/SegmentedControl.d.ts +50 -0
  38. package/dist/components/SegmentedControl/index.d.ts +2 -0
  39. package/dist/components/Slider/Slider.d.ts +39 -0
  40. package/dist/components/Slider/index.d.ts +2 -0
  41. package/dist/components/StatusBar/StatusBar.d.ts +24 -0
  42. package/dist/components/StatusBar/index.d.ts +2 -0
  43. package/dist/components/Stepper/Stepper.d.ts +55 -0
  44. package/dist/components/Stepper/index.d.ts +2 -0
  45. package/dist/components/Switch/Switch.d.ts +26 -0
  46. package/dist/components/Switch/index.d.ts +2 -0
  47. package/dist/components/TabBar/TabBar.d.ts +33 -0
  48. package/dist/components/TabBar/index.d.ts +2 -0
  49. package/dist/components/TextField/TextField.d.ts +38 -0
  50. package/dist/components/TextField/index.d.ts +2 -0
  51. package/dist/components/Toolbar/Toolbar.d.ts +58 -0
  52. package/dist/components/Toolbar/index.d.ts +2 -0
  53. package/dist/index.cjs +73 -0
  54. package/dist/index.d.ts +27 -0
  55. package/dist/index.js +2803 -0
  56. package/dist/lib/cn.d.ts +2 -0
  57. package/dist/lib/i18n.d.ts +89 -0
  58. package/dist/ui.css +1 -0
  59. package/package.json +73 -0
@@ -0,0 +1,2 @@
1
+ /** Tiny class-name joiner — no dependency, strips falsy values. */
2
+ export declare function cn(...parts: Array<string | false | null | undefined | 0>): string;
@@ -0,0 +1,89 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ /**
3
+ * Every user-facing string a component falls back to when the caller passes
4
+ * no explicit label. Override any subset through `<GsProvider strings>`.
5
+ */
6
+ export interface GsStrings {
7
+ /** ActionSheet cancel button, SearchField cancel button, ModalSheet left bar button. */
8
+ cancel: string;
9
+ /** ModalSheet right bar button; Keyboard `returnKey="Done"`. */
10
+ done: string;
11
+ ok: string;
12
+ close: string;
13
+ /** TextField clear (ⓧ) button `aria-label`. */
14
+ clear: string;
15
+ /** SearchField default placeholder; Keyboard `returnKey="Search"`. */
16
+ search: string;
17
+ /** Keyboard `returnKey="Go"` / `"Send"` / `"Next"`. */
18
+ go: string;
19
+ send: string;
20
+ next: string;
21
+ /** ActivityIndicator `aria-label`. */
22
+ loading: string;
23
+ /** HUD `kind="progress"` bar `aria-label` when the title isn't a string. */
24
+ progress: string;
25
+ /** ActionSheet `aria-label` when it has no title. */
26
+ actions: string;
27
+ /** Popover / ModalSheet `aria-label` when nothing else names the dialog. */
28
+ dialog: string;
29
+ /** TabBar tablist `aria-label`. */
30
+ tabs: string;
31
+ /** SegmentedControl group `aria-label`. */
32
+ segments: string;
33
+ /** PageControl tablist `aria-label`. */
34
+ pages: string;
35
+ /** PageControl dot `aria-label`, e.g. `"Page 2 of 5"`. */
36
+ pageOf: (page: number, count: number) => string;
37
+ /** Toolbar `aria-label`. */
38
+ toolbar: string;
39
+ /** Keyboard group `aria-label`. */
40
+ keyboard: string;
41
+ shift: string;
42
+ delete: string;
43
+ /** Layer-switch key `aria-label`s (`123`, `#+=`, `ABC`). */
44
+ numbers: string;
45
+ symbols: string;
46
+ letters: string;
47
+ /** Visible label of the space bar. */
48
+ space: string;
49
+ /** Visible label of the plain (non-blue) return key. */
50
+ return: string;
51
+ on: string;
52
+ off: string;
53
+ /** DatePicker `aria-label` per mode. */
54
+ date: string;
55
+ time: string;
56
+ dateTime: string;
57
+ /** Drum (column) `aria-label`s. */
58
+ month: string;
59
+ day: string;
60
+ year: string;
61
+ hour: string;
62
+ minute: string;
63
+ dayPeriod: string;
64
+ /** The rolling day drum's label for the current day. */
65
+ today: string;
66
+ /** Day-period fallbacks when `Intl` can't supply them for the locale. */
67
+ am: string;
68
+ pm: string;
69
+ }
70
+ /** English — what every component uses when no `<GsProvider>` is above it. */
71
+ export declare const defaultStrings: GsStrings;
72
+ export interface GsProviderProps {
73
+ /** BCP 47 locale, e.g. `"de-DE"`. Inherited from an outer provider when omitted. */
74
+ locale?: string;
75
+ /** Overrides merged over the outer provider's strings (or the English defaults). */
76
+ strings?: Partial<GsStrings>;
77
+ children: ReactNode;
78
+ }
79
+ /**
80
+ * Sets the locale and the fallback UI strings for every component below it.
81
+ * Providers nest: an inner one merges its `strings` over the outer one's and
82
+ * inherits its `locale` when it sets none. Hoist the `strings` object (module
83
+ * scope or `useMemo`) so the context value stays referentially stable.
84
+ */
85
+ export declare function GsProvider({ locale, strings, children }: GsProviderProps): ReactElement;
86
+ /** The effective strings — English defaults when no provider is above. */
87
+ export declare function useGsStrings(): GsStrings;
88
+ /** The effective locale — `undefined` when no provider set one (components then use their own default). */
89
+ export declare function useGsLocale(): string | undefined;
package/dist/ui.css ADDED
@@ -0,0 +1 @@
1
+ :root{--gs-font: "Helvetica Neue", Helvetica, Arial, sans-serif;--gs-font-size-xs: 11px;--gs-font-size-sm: 13px;--gs-font-size-md: 15px;--gs-font-size-lg: 17px;--gs-font-size-xl: 20px;--gs-line-height: 1.2;--gs-black: #000000;--gs-white: #ffffff;--gs-gray-900: #131315;--gs-gray-800: #1c1c1e;--gs-gray-700: #2a2a2d;--gs-gray-600: #3a3a3e;--gs-gray-500: #58585c;--gs-gray-400: #8e8e93;--gs-gray-300: #b8b8bd;--gs-gray-200: #d9d9de;--gs-gray-100: #f2f2f5;--gs-text: #ffffff;--gs-text-secondary: #a1a1a6;--gs-text-tertiary: #6f6f75;--gs-text-link: #8cb6ff;--gs-text-on-blue: #ffffff;--gs-text-disabled: rgba(255, 255, 255, .35);--gs-text-shadow-dark: 0 -1px 0 rgba(0, 0, 0, .7);--gs-text-shadow-light: 0 1px 0 rgba(255, 255, 255, .6);--gs-blue-100: #9ec4ff;--gs-blue-300: #5b9bf0;--gs-blue-500: #2f74d8;--gs-blue-700: #1d4fa4;--gs-blue-900: #12376f;--gs-red-300: #ff7b76;--gs-red-500: #d8332e;--gs-red-700: #9c1712;--gs-green-500: #4cd964;--gs-screen-bg: #000000;--gs-pinstripe-bg: repeating-linear-gradient( to right, #151517 0px, #151517 6px, #1b1b1e 6px, #1b1b1e 7px );--gs-surface: #2c2c2f;--gs-surface-raised: #38383c;--gs-surface-sunken: #1a1a1c;--gs-separator: rgba(0, 0, 0, .85);--gs-separator-light: rgba(255, 255, 255, .09);--gs-gloss: linear-gradient( to bottom, rgba(255, 255, 255, .3) 0%, rgba(255, 255, 255, .12) 50%, rgba(255, 255, 255, 0) 50.5%, rgba(255, 255, 255, 0) 100% );--gs-gloss-soft: linear-gradient( to bottom, rgba(255, 255, 255, .18) 0%, rgba(255, 255, 255, .06) 50%, rgba(255, 255, 255, 0) 51%, rgba(255, 255, 255, 0) 100% );--gs-gradient-bar: linear-gradient( to bottom, #6e6e72 0%, #4b4b4f 49%, #333336 50%, #1f1f22 100% );--gs-gradient-dark: linear-gradient( to bottom, #5a5a5f 0%, #414145 49%, #303034 50%, #232326 100% );--gs-gradient-dark-pressed: linear-gradient( to bottom, #1c1c1f 0%, #26262a 50%, #2d2d31 100% );--gs-gradient-blue: linear-gradient( to bottom, #8fb8f5 0%, #4d8ae4 49%, #2a6bd2 50%, #1d55b5 100% );--gs-gradient-blue-pressed: linear-gradient( to bottom, #17427f 0%, #1f56a8 50%, #2b66bf 100% );--gs-gradient-red: linear-gradient( to bottom, #f08a86 0%, #d9403b 49%, #c1221d 50%, #9a1511 100% );--gs-gradient-red-pressed: linear-gradient( to bottom, #6f0e0b 0%, #8d1713 50%, #a11d19 100% );--gs-icon-inactive-top: #b9b9be;--gs-icon-inactive-bottom: #5f5f64;--gs-icon-active-top: #a6d0ff;--gs-icon-active-bottom: #2a70e0;--gs-radius-sm: 5px;--gs-radius-md: 8px;--gs-radius-lg: 10px;--gs-radius-pill: 999px;--gs-rim-light: inset 0 1px 0 rgba(255, 255, 255, .22);--gs-rim-dark: 0 1px 0 rgba(0, 0, 0, .75);--gs-emboss: var(--gs-rim-light), var(--gs-rim-dark);--gs-inset: inset 0 2px 5px rgba(0, 0, 0, .75), inset 0 0 0 1px rgba(0, 0, 0, .55);--gs-shadow-pop: 0 8px 24px rgba(0, 0, 0, .7), 0 2px 6px rgba(0, 0, 0, .5);--gs-border: 1px solid rgba(0, 0, 0, .9);--gs-border-light: 1px solid rgba(255, 255, 255, .14);--gs-space-1: 4px;--gs-space-2: 8px;--gs-space-3: 12px;--gs-space-4: 16px;--gs-space-5: 20px;--gs-control-height: 44px;--gs-bar-height: 44px;--gs-tabbar-height: 49px;--gs-statusbar-height: 20px;--gs-bar-border: #000000;--gs-bar-rim: rgba(255, 255, 255, .25);--gs-gradient-barbutton: var(--gs-gradient-dark);--gs-gradient-barbutton-pressed: var(--gs-gradient-dark-pressed);--gs-gradient-neutral: var(--gs-gradient-dark);--gs-gradient-neutral-pressed: var(--gs-gradient-dark-pressed);--gs-text-on-neutral: #ffffff;--gs-text-shadow-on-neutral: var(--gs-text-shadow-dark);--gs-text-on-bar: #ffffff;--gs-text-shadow-on-bar: var(--gs-text-shadow-dark);--gs-text-emboss: var(--gs-text-shadow-dark);--gs-header-text: var(--gs-text-secondary);--gs-surface-gloss: none;--gs-statusbar-gradient: linear-gradient(to bottom, #464649 0%, #2f2f32 49%, #1f1f21 50%, #0f0f10 100%);--gs-ease: cubic-bezier(.25, .1, .25, 1);--gs-duration: .16s;--gs-focus-ring: 0 0 0 2px rgba(143, 184, 245, .85)}.gs-root[data-theme=light],.gs-theme-light{color-scheme:light;--gs-text: #000000;--gs-text-secondary: #4c566c;--gs-text-tertiary: #8e8e93;--gs-text-link: #385487;--gs-text-disabled: rgba(0, 0, 0, .35);--gs-text-emboss: 0 1px 0 rgba(255, 255, 255, .75);--gs-header-text: #4c566c;--gs-screen-bg: #ffffff;--gs-pinstripe-bg: repeating-linear-gradient( to right, #c5ccd4 0px, #c5ccd4 6px, #cdd3da 6px, #cdd3da 7px );--gs-surface: #ffffff;--gs-surface-raised: #f7f7f9;--gs-surface-sunken: #ffffff;--gs-separator: rgba(0, 0, 0, .16);--gs-separator-light: rgba(255, 255, 255, .9);--gs-surface-gloss: linear-gradient(to bottom, rgba(255, 255, 255, .6), rgba(255, 255, 255, 0) 50%);--gs-gradient-bar: linear-gradient( to bottom, #b0bccd 0%, #8a9bb4 49%, #6d84a2 50%, #5b7397 100% );--gs-bar-border: #2d3642;--gs-bar-rim: rgba(255, 255, 255, .45);--gs-gradient-barbutton: linear-gradient( to bottom, #8aa4c8 0%, #6684ad 49%, #51739f 50%, #45668f 100% );--gs-gradient-barbutton-pressed: linear-gradient(to bottom, #2c4f82 0%, #35598e 50%, #3f6499 100%);--gs-text-on-bar: #ffffff;--gs-text-shadow-on-bar: 0 -1px 0 rgba(0, 0, 0, .4);--gs-statusbar-gradient: linear-gradient(to bottom, #a3b1c4 0%, #8a9bb4 49%, #6d84a2 50%, #5b7397 100%);--gs-gradient-neutral: linear-gradient( to bottom, #fdfdfe 0%, #eef0f4 49%, #dfe3ea 50%, #cbd1da 100% );--gs-gradient-neutral-pressed: linear-gradient(to bottom, #b9c1ce 0%, #cfd5df 50%, #dfe3ea 100%);--gs-text-on-neutral: #1c1c1e;--gs-text-shadow-on-neutral: 0 1px 0 rgba(255, 255, 255, .8);--gs-border: 1px solid rgba(0, 0, 0, .32);--gs-border-light: 1px solid rgba(255, 255, 255, .8);--gs-rim-light: inset 0 1px 0 rgba(255, 255, 255, .9);--gs-rim-dark: 0 1px 0 rgba(255, 255, 255, .55);--gs-inset: inset 0 2px 4px rgba(0, 0, 0, .22), inset 0 0 0 1px rgba(0, 0, 0, .22);--gs-shadow-pop: 0 8px 24px rgba(0, 0, 0, .35), 0 2px 6px rgba(0, 0, 0, .25);--gs-focus-ring: 0 0 0 2px rgba(47, 116, 216, .75);--gs-icon-inactive-top: #ffffff;--gs-icon-inactive-bottom: #c9d3e0}.gs-root{font-family:var(--gs-font);font-size:var(--gs-font-size-lg);line-height:var(--gs-line-height);color:var(--gs-text);background:var(--gs-screen-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}.gs-root *,.gs-root *:before,.gs-root *:after{box-sizing:border-box}:where([class^=gs-],[class*=" gs-"]) :where(button,input,textarea,select),:where(button,input,textarea,select):where([class^=gs-],[class*=" gs-"]){font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.gs-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.gs-icon{display:inline-block;vertical-align:middle;flex-shrink:0}.gs-icon--gloss .gs-icon__stop-top{stop-color:var(--gs-icon-inactive-top)}.gs-icon--gloss .gs-icon__stop-mid-top{stop-color:color-mix(in srgb,var(--gs-icon-inactive-top) 70%,var(--gs-icon-inactive-bottom))}.gs-icon--gloss .gs-icon__stop-mid-bottom{stop-color:color-mix(in srgb,var(--gs-icon-inactive-bottom) 80%,var(--gs-icon-inactive-top))}.gs-icon--gloss .gs-icon__stop-bottom{stop-color:var(--gs-icon-inactive-bottom)}.gs-icon--active .gs-icon__stop-top{stop-color:var(--gs-icon-active-top)}.gs-icon--active .gs-icon__stop-mid-top{stop-color:color-mix(in srgb,var(--gs-icon-active-top) 65%,var(--gs-icon-active-bottom))}.gs-icon--active .gs-icon__stop-mid-bottom{stop-color:color-mix(in srgb,var(--gs-icon-active-bottom) 85%,var(--gs-icon-active-top))}.gs-icon--active .gs-icon__stop-bottom{stop-color:var(--gs-icon-active-bottom)}.gs-icon--embossed{filter:drop-shadow(0 -1px 0 rgba(0,0,0,.6)) drop-shadow(0 1px 0 rgba(255,255,255,.07))}.gs-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--gs-radius-pill);font-family:var(--gs-font);font-size:var(--gs-font-size-sm);font-weight:700;line-height:1;color:var(--gs-white);text-shadow:var(--gs-text-shadow-dark);border:2px solid var(--gs-white);box-shadow:0 1px 2px #000000b3;position:relative;overflow:hidden;isolation:isolate;box-sizing:border-box;white-space:nowrap}.gs-badge:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gs-gloss);pointer-events:none}.gs-badge--red{background:var(--gs-gradient-red)}.gs-badge--gray{background:var(--gs-gradient-dark);border-color:#fffc}.gs-button{--gs-button-gel: var(--gs-gradient-neutral);--gs-button-gel-pressed: var(--gs-gradient-neutral-pressed);--gs-button-text: var(--gs-text-on-neutral);--gs-button-text-shadow: var(--gs-text-shadow-on-neutral);display:inline-flex;align-items:center;justify-content:center;gap:6px;box-sizing:border-box;min-width:0;height:var(--gs-control-height);padding:0 14px;vertical-align:middle;font-family:var(--gs-font);font-size:var(--gs-font-size-lg);font-weight:700;line-height:1;color:var(--gs-button-text);text-shadow:var(--gs-button-text-shadow);text-decoration:none;white-space:nowrap;background:var(--gs-gloss),var(--gs-button-gel);border:var(--gs-border);border-radius:var(--gs-radius-md);box-shadow:var(--gs-emboss);cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation;transition:background var(--gs-duration) var(--gs-ease)}.gs-button--default{--gs-button-gel: var(--gs-gradient-neutral);--gs-button-gel-pressed: var(--gs-gradient-neutral-pressed);--gs-button-text: var(--gs-text-on-neutral);--gs-button-text-shadow: var(--gs-text-shadow-on-neutral)}.gs-button--primary{--gs-button-gel: var(--gs-gradient-blue);--gs-button-gel-pressed: var(--gs-gradient-blue-pressed);--gs-button-text: var(--gs-white);--gs-button-text-shadow: var(--gs-text-shadow-dark)}.gs-button--destructive{--gs-button-gel: var(--gs-gradient-red);--gs-button-gel-pressed: var(--gs-gradient-red-pressed);--gs-button-text: var(--gs-white);--gs-button-text-shadow: var(--gs-text-shadow-dark)}.gs-button--sm{height:30px;padding:0 10px;gap:4px;font-size:var(--gs-font-size-sm);border-radius:var(--gs-radius-sm)}.gs-button--md{height:var(--gs-control-height);font-size:var(--gs-font-size-lg)}.gs-button--lg{height:50px;padding:0 16px;font-size:18px}.gs-button--block{display:flex;width:100%}.gs-button__label{min-width:0;overflow:hidden;text-overflow:ellipsis}.gs-button__icon{flex-shrink:0;color:inherit;filter:drop-shadow(var(--gs-button-text-shadow))}.gs-button:focus-visible{outline:none;box-shadow:var(--gs-focus-ring),var(--gs-emboss)}.gs-button:active:not(:disabled),.gs-button[data-pressed],.gs-button--pressed{background:var(--gs-button-gel-pressed);box-shadow:inset 0 2px 4px #0009,var(--gs-rim-dark)}.gs-button:disabled{opacity:.5;cursor:default}.gs-switch{--gs-switch-width: 94px;--gs-switch-height: 27px;--gs-switch-knob: 27px;--gs-switch-off-gel: linear-gradient(to bottom, var(--gs-gray-600), var(--gs-gray-700));--gs-switch-off-text: var(--gs-text-secondary);--gs-switch-off-text-shadow: var(--gs-text-shadow-dark);--gs-switch-knob-gel: linear-gradient( to bottom, #fdfdfd 0%, #e6e6ea 49%, #d6d6db 50%, #c4c4ca 100% );position:relative;display:inline-flex;flex-shrink:0;width:var(--gs-switch-width);height:var(--gs-switch-height);padding:0;border:0;background:none;border-radius:var(--gs-radius-pill);font-family:var(--gs-font);cursor:pointer;vertical-align:middle;box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.gs-root[data-theme=light] .gs-switch,.gs-theme-light .gs-switch{--gs-switch-off-gel: linear-gradient( to bottom, #fbfbfc 0%, #ededf0 49%, #e2e2e6 50%, #d6d6db 100% );--gs-switch-off-text: #7d7d84;--gs-switch-off-text-shadow: 0 1px 0 rgba(255, 255, 255, .8)}.gs-switch:before{content:"";position:absolute;inset-inline:0;top:calc((var(--gs-switch-height) - var(--gs-control-height)) / 2);bottom:calc((var(--gs-switch-height) - var(--gs-control-height)) / 2)}.gs-switch:focus-visible{outline:none}.gs-switch__track{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;border:var(--gs-border);border-radius:var(--gs-radius-pill);box-shadow:var(--gs-inset);box-sizing:border-box}.gs-switch:focus-visible .gs-switch__track{box-shadow:var(--gs-focus-ring),var(--gs-inset)}.gs-switch__strip{display:flex;width:200%;height:100%;transform:translate(-50%);transition:transform var(--gs-duration) var(--gs-ease)}.gs-switch--on .gs-switch__strip{transform:translate(0)}.gs-switch__on,.gs-switch__off{display:flex;align-items:center;flex:0 0 50%;height:100%;padding:0 10px;font-size:var(--gs-font-size-md);font-weight:700;line-height:1;white-space:nowrap;box-sizing:border-box}.gs-switch__on{justify-content:flex-start;color:var(--gs-text-on-blue);text-shadow:var(--gs-text-shadow-dark);background:var(--gs-gloss),var(--gs-gradient-blue)}.gs-switch__off{justify-content:flex-end;color:var(--gs-switch-off-text);text-shadow:var(--gs-switch-off-text-shadow);background:var(--gs-gloss),var(--gs-switch-off-gel)}.gs-switch__knob{position:absolute;top:0;inset-inline-start:0;width:var(--gs-switch-knob);height:var(--gs-switch-knob);border-radius:50%;background:var(--gs-gloss),var(--gs-switch-knob-gel);box-shadow:0 0 0 1px #000c,0 1px 2px #0009,inset 0 1px #ffffffe6;transform:translate(0);transition:transform var(--gs-duration) var(--gs-ease)}.gs-switch--on .gs-switch__knob{transform:translate(calc(var(--gs-switch-width) - var(--gs-switch-knob)))}:is([dir=rtl] .gs-switch,.gs-switch:dir(rtl)) .gs-switch__strip{transform:translate(50%)}:is([dir=rtl] .gs-switch--on,.gs-switch--on:dir(rtl)) .gs-switch__strip{transform:translate(0)}:is([dir=rtl] .gs-switch--on,.gs-switch--on:dir(rtl)) .gs-switch__knob{transform:translate(calc(var(--gs-switch-knob) - var(--gs-switch-width)))}.gs-switch:disabled,.gs-switch--disabled{opacity:.5;cursor:default}@media(prefers-reduced-motion:reduce){.gs-switch__strip,.gs-switch__knob{transition:none}}.gs-textfield{--gs-textfield-error-text: var(--gs-red-300);display:flex;flex-direction:column;gap:var(--gs-space-1);min-width:0;font-family:var(--gs-font);color:var(--gs-text)}.gs-root[data-theme=light] .gs-textfield,.gs-theme-light .gs-textfield{--gs-textfield-error-text: var(--gs-red-500)}.gs-textfield__field{display:flex;align-items:center;gap:var(--gs-space-2);height:var(--gs-control-height);padding:0 10px;background:var(--gs-surface-sunken);border:var(--gs-border);border-radius:var(--gs-radius-md);box-shadow:var(--gs-inset);cursor:text;transition:box-shadow var(--gs-duration) var(--gs-ease)}.gs-textfield--lg .gs-textfield__field{height:50px}.gs-textfield__field:focus-within{box-shadow:var(--gs-inset),var(--gs-focus-ring)}.gs-textfield--error .gs-textfield__field{box-shadow:var(--gs-inset),0 0 0 1px var(--gs-red-500)}.gs-textfield--error .gs-textfield__field:focus-within{box-shadow:var(--gs-inset),0 0 0 2px color-mix(in srgb,var(--gs-red-500) 85%,transparent)}.gs-textfield--disabled{opacity:.5}.gs-textfield--disabled .gs-textfield__field{cursor:not-allowed}.gs-textfield__label{position:relative;display:flex;align-items:center;align-self:stretch;flex:0 0 90px;width:90px;padding-inline-end:var(--gs-space-2);font-size:var(--gs-font-size-md);font-weight:700;line-height:var(--gs-line-height);color:var(--gs-text);text-shadow:var(--gs-text-emboss);white-space:nowrap;overflow:hidden;cursor:default}.gs-textfield__label:after{content:"";position:absolute;top:9px;bottom:9px;inset-inline-end:0;width:1px;background:var(--gs-separator);box-shadow:1px 0 0 var(--gs-separator-light)}[dir=rtl] .gs-textfield__label:after{box-shadow:-1px 0 0 var(--gs-separator-light)}.gs-textfield__icon{flex-shrink:0;color:var(--gs-gray-400);pointer-events:none}.gs-textfield__input{flex:1 1 auto;min-width:0;height:100%;padding:0;background:transparent;border:0;outline:none;color:var(--gs-text);font-family:var(--gs-font);font-size:var(--gs-font-size-lg);line-height:var(--gs-line-height);caret-color:var(--gs-blue-300)}.gs-textfield__input::placeholder{color:var(--gs-text-tertiary);opacity:1}.gs-textfield__input:disabled{cursor:not-allowed;color:var(--gs-text);-webkit-text-fill-color:var(--gs-text)}.gs-textfield__input:-webkit-autofill,.gs-textfield__input:-webkit-autofill:focus{-webkit-text-fill-color:var(--gs-text);-webkit-box-shadow:0 0 0 1000px var(--gs-surface-sunken) inset;caret-color:var(--gs-text)}.gs-textfield__input::-webkit-search-decoration,.gs-textfield__input::-webkit-search-cancel-button,.gs-textfield__input::-webkit-search-results-button,.gs-textfield__input::-webkit-search-results-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:none}.gs-textfield__clear{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:24px;margin-inline-end:-4px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--gs-gray-400);cursor:pointer;-webkit-tap-highlight-color:transparent}.gs-textfield__clear .gs-icon{fill:currentColor;stroke:var(--gs-surface-sunken)}.gs-textfield__clear:active{color:var(--gs-gray-300)}.gs-textfield__clear:focus-visible{outline:none;box-shadow:var(--gs-focus-ring)}.gs-textfield__helper,.gs-textfield__error{padding:0 10px;font-size:var(--gs-font-size-sm);line-height:1.3;text-shadow:var(--gs-text-emboss)}.gs-textfield__helper{color:var(--gs-text-secondary)}.gs-textfield__error{color:var(--gs-textfield-error-text)}.gs-searchfield{display:flex;align-items:center;gap:var(--gs-space-2);min-width:0;font-family:var(--gs-font)}.gs-searchfield__field{flex:1 1 auto}.gs-searchfield__field .gs-textfield__field{height:32px;gap:6px;padding-block:0;padding-inline:10px 8px;border-radius:var(--gs-radius-pill)}.gs-searchfield__field .gs-textfield__input{font-size:var(--gs-font-size-md)}.gs-searchfield__cancel{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;height:30px;padding:0 10px;border:var(--gs-border);border-radius:var(--gs-radius-sm);background:var(--gs-gloss),var(--gs-gradient-barbutton);box-shadow:var(--gs-emboss);color:var(--gs-text-on-bar);font-family:var(--gs-font);font-size:var(--gs-font-size-sm);font-weight:700;line-height:1;text-shadow:var(--gs-text-shadow-on-bar);white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent}.gs-searchfield__cancel:active{background:var(--gs-gradient-barbutton-pressed);box-shadow:inset 0 2px 4px #0009}.gs-searchfield__cancel:focus-visible{outline:none;box-shadow:var(--gs-emboss),var(--gs-focus-ring)}.gs-navbar{position:relative;display:grid;grid-template-columns:minmax(max-content,1fr) minmax(0,max-content) minmax(max-content,1fr);align-items:center;box-sizing:border-box;flex-shrink:0;height:var(--gs-bar-height);padding:0 5px;font-family:var(--gs-font);color:var(--gs-text-on-bar);background:var(--gs-gloss-soft),var(--gs-gradient-bar);border-bottom:1px solid var(--gs-bar-border);box-shadow:inset 0 1px 0 var(--gs-bar-rim)}.gs-navbar__left,.gs-navbar__right{display:flex;align-items:center;gap:6px;min-width:0}.gs-navbar__left{grid-column:1;justify-self:start}.gs-navbar__right{grid-column:3;justify-self:end}.gs-navbar__title{grid-column:2;min-width:0;margin:0 6px;padding:2px 0;font:700 var(--gs-font-size-xl) / var(--gs-line-height) var(--gs-font);color:var(--gs-text-on-bar);text-align:center;text-shadow:var(--gs-text-shadow-on-bar);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.gs-navbar--blue{--gs-gradient-bar: linear-gradient(to bottom, #b0bccd 0%, #8a9bb4 49%, #6d84a2 50%, #5b7397 100%);--gs-bar-border: #2d3642;--gs-text-shadow-on-bar: 0 -1px 0 rgba(0, 0, 0, .4);--gs-gradient-barbutton: linear-gradient(to bottom, #8aa4c8 0%, #6684ad 49%, #51739f 50%, #45668f 100%);--gs-gradient-barbutton-pressed: linear-gradient(to bottom, #2c405f 0%, #3a5278 50%, #435f8b 100%)}.gs-barbutton{--gs-barbutton-gel: var(--gs-gradient-barbutton);--gs-barbutton-gel-pressed: var(--gs-gradient-barbutton-pressed);--gs-barbutton-text-shadow: var(--gs-text-shadow-on-bar);--gs-barbutton-point: 9px;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:4px;box-sizing:border-box;flex-shrink:0;height:30px;padding:0 10px;font:700 12px / 1 var(--gs-font);color:var(--gs-text-on-bar);text-shadow:var(--gs-barbutton-text-shadow);white-space:nowrap;border:var(--gs-border);border-radius:var(--gs-radius-sm);background:var(--gs-gloss),var(--gs-barbutton-gel);box-shadow:var(--gs-emboss);outline:none;-webkit-user-select:none;user-select:none}.gs-barbutton--icon-only{padding:0 7px}.gs-barbutton--done{--gs-barbutton-gel: var(--gs-gradient-blue);--gs-barbutton-gel-pressed: var(--gs-gradient-blue-pressed);--gs-barbutton-text-shadow: var(--gs-text-shadow-dark);color:var(--gs-white)}.gs-barbutton__label{display:inline-block}.gs-barbutton__icon{color:inherit;filter:drop-shadow(var(--gs-barbutton-text-shadow))}.gs-barbutton:active:not(:disabled),.gs-barbutton--pressed{background:var(--gs-barbutton-gel-pressed);box-shadow:inset 0 2px 4px #0009,var(--gs-rim-dark)}.gs-barbutton:focus-visible{box-shadow:var(--gs-focus-ring),var(--gs-emboss)}.gs-barbutton:disabled{opacity:.5}.gs-barbutton--back{--gs-barbutton-outline: var(--gs-black);padding-inline-start:16px;border:0;background:none;box-shadow:none;isolation:isolate;filter:drop-shadow(var(--gs-rim-dark))}.gs-root[data-theme=light] .gs-barbutton--back,.gs-theme-light .gs-barbutton--back{--gs-barbutton-outline: var(--gs-bar-border)}.gs-barbutton--back:before,.gs-barbutton--back:after{content:"";position:absolute;z-index:-1;pointer-events:none}.gs-barbutton--back:before{top:0;right:0;bottom:0;left:0;border-radius:var(--gs-radius-sm);background:var(--gs-barbutton-outline);clip-path:polygon(var(--gs-barbutton-point) 0,100% 0,100% 100%,var(--gs-barbutton-point) 100%,0 50%)}.gs-barbutton--back:after{top:1px;right:1px;bottom:1px;left:1px;border-radius:calc(var(--gs-radius-sm) - 1px);background:var(--gs-gloss),var(--gs-barbutton-gel);box-shadow:var(--gs-rim-light);clip-path:polygon(8.6px 0,100% 0,100% 100%,8.6px 100%,.2px 50%)}.gs-barbutton--back:active:not(:disabled),.gs-barbutton--back.gs-barbutton--pressed{background:none;box-shadow:none}.gs-barbutton--back:active:not(:disabled):after,.gs-barbutton--back.gs-barbutton--pressed:after{background:var(--gs-barbutton-gel-pressed);box-shadow:inset 0 2px 4px #0009}.gs-barbutton--back:focus-visible{box-shadow:var(--gs-focus-ring)}:is([dir=rtl] .gs-barbutton--back,.gs-barbutton--back:dir(rtl)):before,:is([dir=rtl] .gs-barbutton--back,.gs-barbutton--back:dir(rtl)):after{transform:scaleX(-1)}.gs-tabbar{--gs-tabbar-gradient: linear-gradient( to bottom, #3c3c40 0%, #2a2a2e 49%, #1c1c1f 50%, #0e0e10 100% );--gs-tabbar-label: #8e8e93;--gs-tabbar-label-selected: #ffffff;--gs-icon-inactive-top: #b9b9be;--gs-icon-inactive-bottom: #5f5f64;--gs-icon-active-top: #a6d0ff;--gs-icon-active-bottom: #2a70e0;display:flex;align-items:stretch;box-sizing:border-box;width:100%;height:var(--gs-tabbar-height);margin:0;padding:0;background:var(--gs-gloss-soft),var(--gs-tabbar-gradient);border-top:1px solid #000000;box-shadow:inset 0 1px #ffffff24;user-select:none;-webkit-user-select:none}.gs-tabbar-item{--gs-tabbar-item-sunk: inset 0 1px 1px rgba(0, 0, 0, .45);position:relative;flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;margin:0;padding:3px 2px 2px;background:none;border:0;border-radius:0;color:var(--gs-tabbar-label);text-shadow:var(--gs-text-shadow-dark);cursor:pointer;outline:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.gs-tabbar-item:before{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:4px;background:transparent;pointer-events:none}.gs-tabbar-item__icon,.gs-tabbar-item__label{position:relative}.gs-tabbar-item__icon{display:inline-flex;flex-shrink:0;line-height:0}.gs-tabbar-item__label{max-width:100%;font:700 10px/1.2 var(--gs-font);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gs-tabbar-item__badge{position:absolute;top:-3px;inset-inline-end:-11px;transform:scale(.85);transform-origin:100% 0}[dir=rtl] .gs-tabbar-item__badge{transform-origin:0 0}.gs-tabbar-item--selected{color:var(--gs-tabbar-label-selected)}.gs-tabbar-item--selected:before{background:#ffffff1a;box-shadow:var(--gs-tabbar-item-sunk)}.gs-tabbar-item:active:not(:disabled):not(.gs-tabbar-item--selected):before{background:#ffffff0f}.gs-tabbar-item:focus-visible:before{box-shadow:var(--gs-focus-ring)}.gs-tabbar-item--selected:focus-visible:before{box-shadow:var(--gs-focus-ring),var(--gs-tabbar-item-sunk)}.gs-tabbar-item:disabled{opacity:.45;cursor:default}.gs-list{display:flex;flex-direction:column;width:100%;min-width:0;font-family:var(--gs-font);line-height:var(--gs-line-height)}.gs-list__header{padding:0 10px 6px;font-size:var(--gs-font-size-md);font-weight:700;color:var(--gs-header-text);text-shadow:var(--gs-text-emboss)}.gs-list__footer{padding:6px 10px 0;font-size:var(--gs-font-size-sm);font-weight:400;color:var(--gs-header-text);text-align:center;text-shadow:var(--gs-text-emboss)}.gs-list__group{display:flex;flex-direction:column;min-width:0;background:var(--gs-surface)}.gs-list--grouped .gs-list__group{border:var(--gs-border);border-radius:var(--gs-radius-lg);overflow:hidden;box-shadow:0 1px #ffffff0f}.gs-list--plain .gs-list__group{border-top:1px solid var(--gs-separator);border-bottom:1px solid var(--gs-separator)}.gs-list-item{--gs-list-subtitle: var(--gs-text-secondary);--gs-list-glyph: var(--gs-text-secondary);display:flex;align-items:center;gap:10px;box-sizing:border-box;width:100%;min-width:0;min-height:var(--gs-control-height);margin:0;padding:6px 10px;font:inherit;font-family:var(--gs-font);text-align:start;text-decoration:none;color:var(--gs-text);border:0;border-radius:0;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--gs-surface-gloss),var(--gs-surface);box-shadow:inset 0 1px 0 var(--gs-separator-light);border-top:1px solid var(--gs-separator);cursor:default;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.gs-root[data-theme=light] .gs-list-item,.gs-theme-light .gs-list-item{--gs-list-subtitle: var(--gs-text-tertiary);--gs-list-glyph: var(--gs-text);--gs-icon-inactive-top: #b9b9be;--gs-icon-inactive-bottom: #5f5f64}.gs-list-item:first-child{border-top:0}.gs-list-item--interactive{cursor:pointer;touch-action:manipulation}.gs-list-item__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:29px;height:29px;color:var(--gs-list-glyph)}.gs-list-item__icon--tile{--gs-list-tile-gel: var(--gs-gradient-dark);color:var(--gs-white);background:var(--gs-gloss),var(--gs-list-tile-gel);border:var(--gs-border);border-radius:6px;box-shadow:var(--gs-emboss)}.gs-list-item__icon--tile>.gs-icon--flat{filter:drop-shadow(0 -1px 0 rgba(0,0,0,.7))}.gs-list-item__icon--gray{--gs-list-tile-gel: var(--gs-gradient-dark)}.gs-list-item__icon--blue{--gs-list-tile-gel: var(--gs-gradient-blue)}.gs-list-item__icon--red{--gs-list-tile-gel: var(--gs-gradient-red)}.gs-list-item__body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.gs-list-item__title,.gs-list-item__subtitle,.gs-list-item__detail{display:block;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gs-list-item__title{font-size:var(--gs-font-size-lg);font-weight:700;color:var(--gs-text);text-shadow:var(--gs-text-emboss)}.gs-list-item__subtitle{font-size:14px;color:var(--gs-list-subtitle)}.gs-list-item__detail{flex:0 1 auto;max-width:50%;font-size:var(--gs-font-size-lg);color:var(--gs-text-link);text-shadow:var(--gs-text-emboss);text-align:end}.gs-list-item__accessory{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:20px}.gs-list-item__accessory-icon--chevron{color:var(--gs-gray-400)}.gs-list-item__accessory-icon--checkmark,.gs-list-item__accessory-icon--detail{color:var(--gs-blue-300)}[dir=rtl] .gs-list-item__accessory-icon--chevron,[dir=rtl] .gs-list-item__accessory-icon--detail{transform:scaleX(-1)}.gs-list-item:focus-visible{outline:none;box-shadow:inset var(--gs-focus-ring)}.gs-list-item--interactive:active:not(:disabled):not(.gs-list-item--disabled),.gs-list-item--selected{--gs-text-emboss: var(--gs-text-shadow-dark);background:var(--gs-gloss-soft),var(--gs-gradient-blue)}.gs-list-item--interactive:active:not(:disabled):not(.gs-list-item--disabled) .gs-list-item__title,.gs-list-item--interactive:active:not(:disabled):not(.gs-list-item--disabled) .gs-list-item__subtitle,.gs-list-item--interactive:active:not(:disabled):not(.gs-list-item--disabled) .gs-list-item__detail,.gs-list-item--interactive:active:not(:disabled):not(.gs-list-item--disabled) .gs-list-item__icon,.gs-list-item--interactive:active:not(:disabled):not(.gs-list-item--disabled) .gs-list-item__accessory-icon,.gs-list-item--selected .gs-list-item__title,.gs-list-item--selected .gs-list-item__subtitle,.gs-list-item--selected .gs-list-item__detail,.gs-list-item--selected .gs-list-item__icon,.gs-list-item--selected .gs-list-item__accessory-icon{color:var(--gs-white)}.gs-list-item--disabled,.gs-list-item:disabled{opacity:.5;cursor:default}.gs-alert-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;box-sizing:border-box;background:#00000073;font-family:var(--gs-font);animation:gs-alert-fade var(--gs-duration) var(--gs-ease) both}.gs-alert-backdrop--contained{position:absolute}.gs-alert{--gs-alert-gel-default: linear-gradient( to bottom, #6787b8 0%, #3f5f92 49%, #2f4e80 50%, #223d6b 100% );--gs-alert-gel-default-pressed: linear-gradient( to bottom, #16294d 0%, #1e3a68 50%, #26467a 100% );--gs-alert-gel-primary: linear-gradient( to bottom, #f6f7fa 0%, #dfe3ea 49%, #cfd5df 50%, #b9c1ce 100% );--gs-alert-gel-primary-pressed: linear-gradient( to bottom, #a3abb9 0%, #b7bfcb 50%, #c4cbd6 100% );box-sizing:border-box;width:284px;max-width:calc(100% - 20px);padding:14px 12px 10px;display:flex;flex-direction:column;color:var(--gs-white);text-align:center;line-height:var(--gs-line-height);border:2px solid rgba(255,255,255,.72);border-radius:var(--gs-radius-lg);background:radial-gradient(ellipse 120% 60% at 50% -10%,#ffffff47,#ffffff0f 55%,#fff0 60%),linear-gradient(to bottom,#2a4d8a,#1c3a6f 40%,#0f2650);box-shadow:var(--gs-shadow-pop),inset 0 0 0 1px #0009;animation:gs-alert-pop .22s var(--gs-ease) both}.gs-alert:focus{outline:none}.gs-alert__title{margin:0 0 6px;font-family:var(--gs-font);font-size:18px;font-weight:700;color:var(--gs-white);text-shadow:0 -1px 0 rgba(0,0,0,.6);overflow-wrap:break-word}.gs-alert__message{margin:0 0 14px;font-family:var(--gs-font);font-size:var(--gs-font-size-md);font-weight:400;line-height:1.3;color:var(--gs-white);text-shadow:0 -1px 0 rgba(0,0,0,.6);overflow-wrap:break-word}.gs-alert__title+.gs-alert__actions{margin-top:8px}.gs-alert__actions{display:flex;flex-direction:row;gap:10px}.gs-alert__actions--stacked{flex-direction:column}.gs-alert__action{flex:1 1 0;min-width:0;box-sizing:border-box;height:43px;padding:0 8px;margin:0;font-family:var(--gs-font);font-size:17px;font-weight:700;line-height:1;color:var(--gs-white);text-shadow:var(--gs-text-shadow-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--gs-gloss),var(--gs-alert-gel-default);border:1px solid rgba(0,0,0,.85);border-radius:var(--gs-radius-md);box-shadow:inset 0 1px #ffffff4d,0 1px #ffffff14;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;touch-action:manipulation}.gs-alert__actions--stacked .gs-alert__action{flex:none;width:100%}.gs-alert__action--default{background:var(--gs-gloss),var(--gs-alert-gel-default)}.gs-alert__action--primary{background:var(--gs-gloss),var(--gs-alert-gel-primary);color:#0f2650;text-shadow:var(--gs-text-shadow-light)}.gs-alert__action--destructive{background:var(--gs-gloss),var(--gs-gradient-red)}.gs-alert__action:focus-visible{outline:none;box-shadow:var(--gs-focus-ring),inset 0 1px #ffffff4d}.gs-alert__action--default:active{background:var(--gs-alert-gel-default-pressed);box-shadow:inset 0 2px 4px #0009}.gs-alert__action--primary:active{background:var(--gs-alert-gel-primary-pressed);box-shadow:inset 0 2px 4px #0009}.gs-alert__action--destructive:active{background:var(--gs-gradient-red-pressed);box-shadow:inset 0 2px 4px #0009}@keyframes gs-alert-fade{0%{opacity:0}to{opacity:1}}@keyframes gs-alert-pop{0%{transform:scale(1.12);opacity:0}60%{transform:scale(.98);opacity:1}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.gs-alert-backdrop,.gs-alert{animation:none}}.gs-segmented{--gs-segment-gel: var(--gs-gradient-barbutton);--gs-segment-gel-pressed: var(--gs-gradient-barbutton-pressed);--gs-segment-gel-selected: var(--gs-gradient-blue-pressed);--gs-segment-sunk: inset 0 2px 4px rgba(0, 0, 0, .65), inset 0 -1px 0 rgba(255, 255, 255, .08);--gs-segment-divider: var(--gs-separator);--gs-segment-divider-rim: rgba(255, 255, 255, .12);--gs-segment-divider-rim-x: 1px;display:inline-grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);box-sizing:border-box;max-width:100%;height:var(--gs-control-height);margin:0;padding:0;vertical-align:middle;font-family:var(--gs-font);font-size:var(--gs-font-size-md);border:var(--gs-border);border-radius:var(--gs-radius-sm);overflow:hidden;box-shadow:var(--gs-rim-dark);pointer-events:auto;user-select:none;-webkit-user-select:none}.gs-segmented--sm{height:30px;font-size:var(--gs-font-size-sm)}.gs-segmented--md{height:var(--gs-control-height);font-size:var(--gs-font-size-md)}.gs-segmented--dark{--gs-segment-gel: var(--gs-gradient-barbutton);--gs-segment-gel-pressed: var(--gs-gradient-barbutton-pressed);--gs-segment-gel-selected: var(--gs-gradient-blue-pressed)}.gs-segmented--blue{--gs-gradient-barbutton: linear-gradient(to bottom, #8aa4c8 0%, #6684ad 49%, #51739f 50%, #45668f 100%);--gs-gradient-barbutton-pressed: linear-gradient(to bottom, #2c4f82 0%, #35598e 50%, #3f6499 100%);--gs-text-shadow-on-bar: 0 -1px 0 rgba(0, 0, 0, .4);--gs-segment-divider: rgba(0, 0, 0, .45);--gs-segment-divider-rim: rgba(255, 255, 255, .3)}.gs-root[data-theme=light] .gs-segmented,.gs-theme-light .gs-segmented{--gs-segment-divider: rgba(0, 0, 0, .45);--gs-segment-divider-rim: rgba(255, 255, 255, .3)}.gs-segmented--block{display:grid;width:100%}.gs-segment{display:flex;align-items:center;justify-content:center;gap:5px;box-sizing:border-box;min-width:0;margin:0;padding:0 12px;font-family:inherit;font-size:inherit;font-weight:700;line-height:var(--gs-line-height);color:var(--gs-text-on-bar);text-shadow:var(--gs-text-shadow-on-bar);white-space:nowrap;background:var(--gs-gloss),var(--gs-segment-gel);border:0;border-radius:0;box-shadow:var(--gs-rim-light);cursor:pointer;outline:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background var(--gs-duration) var(--gs-ease)}:where(.gs-segment)+.gs-segment{border-inline-start:1px solid var(--gs-segment-divider);box-shadow:var(--gs-rim-light),inset var(--gs-segment-divider-rim-x) 0 0 var(--gs-segment-divider-rim)}:is([dir=rtl] .gs-segment,.gs-segment:dir(rtl)){--gs-segment-divider-rim-x: -1px}.gs-segment__label{min-width:0;overflow:hidden;text-overflow:ellipsis}.gs-segment__icon{flex-shrink:0;color:var(--gs-text-on-bar);filter:drop-shadow(0 -1px 0 rgba(0,0,0,.7))}.gs-segment--selected{background:var(--gs-segment-gel-selected);box-shadow:var(--gs-segment-sunk);cursor:default}.gs-segment:active:not(:disabled):not(.gs-segment--selected){background:var(--gs-segment-gel-pressed);box-shadow:var(--gs-segment-sunk)}.gs-segment:focus-visible{box-shadow:inset var(--gs-focus-ring)}.gs-segment--selected:focus-visible{box-shadow:inset var(--gs-focus-ring),var(--gs-segment-sunk)}.gs-segment--disabled,.gs-segment:disabled{opacity:.5;cursor:default}.gs-slider{--gs-slider-pct: 0;--gs-slider-track: 9px;--gs-slider-thumb: 23px;--gs-slider-knob-gel: linear-gradient( to bottom, #fdfdfd 0%, #e6e6ea 49%, #d6d6db 50%, #c4c4ca 100% );--gs-slider-knob-gel-pressed: linear-gradient( to bottom, #d5d5da 0%, #c7c7cc 49%, #bebec3 50%, #b8b8be 100% );--gs-slider-knob-shadow: 0 0 0 1px rgba(0, 0, 0, .85), 0 1px 2px rgba(0, 0, 0, .6), inset 0 1px 0 rgba(255, 255, 255, .9);--gs-slider-fill: calc( var(--gs-slider-thumb) / 2 + (100% - var(--gs-slider-thumb)) * var(--gs-slider-pct) / 100 );display:flex;align-items:center;gap:var(--gs-space-2);min-width:0;font-family:var(--gs-font);line-height:var(--gs-line-height);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.gs-slider__input{flex:1;min-width:0;height:var(--gs-slider-thumb);margin:0;padding:0;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.gs-slider__input:focus-visible{outline:none}.gs-slider__input:disabled{cursor:default}.gs-slider__input::-webkit-slider-runnable-track{box-sizing:border-box;height:var(--gs-slider-track);border:var(--gs-border);border-radius:var(--gs-radius-pill);background-color:var(--gs-surface-sunken);background-image:var(--gs-gloss),var(--gs-gradient-blue);background-size:var(--gs-slider-fill) 100%;background-repeat:no-repeat;box-shadow:var(--gs-inset)}.gs-slider__input::-moz-range-track{box-sizing:border-box;height:var(--gs-slider-track);border:var(--gs-border);border-radius:var(--gs-radius-pill);background-color:var(--gs-surface-sunken);background-image:var(--gs-gloss),var(--gs-gradient-blue);background-size:var(--gs-slider-fill) 100%;background-repeat:no-repeat;box-shadow:var(--gs-inset)}:is([dir=rtl] .gs-slider__input,.gs-slider__input:dir(rtl))::-webkit-slider-runnable-track{background-position:100% 0}:is([dir=rtl] .gs-slider__input,.gs-slider__input:dir(rtl))::-moz-range-track{background-position:100% 0}.gs-slider__input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;width:var(--gs-slider-thumb);height:var(--gs-slider-thumb);margin-top:calc((var(--gs-slider-track) - 2px - var(--gs-slider-thumb)) / 2);border:0;border-radius:50%;background:var(--gs-gloss),var(--gs-slider-knob-gel);box-shadow:var(--gs-slider-knob-shadow)}.gs-slider__input::-moz-range-thumb{box-sizing:border-box;width:var(--gs-slider-thumb);height:var(--gs-slider-thumb);border:0;border-radius:50%;background:var(--gs-gloss),var(--gs-slider-knob-gel);box-shadow:var(--gs-slider-knob-shadow)}.gs-slider__input:active:not(:disabled)::-webkit-slider-thumb{background:var(--gs-gloss),var(--gs-slider-knob-gel-pressed)}.gs-slider__input:active:not(:disabled)::-moz-range-thumb{background:var(--gs-gloss),var(--gs-slider-knob-gel-pressed)}.gs-slider__input:focus-visible::-webkit-slider-thumb{box-shadow:var(--gs-focus-ring),var(--gs-slider-knob-shadow)}.gs-slider__input:focus-visible::-moz-range-thumb{box-shadow:var(--gs-focus-ring),var(--gs-slider-knob-shadow)}.gs-slider__icon{flex-shrink:0;color:var(--gs-gray-400)}.gs-slider__value{flex-shrink:0;min-width:3ch;font-size:var(--gs-font-size-sm);font-weight:400;font-variant-numeric:tabular-nums;color:var(--gs-text-secondary);text-align:end;text-shadow:var(--gs-text-emboss)}.gs-slider--disabled{opacity:.5}.gs-slider--disabled .gs-slider__input{cursor:default}.gs-actionsheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;flex-direction:column;justify-content:flex-end;box-sizing:border-box;background:#0006;font-family:var(--gs-font);animation:gs-actionsheet-fade var(--gs-duration) var(--gs-ease) both}.gs-actionsheet-backdrop--contained{position:absolute}.gs-actionsheet{--gs-actionsheet-gel-default: linear-gradient( to bottom, #f6f7fa 0%, #dfe3ea 49%, #cfd5df 50%, #b9c1ce 100% );--gs-actionsheet-gel-default-pressed: linear-gradient( to bottom, #a3abb9 0%, #b7bfcb 50%, #c4cbd6 100% );--gs-actionsheet-gel-cancel: linear-gradient( to bottom, #3a3a3e 0%, #262629 49%, #1b1b1e 50%, #111113 100% );--gs-actionsheet-gel-cancel-pressed: linear-gradient( to bottom, #0a0a0b 0%, #141416 50%, #1c1c1f 100% );--gs-actionsheet-bg: linear-gradient( to bottom, rgba(70, 70, 75, .92) 0%, rgba(40, 40, 44, .94) 50%, rgba(20, 20, 23, .96) 100% );--gs-actionsheet-edge: rgba(255, 255, 255, .25);--gs-actionsheet-title: var(--gs-text-secondary);--gs-actionsheet-title-shadow: var(--gs-text-shadow-dark);box-sizing:border-box;width:100%;padding:10px 8px calc(8px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;color:var(--gs-white);text-align:center;line-height:var(--gs-line-height);background:var(--gs-actionsheet-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-top:1px solid var(--gs-actionsheet-edge);box-shadow:0 -1px #000000e6,0 -8px 24px #00000080;animation:gs-actionsheet-slide .26s cubic-bezier(.2,.8,.2,1) both}.gs-root[data-theme=light] .gs-actionsheet,.gs-theme-light .gs-actionsheet{--gs-actionsheet-bg: linear-gradient( to bottom, rgba(120, 132, 152, .92) 0%, rgba(70, 82, 104, .95) 50%, rgba(40, 50, 70, .96) 100% );--gs-actionsheet-edge: rgba(255, 255, 255, .5);--gs-actionsheet-title: rgba(255, 255, 255, .92);--gs-actionsheet-title-shadow: 0 -1px 0 rgba(0, 0, 0, .5)}.gs-actionsheet:focus{outline:none}.gs-actionsheet__title{margin:0;padding:4px 8px 12px;font-family:var(--gs-font);font-size:var(--gs-font-size-sm);font-weight:700;color:var(--gs-actionsheet-title);text-shadow:var(--gs-actionsheet-title-shadow);overflow-wrap:break-word}.gs-actionsheet__actions{display:flex;flex-direction:column;gap:8px}.gs-actionsheet__action{flex:none;width:100%;min-width:0;box-sizing:border-box;height:46px;padding:0 8px;margin:0;font-family:var(--gs-font);font-size:18px;font-weight:700;line-height:1;color:var(--gs-white);text-shadow:var(--gs-text-shadow-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--gs-gloss),var(--gs-actionsheet-gel-default);border:1px solid rgba(0,0,0,.9);border-radius:var(--gs-radius-md);box-shadow:inset 0 1px #ffffff59,0 1px #ffffff0f;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;touch-action:manipulation}.gs-actionsheet__action--default{background:var(--gs-gloss),var(--gs-actionsheet-gel-default);color:#16181d;text-shadow:var(--gs-text-shadow-light)}.gs-actionsheet__action--destructive{background:var(--gs-gloss),var(--gs-gradient-red)}.gs-actionsheet__action--cancel{margin-top:8px;background:var(--gs-gloss-soft),var(--gs-actionsheet-gel-cancel)}.gs-actionsheet__action:focus-visible{outline:none;box-shadow:var(--gs-focus-ring),inset 0 1px #ffffff59}.gs-actionsheet__action:disabled{opacity:.5;cursor:default}.gs-actionsheet__action--default:active:not(:disabled){background:var(--gs-actionsheet-gel-default-pressed);box-shadow:inset 0 2px 4px #0009}.gs-actionsheet__action--destructive:active:not(:disabled){background:var(--gs-gradient-red-pressed);box-shadow:inset 0 2px 4px #0009}.gs-actionsheet__action--cancel:active:not(:disabled){background:var(--gs-actionsheet-gel-cancel-pressed);box-shadow:inset 0 2px 4px #0009}@keyframes gs-actionsheet-fade{0%{opacity:0}to{opacity:1}}@keyframes gs-actionsheet-slide{0%{transform:translateY(100%)}to{transform:none}}@media(prefers-reduced-motion:reduce){.gs-actionsheet-backdrop,.gs-actionsheet{animation:none}}.gs-picker{--gs-picker-rows: 5;--gs-picker-row-height: var(--gs-control-height);--gs-picker-drum: linear-gradient( to bottom, var(--gs-gray-700), var(--gs-gray-600) 50%, var(--gs-gray-700) );--gs-picker-drum-outline: rgba(0, 0, 0, .8);--gs-picker-text: rgba(255, 255, 255, .75);--gs-picker-text-selected: var(--gs-white);--gs-picker-text-shadow: var(--gs-text-shadow-dark);--gs-picker-shade: rgba(0, 0, 0, .85);--gs-picker-selection: linear-gradient(to bottom, rgba(110, 150, 220, .35), rgba(60, 100, 190, .4));--gs-picker-selection-edge-top: rgba(255, 255, 255, .35);--gs-picker-selection-edge-bottom: rgba(0, 0, 0, .7);--gs-picker-selection-rim: rgba(255, 255, 255, .2);--gs-picker-frame: linear-gradient(to bottom, #5a5a5f, var(--gs-gray-700) 8%, #1b1b1e 92%, #0c0c0d);--gs-picker-frame-edge-top: rgba(255, 255, 255, .2);--gs-picker-frame-edge-bottom: var(--gs-black);--gs-picker-divider: rgba(0, 0, 0, .9);--gs-picker-divider-rim: rgba(255, 255, 255, .08);display:flex;flex-direction:column;width:100%;min-width:0;font-family:var(--gs-font);line-height:var(--gs-line-height)}.gs-picker--rows-3{--gs-picker-rows: 3}.gs-picker--rows-5{--gs-picker-rows: 5}.gs-picker--rows-7{--gs-picker-rows: 7}.gs-picker__frame{display:flex;gap:0;min-width:0;padding:8px 6px;background:var(--gs-picker-frame);border-top:1px solid var(--gs-picker-frame-edge-top);border-bottom:1px solid var(--gs-picker-frame-edge-bottom)}.gs-picker__column{position:relative;flex:1;min-width:0;overflow:hidden;background:var(--gs-picker-drum);box-shadow:inset 0 0 0 1px var(--gs-picker-drum-outline)}.gs-picker__column:first-child{border-start-start-radius:4px;border-end-start-radius:4px}.gs-picker__column:last-child{border-start-end-radius:4px;border-end-end-radius:4px}.gs-picker__column:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;border-radius:inherit;box-shadow:inset var(--gs-focus-ring);opacity:0;pointer-events:none}.gs-picker__column:has(>.gs-picker__drum:focus-visible):after{opacity:1}.gs-picker__divider{flex:0 0 2px;width:2px;background:linear-gradient(to right,var(--gs-picker-divider) 50%,var(--gs-picker-divider-rim) 50%)}[dir=rtl] .gs-picker__divider{background:linear-gradient(to left,var(--gs-picker-divider) 50%,var(--gs-picker-divider-rim) 50%)}.gs-picker__drum{position:relative;height:calc(var(--gs-picker-rows) * var(--gs-picker-row-height));overflow-y:auto;overscroll-behavior:contain;scroll-snap-type:y mandatory;outline:none;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.gs-picker__drum::-webkit-scrollbar{display:none}.gs-picker__spacer{height:calc((var(--gs-picker-rows) - 1) / 2 * var(--gs-picker-row-height))}.gs-picker__row{display:block;box-sizing:border-box;height:var(--gs-picker-row-height);padding:0 10px;scroll-snap-align:center;font-family:var(--gs-font);font-size:var(--gs-font-size-xl);font-weight:700;line-height:var(--gs-picker-row-height);color:var(--gs-picker-text);text-align:center;text-shadow:var(--gs-picker-text-shadow);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.gs-picker__column--left .gs-picker__row{text-align:start}.gs-picker__column--right .gs-picker__row{text-align:end}.gs-picker__row--selected{color:var(--gs-picker-text-selected)}.gs-picker__row--disabled{color:var(--gs-text-disabled)}.gs-picker__shade-top,.gs-picker__shade-bottom{position:absolute;inset-inline:0;height:40%;z-index:1;pointer-events:none}.gs-picker__shade-top{top:0;background:linear-gradient(to bottom,var(--gs-picker-shade),rgba(0,0,0,0))}.gs-picker__shade-bottom{bottom:0;background:linear-gradient(to top,var(--gs-picker-shade),rgba(0,0,0,0))}.gs-picker__selection{position:absolute;inset-inline:0;top:50%;height:var(--gs-picker-row-height);transform:translateY(-50%);z-index:2;pointer-events:none;background:var(--gs-gloss),var(--gs-picker-selection);border-top:1px solid var(--gs-picker-selection-edge-top);border-bottom:1px solid var(--gs-picker-selection-edge-bottom);box-shadow:inset 0 1px 0 var(--gs-picker-selection-rim)}.gs-picker--disabled .gs-picker__drum{pointer-events:none}.gs-picker--disabled .gs-picker__row{color:var(--gs-text-disabled)}.gs-picker--disabled .gs-picker__selection{opacity:.6}.gs-root[data-theme=light] .gs-picker,.gs-theme-light .gs-picker{--gs-picker-drum: linear-gradient(to bottom, #e9e9ec, #ffffff 50%, #e9e9ec);--gs-picker-drum-outline: rgba(0, 0, 0, .35);--gs-picker-text: rgba(0, 0, 0, .65);--gs-picker-text-selected: var(--gs-text);--gs-picker-text-shadow: var(--gs-text-emboss);--gs-picker-shade: rgba(0, 0, 0, .35);--gs-picker-selection: linear-gradient(to bottom, rgba(110, 150, 220, .28), rgba(60, 100, 190, .35));--gs-picker-selection-edge-top: rgba(255, 255, 255, .85);--gs-picker-selection-edge-bottom: rgba(0, 0, 0, .35);--gs-picker-selection-rim: rgba(255, 255, 255, .6);--gs-picker-frame: linear-gradient(to bottom, #9aa9be, #6d84a2 8%, #5b7397 92%, #3e5170);--gs-picker-frame-edge-top: rgba(255, 255, 255, .5);--gs-picker-frame-edge-bottom: var(--gs-bar-border);--gs-picker-divider: rgba(0, 0, 0, .35);--gs-picker-divider-rim: rgba(255, 255, 255, .6)}.gs-progress{--gs-progress-height: 9px;--gs-progress-gel: var(--gs-gradient-blue);--gs-progress-edge-x: 1px;--gs-progress-slide-x: 185.7%;display:flex;align-items:center;gap:var(--gs-space-2);width:100%;min-width:0;font-family:var(--gs-font);line-height:var(--gs-line-height)}.gs-progress--sm{--gs-progress-height: 9px}.gs-progress--md{--gs-progress-height: 12px}.gs-progress--blue{--gs-progress-gel: var(--gs-gradient-blue)}.gs-progress--gray{--gs-progress-gel: linear-gradient( to bottom, #e9e9ee 0%, #dcdce1 49%, #c6c6cd 50%, #b8b8c0 100% )}.gs-progress__track{display:block;flex:1;min-width:0;height:var(--gs-progress-height);overflow:hidden;border:var(--gs-border);border-radius:var(--gs-radius-pill);background:var(--gs-surface-sunken);box-shadow:var(--gs-inset);box-sizing:border-box}.gs-progress__fill{display:block;width:0;height:100%;border-radius:inherit;background:var(--gs-gloss),var(--gs-progress-gel);box-shadow:inset 0 1px #ffffff59,var(--gs-progress-edge-x) 0 1px #00000080;transition:width .24s var(--gs-ease)}.gs-progress--indeterminate .gs-progress__fill{width:35%;transition:none;animation:gs-progress-slide 1.4s ease-in-out infinite alternate}@keyframes gs-progress-slide{0%{transform:translate(0)}to{transform:translate(var(--gs-progress-slide-x, 185.7%))}}:is([dir=rtl] .gs-progress,.gs-progress:dir(rtl)){--gs-progress-edge-x: -1px;--gs-progress-slide-x: -185.7%}.gs-progress__value{flex-shrink:0;min-width:4ch;font-size:var(--gs-font-size-sm);font-variant-numeric:tabular-nums;color:var(--gs-text-secondary);text-align:end;text-shadow:var(--gs-text-emboss);white-space:nowrap}.gs-spinner{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;vertical-align:middle;line-height:0}.gs-spinner--white{color:var(--gs-spinner-white, var(--gs-white))}.gs-spinner--gray{color:var(--gs-gray-400)}:where(.gs-root[data-theme=light],.gs-theme-light) .gs-spinner{--gs-spinner-white: var(--gs-gray-400)}.gs-spinner__svg{display:block;transform-origin:50% 50%;animation:gs-spinner-step 1s steps(12,end) infinite}.gs-spinner__spoke{fill:currentColor}@keyframes gs-spinner-step{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.gs-progress__fill{transition:none}.gs-progress--indeterminate .gs-progress__fill{animation-duration:2.8s}.gs-spinner__svg{animation-duration:3s}}.gs-statusbar{height:var(--gs-statusbar-height);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 6px;font-family:var(--gs-font);font-size:12px;font-weight:700;color:var(--gs-white);text-shadow:var(--gs-text-shadow-dark);border-bottom:1px solid var(--gs-bar-border);flex-shrink:0;-webkit-user-select:none;user-select:none;box-sizing:border-box}.gs-statusbar--black{background:var(--gs-statusbar-gradient)}.gs-statusbar--gray{background:linear-gradient(to bottom,#78787ed9,#505056d9 49%,#3c3c42d9 50%,#28282ed9);border-bottom-color:#0009}.gs-statusbar__left,.gs-statusbar__right{display:flex;align-items:center;gap:5px;min-width:0}.gs-statusbar__right{justify-content:flex-end}.gs-statusbar__carrier{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gs-statusbar__net{font-size:11px}.gs-statusbar__signal{display:inline-flex;align-items:flex-end;gap:1px;height:9px}.gs-statusbar__signal i{display:block;width:3px;border-radius:1px;background:#ffffff47;box-shadow:0 -1px #0006}.gs-statusbar__signal i:nth-child(1){height:3px}.gs-statusbar__signal i:nth-child(2){height:4.5px}.gs-statusbar__signal i:nth-child(3){height:6px}.gs-statusbar__signal i:nth-child(4){height:7.5px}.gs-statusbar__signal i:nth-child(5){height:9px}.gs-statusbar__signal[data-bars="1"] i:nth-child(-n+1),.gs-statusbar__signal[data-bars="2"] i:nth-child(-n+2),.gs-statusbar__signal[data-bars="3"] i:nth-child(-n+3),.gs-statusbar__signal[data-bars="4"] i:nth-child(-n+4),.gs-statusbar__signal[data-bars="5"] i:nth-child(-n+5){background:var(--gs-white)}.gs-statusbar__wifi{filter:drop-shadow(0 -1px 0 rgba(0,0,0,.5))}.gs-statusbar__battery{--gs-battery: 100%;position:relative;width:22px;height:10px;border:1px solid var(--gs-white);border-radius:2px;padding:1px;box-sizing:border-box;display:grid;place-items:center}.gs-statusbar__battery:after{content:"";position:absolute;right:-3px;top:2px;width:2px;height:4px;background:var(--gs-white);border-radius:0 1px 1px 0}.gs-statusbar__battery i{position:absolute;left:1px;top:1px;bottom:1px;width:var(--gs-battery);min-width:2px;background:linear-gradient(to bottom,#c9f2b4,#63c34b 50%,#3fa22f 51%,#2f8a22);border-radius:1px;transition:width var(--gs-duration) var(--gs-ease)}.gs-statusbar__battery--low i{background:linear-gradient(to bottom,#ffb3ae,#e0463f 50%,#c02b25 51%,#9c1712)}.gs-statusbar__bolt{position:relative;z-index:1}.gs-toolbar{--gs-toolbar-title: var(--gs-text-secondary);--gs-toolbar-title-main: rgba(255, 255, 255, .85);--gs-toolbar-title-sub: var(--gs-text-secondary);--gs-toolbar-title-shadow: var(--gs-text-shadow-dark);position:relative;display:flex;align-items:center;gap:6px;box-sizing:border-box;flex-shrink:0;width:100%;height:var(--gs-bar-height);margin:0;padding:0 8px;font-family:var(--gs-font);color:var(--gs-text-on-bar);background:var(--gs-gloss-soft),var(--gs-gradient-bar);-webkit-user-select:none;user-select:none}.gs-toolbar--bottom{border-top:1px solid var(--gs-bar-border);box-shadow:inset 0 1px 0 var(--gs-bar-rim)}.gs-toolbar--top{border-bottom:1px solid var(--gs-bar-border);box-shadow:inset 0 1px 0 var(--gs-bar-rim)}.gs-toolbar__spacer{flex:1 1 0;min-width:0}.gs-toolbar__title{display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;padding:1px 0;font:700 12px / var(--gs-line-height) var(--gs-font);color:var(--gs-toolbar-title);text-align:center;text-shadow:var(--gs-toolbar-title-shadow);pointer-events:none}.gs-toolbar__title-main,.gs-toolbar__title-sub{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gs-toolbar__title-sub{font-size:var(--gs-font-size-xs)}.gs-toolbar__title--stacked .gs-toolbar__title-main{color:var(--gs-toolbar-title-main)}.gs-toolbar__title--stacked .gs-toolbar__title-sub{color:var(--gs-toolbar-title-sub)}.gs-toolbar-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;flex-shrink:0;min-width:var(--gs-control-height);height:var(--gs-control-height);max-height:100%;margin:0;padding:0;background:none;border:0;border-radius:6px;color:var(--gs-text-on-bar);cursor:pointer;outline:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.gs-toolbar-button__icon{position:relative;display:inline-flex;flex-shrink:0;line-height:0;transition:filter var(--gs-duration) var(--gs-ease),transform var(--gs-duration) var(--gs-ease)}.gs-toolbar-button__badge{position:absolute;top:-4px;inset-inline-end:-10px;transform:scale(.85);transform-origin:100% 0}[dir=rtl] .gs-toolbar-button__badge{transform-origin:0 0}.gs-toolbar-button:active:not(:disabled) .gs-toolbar-button__icon{filter:brightness(.7);transform:translateY(1px)}.gs-toolbar-button:focus-visible{box-shadow:var(--gs-focus-ring)}.gs-toolbar-button:disabled,.gs-toolbar-button--disabled{opacity:.4;cursor:default}.gs-toolbar .gs-spinner{--gs-spinner-white: var(--gs-white)}.gs-root[data-theme=light] .gs-toolbar,.gs-theme-light .gs-toolbar,.gs-toolbar--blue{--gs-toolbar-title: var(--gs-text-on-bar);--gs-toolbar-title-main: var(--gs-text-on-bar);--gs-toolbar-title-sub: rgba(255, 255, 255, .85);--gs-toolbar-title-shadow: var(--gs-text-shadow-on-bar)}.gs-toolbar--blue{--gs-gradient-bar: linear-gradient(to bottom, #b0bccd 0%, #8a9bb4 49%, #6d84a2 50%, #5b7397 100%);--gs-bar-border: #2d3642;--gs-bar-rim: rgba(255, 255, 255, .45);--gs-gradient-barbutton: linear-gradient(to bottom, #8aa4c8 0%, #6684ad 49%, #51739f 50%, #45668f 100%);--gs-gradient-barbutton-pressed: linear-gradient(to bottom, #2c4f82 0%, #35598e 50%, #3f6499 100%);--gs-text-on-bar: #ffffff;--gs-text-shadow-on-bar: 0 -1px 0 rgba(0, 0, 0, .4);--gs-icon-inactive-top: #ffffff;--gs-icon-inactive-bottom: #c9d3e0}.gs-pagecontrol{--gs-pagecontrol-dot: 6px;--gs-pagecontrol-inactive: rgba(255, 255, 255, .35);--gs-pagecontrol-inactive-pressed: rgba(255, 255, 255, .55);--gs-pagecontrol-inactive-shadow: inset 0 1px 1px rgba(0, 0, 0, .5), 0 1px 0 rgba(255, 255, 255, .08);--gs-pagecontrol-current: linear-gradient( to bottom, var(--gs-white) 0%, var(--gs-gray-100) 50%, var(--gs-gray-200) 51%, #c9c9cf 100% );--gs-pagecontrol-current-shadow: 0 0 0 1px rgba(0, 0, 0, .35), 0 1px 1px rgba(0, 0, 0, .5);display:inline-flex;align-items:center;justify-content:center;gap:4px;box-sizing:border-box;height:36px;margin:0;padding:0;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.gs-pagecontrol--md{--gs-pagecontrol-dot: 8px}.gs-pagecontrol__page{display:grid;place-items:center;height:100%;margin:0;padding:0 5px;background:none;border:0;border-radius:0;color:inherit;cursor:pointer;outline:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.gs-pagecontrol__dot{display:block;width:var(--gs-pagecontrol-dot);height:var(--gs-pagecontrol-dot);border-radius:50%;background:var(--gs-pagecontrol-inactive);box-shadow:var(--gs-pagecontrol-inactive-shadow);transition:background var(--gs-duration) var(--gs-ease),box-shadow var(--gs-duration) var(--gs-ease)}.gs-pagecontrol__page--current .gs-pagecontrol__dot{background:var(--gs-pagecontrol-current);box-shadow:var(--gs-pagecontrol-current-shadow)}.gs-pagecontrol__page:active:not(.gs-pagecontrol__page--current) .gs-pagecontrol__dot{background:var(--gs-pagecontrol-inactive-pressed)}.gs-pagecontrol__page:focus-visible .gs-pagecontrol__dot{box-shadow:var(--gs-focus-ring)}.gs-pagecontrol__page--current:focus-visible .gs-pagecontrol__dot{box-shadow:var(--gs-focus-ring),var(--gs-pagecontrol-current-shadow)}.gs-root[data-theme=light] .gs-pagecontrol,.gs-theme-light .gs-pagecontrol{--gs-pagecontrol-inactive: rgba(0, 0, 0, .28);--gs-pagecontrol-inactive-pressed: rgba(0, 0, 0, .45);--gs-pagecontrol-inactive-shadow: inset 0 1px 1px rgba(0, 0, 0, .25), 0 1px 0 rgba(255, 255, 255, .5);--gs-pagecontrol-current: linear-gradient(to bottom, #4a4a50, #2a2a2e);--gs-pagecontrol-current-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), 0 0 0 1px rgba(0, 0, 0, .2), 0 1px 0 rgba(255, 255, 255, .6)}.gs-popover-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;box-sizing:border-box;background:transparent;font-family:var(--gs-font)}.gs-popover-backdrop--contained{position:absolute}.gs-popover-backdrop--passthrough{pointer-events:none}.gs-popover{--gs-popover-gap: 8px;--gs-popover-bg: linear-gradient(to bottom, rgba(52, 60, 84, .97), rgba(22, 26, 40, .98));--gs-popover-rim: rgba(20, 24, 38, .92);--gs-popover-rim-light: rgba(255, 255, 255, .25);--gs-popover-scrollbar: rgba(255, 255, 255, .22);position:fixed;z-index:1000;isolation:isolate;box-sizing:border-box;padding:6px;display:flex;flex-direction:column;pointer-events:auto;color:var(--gs-white);font-family:var(--gs-font);font-size:var(--gs-font-size-lg);line-height:var(--gs-line-height);text-align:start;border-radius:var(--gs-radius-md);box-shadow:0 0 0 7px var(--gs-popover-rim),0 0 0 8px #ffffff1f,0 12px 30px #0009;visibility:hidden}.gs-popover-backdrop--contained .gs-popover{position:absolute}.gs-popover:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:inherit;background:var(--gs-popover-bg);box-shadow:0 0 0 1px #ffffff47,inset 0 1px #ffffff1a;pointer-events:none}.gs-popover--ready{visibility:visible;animation:gs-popover-pop .18s var(--gs-ease) both}.gs-popover:focus{outline:none}.gs-popover:focus-visible{outline:none;box-shadow:0 0 0 7px var(--gs-popover-rim),0 0 0 8px #ffffff1f,0 0 0 10px #8fb8f5d9,0 12px 30px #0009}.gs-popover--bottom{transform-origin:var(--gs-popover-arrow-offset, 50%) top}.gs-popover--top{transform-origin:var(--gs-popover-arrow-offset, 50%) bottom}.gs-popover--right{transform-origin:left var(--gs-popover-arrow-offset, 50%)}.gs-popover--left{transform-origin:right var(--gs-popover-arrow-offset, 50%)}.gs-popover__arrow{position:absolute;z-index:-1;width:17px;height:17px;background:var(--gs-popover-rim);transform:rotate(45deg);pointer-events:none}.gs-popover--bottom .gs-popover__arrow{top:-16.5px;left:calc(var(--gs-popover-arrow-offset, 50%) - 8.5px);box-shadow:-1px -1px 0 var(--gs-popover-rim-light)}.gs-popover--top .gs-popover__arrow{bottom:-16.5px;left:calc(var(--gs-popover-arrow-offset, 50%) - 8.5px);box-shadow:1px 1px 0 var(--gs-popover-rim-light)}.gs-popover--right .gs-popover__arrow{left:-16.5px;top:calc(var(--gs-popover-arrow-offset, 50%) - 8.5px);box-shadow:-1px 1px 0 var(--gs-popover-rim-light)}.gs-popover--left .gs-popover__arrow{right:-16.5px;top:calc(var(--gs-popover-arrow-offset, 50%) - 8.5px);box-shadow:1px -1px 0 var(--gs-popover-rim-light)}.gs-popover__content{position:relative;z-index:1;flex:1 1 auto;min-height:0;min-width:0;border-radius:var(--gs-radius-sm);overflow:hidden;overflow-y:auto;max-height:60vh;-webkit-overflow-scrolling:touch}.gs-popover__content::-webkit-scrollbar{width:5px}.gs-popover__content::-webkit-scrollbar-thumb{background:var(--gs-popover-scrollbar);border-radius:3px}.gs-root[data-theme=light] .gs-popover,.gs-theme-light .gs-popover{--gs-popover-scrollbar: rgba(0, 0, 0, .3)}.gs-popover__content>.gs-list .gs-list__group{border-radius:0;border-inline:0;box-shadow:none}.gs-popover__content>.gs-list>.gs-list__header{padding-top:8px}@keyframes gs-popover-pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.gs-popover--ready{animation:none}}.gs-hud-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:grid;place-items:center;box-sizing:border-box;background:transparent;font-family:var(--gs-font);pointer-events:none}.gs-hud-backdrop--contained{position:absolute}.gs-hud-backdrop--blocking{pointer-events:auto;cursor:default}.gs-hud-backdrop--top{align-items:start;padding-top:60px}.gs-hud-backdrop--bottom{align-items:end;padding-bottom:60px}.gs-hud{--gs-surface-sunken: #1a1a1c;--gs-inset: inset 0 2px 5px rgba(0, 0, 0, .75), inset 0 0 0 1px rgba(0, 0, 0, .55);--gs-border: 1px solid rgba(0, 0, 0, .9);--gs-text-secondary: #a1a1a6;--gs-text-emboss: var(--gs-text-shadow-dark);box-sizing:border-box;pointer-events:auto;min-width:140px;min-height:140px;max-width:240px;padding:22px 20px 18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--gs-space-3);color:var(--gs-white);text-align:center;line-height:var(--gs-line-height);text-shadow:var(--gs-text-shadow-dark);border-radius:var(--gs-radius-lg);background:#000000c7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px #ffffff29,inset 0 1px #ffffff38,0 8px 24px #0000008c;animation:gs-hud-pop .2s var(--gs-ease) both}.gs-hud .gs-spinner{--gs-spinner-white: var(--gs-white)}.gs-hud--text{min-width:0;min-height:0;padding:12px 18px;border-radius:var(--gs-radius-md)}.gs-hud__graphic{display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:0;color:var(--gs-white)}.gs-hud--success .gs-hud__graphic,.gs-hud--error .gs-hud__graphic{filter:drop-shadow(0 1px 0 rgba(0,0,0,.6));animation:gs-hud-graphic-pop .24s var(--gs-ease) 40ms both}.gs-hud__progress{width:120px;padding:6px 0}.gs-hud__title{font-family:var(--gs-font);font-size:16px;font-weight:700;color:var(--gs-white);overflow-wrap:break-word}.gs-hud__message{margin-top:-6px;font-family:var(--gs-font);font-size:var(--gs-font-size-sm);font-weight:400;line-height:1.3;color:#ffffffb3;overflow-wrap:break-word}@keyframes gs-hud-pop{0%{opacity:0;transform:scale(1.08)}to{opacity:1;transform:none}}@keyframes gs-hud-graphic-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.gs-hud,.gs-hud--success .gs-hud__graphic,.gs-hud--error .gs-hud__graphic{animation:none}}.gs-keyboard{--gs-keyboard-bg: linear-gradient(to bottom, rgba(64, 64, 70, .96), rgba(24, 24, 28, .98));--gs-keyboard-edge: rgba(255, 255, 255, .25);--gs-keyboard-shadow: 0 -1px 0 rgba(0, 0, 0, .9);--gs-key-gel: linear-gradient(to bottom, #6a6a70 0%, #55555b 49%, #46464c 50%, #3a3a40 100%);--gs-key-gel-pressed: linear-gradient(to bottom, #85858d 0%, #6b6b72 49%, #5a5a61 50%, #4a4a51 100%);--gs-key-fn: linear-gradient(to bottom, #3e3e44 0%, #2f2f34 49%, #26262b 50%, #1e1e22 100%);--gs-key-fn-pressed: var(--gs-key-gel);--gs-key-border: var(--gs-border);--gs-key-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 1px 0 rgba(0, 0, 0, .75);--gs-key-radius: 5px;--gs-key-height: 39px;--gs-key-width: 26px;--gs-key-text: var(--gs-white);--gs-key-text-shadow: var(--gs-text-shadow-dark);--gs-key-fn-text: var(--gs-white);--gs-key-fn-text-shadow: var(--gs-text-shadow-dark);--gs-key-icon-shadow: drop-shadow(0 -1px 0 rgba(0, 0, 0, .7));--gs-key-shift-on: var(--gs-key-gel);--gs-key-caps: var(--gs-gradient-blue);--gs-key-caps-pressed: var(--gs-gradient-blue-pressed);--gs-key-active-icon: var(--gs-white);--gs-key-active-icon-shadow: drop-shadow(0 -1px 0 rgba(0, 0, 0, .7));--gs-key-active-bar-shadow: 0 -1px 0 rgba(0, 0, 0, .7);--gs-key-popup: linear-gradient(to bottom, #8a8a92, #5a5a62);--gs-key-popup-bottom: #5a5a62;--gs-key-popup-text: var(--gs-white);--gs-key-popup-text-shadow: var(--gs-text-shadow-dark);--gs-key-popup-outline: rgba(0, 0, 0, .9);--gs-key-popup-shadow: 0 3px 8px rgba(0, 0, 0, .6);position:relative;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;width:100%;max-width:320px;height:216px;padding:5px 3px 3px;direction:ltr;font-family:var(--gs-font);color:var(--gs-key-text);background:var(--gs-keyboard-bg);border-top:1px solid var(--gs-keyboard-edge);box-shadow:var(--gs-keyboard-shadow);-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.gs-keyboard--disabled{opacity:.5;pointer-events:none}.gs-keyboard__row{display:flex;justify-content:center;gap:6px;overflow:visible}.gs-keyboard__row--inset{padding:0 16px}.gs-keyboard__row--bottom{gap:4px}.gs-keyboard__key{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 var(--gs-key-width);box-sizing:border-box;width:var(--gs-key-width);height:var(--gs-key-height);padding:0;margin:0;font:400 22px/1 var(--gs-font);color:var(--gs-key-text);text-shadow:var(--gs-key-text-shadow);white-space:nowrap;background:var(--gs-gloss),var(--gs-key-gel);border:var(--gs-key-border);border-radius:var(--gs-key-radius);box-shadow:var(--gs-key-shadow);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.gs-keyboard__key:focus-visible{outline:none;box-shadow:var(--gs-focus-ring),var(--gs-key-shadow)}.gs-keyboard__key--symbol{font-size:20px}.gs-keyboard__key--fn{flex-basis:38px;width:38px;font:700 15px/1 var(--gs-font);color:var(--gs-key-fn-text);text-shadow:var(--gs-key-fn-text-shadow);background:var(--gs-gloss),var(--gs-key-fn)}.gs-keyboard__key--wide{flex-basis:76px;width:76px}.gs-keyboard__key--space{flex-basis:154px;width:154px;font:400 16px/1 var(--gs-font)}.gs-keyboard__key--return{flex-basis:76px;width:76px;font:700 16px/1 var(--gs-font);color:var(--gs-key-fn-text);text-shadow:var(--gs-key-fn-text-shadow);background:var(--gs-gloss),var(--gs-key-fn)}.gs-keyboard__key--return-blue{background:var(--gs-gloss),var(--gs-gradient-blue);color:var(--gs-text-on-blue);text-shadow:var(--gs-text-shadow-dark)}.gs-keyboard__icon{flex-shrink:0;color:var(--gs-key-fn-text);filter:var(--gs-key-icon-shadow)}.gs-keyboard__key--shift-on{background:var(--gs-gloss),var(--gs-key-shift-on)}.gs-keyboard__key--caps{background:var(--gs-gloss),var(--gs-key-caps)}.gs-keyboard__key--shift-on .gs-keyboard__icon,.gs-keyboard__key--caps .gs-keyboard__icon{color:var(--gs-key-active-icon);filter:var(--gs-key-active-icon-shadow)}.gs-keyboard__key--caps:after{content:"";position:absolute;left:50%;bottom:5px;width:12px;height:2px;transform:translate(-50%);border-radius:1px;background:var(--gs-key-active-icon);box-shadow:var(--gs-key-active-bar-shadow)}.gs-keyboard__key:active:not(:disabled),.gs-keyboard__key--pressed{background:var(--gs-gloss),var(--gs-key-gel-pressed)}.gs-keyboard__key--fn:active:not(:disabled),.gs-keyboard__key--fn.gs-keyboard__key--pressed,.gs-keyboard__key--return:active:not(:disabled),.gs-keyboard__key--return.gs-keyboard__key--pressed{background:var(--gs-gloss),var(--gs-key-fn-pressed)}.gs-keyboard__key--return-blue:active:not(:disabled),.gs-keyboard__key--return-blue.gs-keyboard__key--pressed{background:var(--gs-gradient-blue-pressed);box-shadow:inset 0 2px 4px #0009,var(--gs-rim-dark)}.gs-keyboard__key--caps:active:not(:disabled),.gs-keyboard__key--caps.gs-keyboard__key--pressed{background:var(--gs-key-caps-pressed);box-shadow:inset 0 2px 4px #0009,var(--gs-rim-dark)}.gs-keyboard__popup{position:absolute;bottom:calc(100% - 2px);left:50%;z-index:2;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:46px;height:58px;padding-bottom:2px;transform:translate(-50%);font:400 36px/1 var(--gs-font);color:var(--gs-key-popup-text);text-shadow:var(--gs-key-popup-text-shadow);background:var(--gs-gloss-soft),var(--gs-key-popup);border-radius:8px;box-shadow:0 0 0 1px var(--gs-key-popup-outline),var(--gs-key-popup-shadow);pointer-events:none}.gs-keyboard__popup:after{content:"";position:absolute;top:calc(100% - 2px);left:50%;width:var(--gs-key-width);height:calc(var(--gs-key-height) + 1px);transform:translate(-50%);background:var(--gs-key-popup-bottom);border-radius:0 0 var(--gs-key-radius) var(--gs-key-radius);box-shadow:-1px 0 0 var(--gs-key-popup-outline),1px 0 0 var(--gs-key-popup-outline),0 1px 0 var(--gs-key-popup-outline)}.gs-keyboard__popup--left{left:0;transform:none}.gs-keyboard__popup--left:after{left:0;transform:none}.gs-keyboard__popup--right{left:auto;right:0;transform:none}.gs-keyboard__popup--right:after{left:auto;right:0;transform:none}.gs-root[data-theme=light] .gs-keyboard,.gs-theme-light .gs-keyboard{--gs-keyboard-bg: linear-gradient(to bottom, #c3cad3, #aab3bf);--gs-keyboard-edge: rgba(255, 255, 255, .6);--gs-keyboard-shadow: 0 -1px 0 rgba(0, 0, 0, .35);--gs-key-gel: linear-gradient(to bottom, #ffffff 0%, #f4f5f7 49%, #eceef1 50%, #e1e3e8 100%);--gs-key-gel-pressed: linear-gradient(to bottom, #eef0f3 0%, #e2e5ea 49%, #d8dce2 50%, #cdd2d9 100%);--gs-key-fn: linear-gradient(to bottom, #b6c0cc 0%, #9ea9b7 49%, #8f9aa9 50%, #808c9b 100%);--gs-key-fn-pressed: linear-gradient(to bottom, #d6dce4 0%, #c5ccd6 49%, #b9c1cc 50%, #aab3bf 100%);--gs-key-border: 1px solid rgba(0, 0, 0, .45);--gs-key-shadow: inset 0 1px 0 #ffffff, 0 1px 0 rgba(0, 0, 0, .55);--gs-key-text: #000000;--gs-key-text-shadow: 0 1px 0 rgba(255, 255, 255, .8);--gs-key-fn-text: #ffffff;--gs-key-fn-text-shadow: 0 -1px 0 rgba(0, 0, 0, .45);--gs-key-icon-shadow: drop-shadow(0 -1px 0 rgba(0, 0, 0, .45));--gs-key-shift-on: var(--gs-key-gel);--gs-key-caps: var(--gs-key-gel);--gs-key-caps-pressed: var(--gs-key-gel-pressed);--gs-key-active-icon: var(--gs-blue-500);--gs-key-active-icon-shadow: drop-shadow(0 1px 0 rgba(255, 255, 255, .8));--gs-key-active-bar-shadow: 0 1px 0 rgba(255, 255, 255, .8);--gs-key-popup: linear-gradient(to bottom, #ffffff, #e9ebef);--gs-key-popup-bottom: #e9ebef;--gs-key-popup-text: #000000;--gs-key-popup-text-shadow: 0 1px 0 rgba(255, 255, 255, .8);--gs-key-popup-outline: rgba(0, 0, 0, .45);--gs-key-popup-shadow: 0 3px 8px rgba(0, 0, 0, .35)}.gs-datepicker--datetime .gs-picker__row{font-size:var(--gs-font-size-lg)}.gs-datepicker--time .gs-picker__row,.gs-datepicker--datetime .gs-picker__column:not(:first-child) .gs-picker__row{padding:0 6px}.gs-modalsheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;flex-direction:column;justify-content:flex-end;box-sizing:border-box;background:#0006;font-family:var(--gs-font);animation:gs-modalsheet-fade var(--gs-duration) var(--gs-ease) both}.gs-modalsheet-backdrop--contained{position:absolute}.gs-modalsheet{flex:1;min-height:0;width:100%;box-sizing:border-box;display:flex;flex-direction:column;color:var(--gs-text);font-size:var(--gs-font-size-lg);line-height:var(--gs-line-height);background:var(--gs-screen-bg);animation:gs-modalsheet-slide .32s cubic-bezier(.2,.8,.2,1) both}.gs-modalsheet:focus{outline:none}.gs-modalsheet *,.gs-modalsheet *:before,.gs-modalsheet *:after{box-sizing:border-box}.gs-modalsheet__bar{flex-shrink:0}.gs-modalsheet__body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:10px 10px 20px;display:flex;flex-direction:column;gap:14px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}.gs-modalsheet__body::-webkit-scrollbar{width:5px}.gs-modalsheet__body::-webkit-scrollbar-thumb{background:#ffffff38;border-radius:3px}.gs-modalsheet__body--pinstripe{background:var(--gs-pinstripe-bg)}.gs-modalsheet__body--black{background:var(--gs-screen-bg)}.gs-modalsheet__body--surface{background:var(--gs-surface)}@keyframes gs-modalsheet-fade{0%{opacity:0}to{opacity:1}}@keyframes gs-modalsheet-slide{0%{transform:translateY(100%)}to{transform:none}}@media(prefers-reduced-motion:reduce){.gs-modalsheet-backdrop,.gs-modalsheet{animation:none}}.gs-stepper{--gs-stepper-height: 30px;--gs-stepper-column: 38px;--gs-stepper-divider: rgba(0, 0, 0, .85);--gs-stepper-divider-rim: rgba(255, 255, 255, .12);--gs-stepper-divider-rim-x: 1px;display:inline-flex;align-items:stretch;box-sizing:border-box;height:var(--gs-stepper-height);max-width:100%;margin:0;padding:0;vertical-align:middle;font-family:var(--gs-font);pointer-events:auto;user-select:none;-webkit-user-select:none}.gs-stepper--sm{--gs-stepper-height: 30px;--gs-stepper-column: 38px}.gs-stepper--md{--gs-stepper-height: var(--gs-control-height);--gs-stepper-column: 48px}.gs-stepper--blue{--gs-gradient-barbutton: linear-gradient(to bottom, #8aa4c8 0%, #6684ad 49%, #51739f 50%, #45668f 100%);--gs-gradient-barbutton-pressed: linear-gradient(to bottom, #2c4f82 0%, #35598e 50%, #3f6499 100%);--gs-text-on-bar: #ffffff;--gs-text-shadow-on-bar: 0 -1px 0 rgba(0, 0, 0, .4);--gs-stepper-divider: rgba(0, 0, 0, .45);--gs-stepper-divider-rim: rgba(255, 255, 255, .3)}.gs-root[data-theme=light] .gs-stepper,.gs-theme-light .gs-stepper{--gs-stepper-divider: rgba(0, 0, 0, .45);--gs-stepper-divider-rim: rgba(255, 255, 255, .3)}.gs-stepper__value{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:44px;height:100%;padding:0 8px;margin-inline-end:8px;font:700 15px var(--gs-font);line-height:1;color:var(--gs-text);text-shadow:var(--gs-text-emboss);font-variant-numeric:tabular-nums;white-space:nowrap;background:var(--gs-surface-sunken);border:var(--gs-border);border-radius:var(--gs-radius-sm);box-shadow:var(--gs-inset)}.gs-stepper__buttons{display:inline-grid;grid-template-columns:repeat(2,var(--gs-stepper-column));box-sizing:border-box;height:100%;flex-shrink:0;border:var(--gs-border);border-radius:var(--gs-radius-sm);overflow:hidden;box-shadow:var(--gs-rim-dark)}.gs-stepper__button{display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:0;height:100%;margin:0;padding:0;color:var(--gs-text-on-bar);background:var(--gs-gloss),var(--gs-gradient-barbutton);border:0;border-radius:0;box-shadow:var(--gs-rim-light);cursor:pointer;outline:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background var(--gs-duration) var(--gs-ease)}:where(.gs-stepper__button)+.gs-stepper__button{border-inline-start:1px solid var(--gs-stepper-divider);box-shadow:var(--gs-rim-light),inset var(--gs-stepper-divider-rim-x) 0 0 var(--gs-stepper-divider-rim)}.gs-stepper__icon{flex-shrink:0;color:var(--gs-text-on-bar);filter:drop-shadow(var(--gs-text-shadow-on-bar))}.gs-stepper__button:active:not(:disabled){background:var(--gs-gradient-barbutton-pressed);box-shadow:inset 0 2px 4px #0009}.gs-stepper__button:focus-visible{box-shadow:inset var(--gs-focus-ring)}.gs-stepper__button:disabled{cursor:default}.gs-stepper__button:disabled .gs-stepper__icon{opacity:.35}.gs-stepper--disabled{opacity:.5}@media(prefers-reduced-motion:reduce){.gs-stepper__button{transition:none}}[dir=rtl] .gs-stepper{--gs-stepper-divider-rim-x: -1px}.gs-stepper:dir(rtl){--gs-stepper-divider-rim-x: -1px}.gs-searchbar{--gs-searchbar-duration: .2s;position:relative;display:flex;flex-direction:column;box-sizing:border-box;flex-shrink:0;width:100%;min-width:0;padding:6px 8px;font-family:var(--gs-font);color:var(--gs-text-on-bar);background:var(--gs-gloss-soft),var(--gs-gradient-bar);border-bottom:1px solid var(--gs-bar-border);box-shadow:inset 0 1px 0 var(--gs-bar-rim)}.gs-searchbar--blue{--gs-gradient-bar: linear-gradient(to bottom, #b0bccd 0%, #8a9bb4 49%, #6d84a2 50%, #5b7397 100%);--gs-bar-border: #2d3642;--gs-text-shadow-on-bar: 0 -1px 0 rgba(0, 0, 0, .4);--gs-gradient-barbutton: linear-gradient(to bottom, #8aa4c8 0%, #6684ad 49%, #51739f 50%, #45668f 100%);--gs-gradient-barbutton-pressed: linear-gradient(to bottom, #2c405f 0%, #3a5278 50%, #435f8b 100%)}.gs-searchbar__row{display:flex;align-items:center;min-width:0}.gs-searchbar__field{flex:1 1 auto;min-width:0}.gs-searchbar .gs-searchfield__cancel{box-sizing:border-box;max-width:0;padding-inline:0;border-inline-width:0;margin-inline-start:calc(-1 * var(--gs-space-2));overflow:hidden;opacity:0;visibility:hidden;transition:max-width var(--gs-searchbar-duration) var(--gs-ease),padding var(--gs-searchbar-duration) var(--gs-ease),border-width var(--gs-searchbar-duration) var(--gs-ease),margin var(--gs-searchbar-duration) var(--gs-ease),opacity var(--gs-searchbar-duration) var(--gs-ease),visibility 0s linear var(--gs-searchbar-duration)}.gs-searchbar--show-cancel .gs-searchfield__cancel{max-width:120px;padding-inline:10px;border-inline-width:1px;margin-inline-start:0;opacity:1;visibility:visible;transition-delay:0s}.gs-searchbar__scopes{display:grid;grid-template-rows:0fr;min-width:0;transition:grid-template-rows var(--gs-searchbar-duration) var(--gs-ease)}.gs-searchbar__scopes-clip{min-height:0;min-width:0;overflow:hidden;visibility:hidden;transition:visibility 0s linear var(--gs-searchbar-duration)}.gs-searchbar--show-scopes .gs-searchbar__scopes{grid-template-rows:1fr}.gs-searchbar--show-scopes .gs-searchbar__scopes-clip{visibility:visible;transition-delay:0s}.gs-searchbar__segments{margin-block:6px 1px}.gs-searchbar--disabled.gs-searchbar--show-cancel .gs-searchfield__cancel{opacity:.5;pointer-events:none}@media(prefers-reduced-motion:reduce){.gs-searchbar .gs-searchfield__cancel,.gs-searchbar__scopes,.gs-searchbar__scopes-clip{transition:none}}.gs-banner{--gs-banner-glass: linear-gradient( to bottom, rgba(70, 70, 76, .96) 0%, rgba(44, 44, 49, .97) 50%, rgba(22, 22, 26, .98) 100% );--gs-banner-gel-green: linear-gradient( to bottom, #7bd06d 0%, #52b344 49%, #2f8a22 50%, #22701a 100% );--gs-banner-tile-gel: var(--gs-gradient-dark);--gs-banner-text-shadow: 0 -1px 0 rgba(0, 0, 0, .7);--gs-banner-emboss: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 0 rgba(0, 0, 0, .7);position:fixed;top:0;inset-inline:0;z-index:1200;box-sizing:border-box;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;min-height:60px;padding:8px 10px 12px;font-family:var(--gs-font);line-height:var(--gs-line-height);color:#fff;text-shadow:var(--gs-banner-text-shadow);background:var(--gs-banner-glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid #000;box-shadow:inset 0 1px #ffffff47,inset 0 -1px #ffffff0f,0 4px 14px #0009;cursor:pointer;touch-action:pan-x;-webkit-user-select:none;user-select:none;outline:none;transition:transform .2s var(--gs-ease);animation:gs-banner-drop .32s cubic-bezier(.2,.8,.2,1) both}.gs-banner--contained{position:absolute}.gs-banner--has-action{grid-template-columns:auto minmax(0,1fr) auto}.gs-banner--dragging{transition:none}.gs-banner--leaving{transform:translateY(-100%);transition:transform .12s ease-in}.gs-banner:focus-visible{box-shadow:inset 0 0 0 2px #8fb8f5d9,inset 0 1px #ffffff47,inset 0 -1px #ffffff0f,0 4px 14px #0009}.gs-banner__tile{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;width:29px;height:29px;line-height:0;color:#fff;background:var(--gs-gloss),var(--gs-banner-tile-gel);border:1px solid rgba(0,0,0,.9);border-radius:6px;box-shadow:var(--gs-banner-emboss)}.gs-banner__tile>.gs-icon--flat{filter:drop-shadow(0 -1px 0 rgba(0,0,0,.7))}.gs-banner__tile--gray{--gs-banner-tile-gel: var(--gs-gradient-dark)}.gs-banner__tile--blue{--gs-banner-tile-gel: var(--gs-gradient-blue)}.gs-banner__tile--red{--gs-banner-tile-gel: var(--gs-gradient-red)}.gs-banner__tile--green{--gs-banner-tile-gel: var(--gs-banner-gel-green)}.gs-banner__body{display:flex;flex-direction:column;gap:2px;min-width:0}.gs-banner__title{font-size:14px;font-weight:700;color:#fff;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gs-banner__message{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:13px;font-weight:400;line-height:1.25;color:#fffc;overflow-wrap:anywhere}.gs-banner__action{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;height:26px;padding:0 10px;margin:0;font:700 12px / 1 var(--gs-font);color:#fff;text-shadow:var(--gs-banner-text-shadow);white-space:nowrap;background:var(--gs-gloss),var(--gs-gradient-dark);border:1px solid rgba(0,0,0,.9);border-radius:var(--gs-radius-sm);box-shadow:var(--gs-banner-emboss);cursor:pointer;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.gs-banner__action:active{background:var(--gs-gradient-dark-pressed);box-shadow:inset 0 2px 4px #0009,0 1px #000000b3}.gs-banner__action:focus-visible{box-shadow:var(--gs-focus-ring),var(--gs-banner-emboss)}.gs-banner__grip{position:absolute;bottom:4px;inset-inline:0;width:17px;height:3px;margin-inline:auto;background:radial-gradient(circle at 1.5px 50%,rgba(255,255,255,.35) 1.4px,transparent 1.6px) 0 0 / 7px 3px repeat-x;pointer-events:none}@keyframes gs-banner-drop{0%{transform:translateY(-100%)}}@media(prefers-reduced-motion:reduce){.gs-banner{animation:none;transition:none}}
package/package.json ADDED
@@ -0,0 +1,73 @@
1
+ {
2
+ "name": "@3gs/ui",
3
+ "version": "0.1.0",
4
+ "description": "React design system in the iPhone 3GS / iOS 3 aesthetic — dark-mode glossy skeuomorphism.",
5
+ "keywords": [
6
+ "react",
7
+ "design-system",
8
+ "ui",
9
+ "components",
10
+ "ios",
11
+ "iphone",
12
+ "skeuomorphic",
13
+ "glossy",
14
+ "retro",
15
+ "dark-mode"
16
+ ],
17
+ "license": "MIT",
18
+ "author": "Timon Franke",
19
+ "homepage": "https://github.com/TimonBozzApps/design-system-3gs#readme",
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/TimonBozzApps/design-system-3gs.git",
23
+ "directory": "packages/ui"
24
+ },
25
+ "bugs": {
26
+ "url": "https://github.com/TimonBozzApps/design-system-3gs/issues"
27
+ },
28
+ "type": "module",
29
+ "sideEffects": [
30
+ "**/*.css"
31
+ ],
32
+ "main": "./dist/index.cjs",
33
+ "module": "./dist/index.js",
34
+ "types": "./dist/index.d.ts",
35
+ "exports": {
36
+ ".": {
37
+ "types": "./dist/index.d.ts",
38
+ "import": "./dist/index.js",
39
+ "require": "./dist/index.cjs"
40
+ },
41
+ "./styles.css": "./dist/ui.css"
42
+ },
43
+ "files": [
44
+ "dist",
45
+ "README.md",
46
+ "LICENSE"
47
+ ],
48
+ "publishConfig": {
49
+ "access": "public"
50
+ },
51
+ "scripts": {
52
+ "build": "vite build",
53
+ "typecheck": "tsc --noEmit -p tsconfig.json",
54
+ "prepublishOnly": "pnpm build"
55
+ },
56
+ "peerDependencies": {
57
+ "react": "^18.0.0 || ^19.0.0",
58
+ "react-dom": "^18.0.0 || ^19.0.0"
59
+ },
60
+ "dependencies": {
61
+ "lucide-react": "^0.460.0"
62
+ },
63
+ "devDependencies": {
64
+ "@types/react": "^19.0.0",
65
+ "@types/react-dom": "^19.0.0",
66
+ "@vitejs/plugin-react": "^4.3.0",
67
+ "react": "^19.0.0",
68
+ "react-dom": "^19.0.0",
69
+ "typescript": "^5.6.0",
70
+ "vite": "^6.0.0",
71
+ "vite-plugin-dts": "^4.3.0"
72
+ }
73
+ }