@jungherz-de/glasskit-elements 1.11.0 → 1.12.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 (39) hide show
  1. package/README.md +1 -1
  2. package/dist/components/glk-accordion-item.js +1 -1
  3. package/dist/components/glk-accordion.js +1 -1
  4. package/dist/components/glk-avatar.js +1 -1
  5. package/dist/components/glk-badge.js +1 -1
  6. package/dist/components/glk-button.js +1 -1
  7. package/dist/components/glk-card.js +1 -1
  8. package/dist/components/glk-checkbox.js +1 -1
  9. package/dist/components/glk-divider.js +1 -1
  10. package/dist/components/glk-input.js +1 -1
  11. package/dist/components/glk-list-item.js +1 -1
  12. package/dist/components/glk-list.js +1 -1
  13. package/dist/components/glk-modal.js +19 -12
  14. package/dist/components/glk-nav.js +1 -1
  15. package/dist/components/glk-pill.js +1 -1
  16. package/dist/components/glk-popover.js +1 -1
  17. package/dist/components/glk-progress.js +1 -1
  18. package/dist/components/glk-radio.js +1 -1
  19. package/dist/components/glk-range.js +1 -1
  20. package/dist/components/glk-search.js +1 -1
  21. package/dist/components/glk-select.js +39 -8
  22. package/dist/components/glk-status.js +1 -1
  23. package/dist/components/glk-tab-accessory.js +1 -1
  24. package/dist/components/glk-tab-bar.js +1 -1
  25. package/dist/components/glk-tab-dock.js +1 -1
  26. package/dist/components/glk-tab-item.js +26 -15
  27. package/dist/components/glk-textarea.js +1 -1
  28. package/dist/components/glk-title.js +1 -1
  29. package/dist/components/glk-toast.js +1 -1
  30. package/dist/components/glk-toggle.js +1 -1
  31. package/dist/components/shared/{base-C0B1hgOt.js → base-BoN33KPe.js} +36 -3
  32. package/dist/glasskit-elements.esm.js +117 -35
  33. package/dist/glasskit-elements.js +117 -35
  34. package/dist/glasskit-elements.min.js +1 -1
  35. package/package.json +1 -1
  36. package/src/base.js +36 -3
  37. package/src/components/feedback/glk-modal.js +18 -11
  38. package/src/components/forms/glk-select.js +38 -7
  39. package/src/components/navigation/glk-tab-item.js +25 -14
@@ -1 +1 @@
1
- var GlassKitElements=function(t){"use strict";const e=":root,[data-theme=dark]{color-scheme:dark;--gl-color-primary:#f5a623;--gl-color-primary-dark:#d4692a;--gl-color-primary-mid:color-mix(in srgb, var(--gl-color-primary) 32%, var(--gl-color-primary-dark));--gl-color-bg-dark:#0e2530;--gl-color-bg-mid:#1a3d4e;--gl-color-bg-light:#1b3e50;--gl-color-text:#ffffff;--gl-color-text-muted:rgba(255, 255, 255, 0.60);--gl-color-text-on-light:#1a3a4a;--gl-color-text-heading:#ffffff;--gl-color-success:#34c759;--gl-color-error:#ff3b30;--gl-color-warning:#ffcc00;--gl-color-success-dark:#2da44e;--gl-color-error-dark:#d63027;--gl-color-on-primary:#ffffff;--gl-color-on-success:#ffffff;--gl-color-on-error:#ffffff;--gl-color-primary-on-surface:color-mix(in srgb, var(--gl-color-primary) 50%, #ffffff);--gl-color-success-on-surface:color-mix(in srgb, var(--gl-color-success) 62%, #ffffff);--gl-color-error-on-surface:color-mix(in srgb, var(--gl-color-error) 50%, #ffffff);--gl-state-scrim:rgba(0, 0, 0, 0.30);--gl-color-primary-surface:color-mix(in srgb, var(--gl-color-primary) 25%, transparent);--gl-color-primary-border:var(--gl-border-warm);--gl-color-success-surface:color-mix(in srgb, var(--gl-color-success) 15%, transparent);--gl-color-success-border:color-mix(in srgb, var(--gl-color-success) 30%, transparent);--gl-color-error-surface:color-mix(in srgb, var(--gl-color-error) 15%, transparent);--gl-color-error-border:color-mix(in srgb, var(--gl-color-error) 30%, transparent);--gl-surface-1:rgba(255, 255, 255, 0.08);--gl-surface-2:rgba(255, 255, 255, 0.10);--gl-surface-3:rgba(255, 255, 255, 0.14);--gl-surface-4:rgba(255, 255, 255, 0.16);--gl-surface-5:rgba(255, 255, 255, 0.22);--gl-surface-milk:rgba(255, 255, 255, 0.55);--gl-surface-milk-strong:rgba(255, 255, 255, 0.75);--gl-surface-overlay:rgba(0, 0, 0, 0.50);--gl-card-glow-top:rgba(255, 255, 255, 0.32);--gl-card-glow-mid:rgba(255, 255, 255, 0.22);--gl-card-glow-low:rgba(255, 255, 255, 0.14);--gl-card-glow-bottom:rgba(255, 255, 255, 0.08);--gl-card-icon-color:rgba(255, 255, 255, 0.8);--gl-card-text-color:rgba(255, 255, 255, 0.7);--gl-border-subtle:rgba(255, 255, 255, 0.18);--gl-border-medium:rgba(255, 255, 255, 0.30);--gl-border-strong:rgba(255, 255, 255, 0.40);--gl-border-milk:rgba(255, 255, 255, 0.60);--gl-border-warm:color-mix(in srgb, color-mix(in srgb, var(--gl-color-primary) 68%, #ffffff) 35%, transparent);--gl-border-focus:color-mix(in srgb, var(--gl-color-primary) 60%, transparent);--gl-icon-default:rgba(255, 255, 255, 0.6);--gl-icon-muted:rgba(255, 255, 255, 0.45);--gl-icon-strong:rgba(255, 255, 255, 0.8);--gl-icon-on-primary:var(--gl-color-on-primary, #ffffff);--gl-icon-on-secondary:#1a3a4a;--gl-icon-on-tertiary:rgba(255, 255, 255, 0.6);--gl-blur:24px;--gl-blur-light:16px;--gl-blur-soft:12px;--gl-blur-heavy:40px;--gl-radius-pill:50%;--gl-radius-full:9999px;--gl-radius-card:24px;--gl-radius-btn:16px;--gl-radius-input:14px;--gl-radius-sm:12px;--gl-radius-xs:8px;--gl-shadow-card:0 8px 32px rgba(0, 0, 0, 0.18);--gl-shadow-btn:0 4px 16px rgba(0, 0, 0, 0.12);--gl-shadow-btn-primary:0 6px 24px color-mix(in srgb, var(--gl-color-primary-mid) 35%, transparent),0 2px 8px rgba(0, 0, 0, 0.15);--gl-shadow-glow:0 2px 12px rgba(255, 255, 255, 0.08),0 4px 16px rgba(0, 0, 0, 0.15);--gl-shadow-modal:0 24px 80px rgba(0, 0, 0, 0.4),0 8px 32px rgba(0, 0, 0, 0.2);--gl-shadow-toast:0 8px 32px rgba(0, 0, 0, 0.25);--gl-shadow-focus:0 0 0 3px color-mix(in srgb, var(--gl-color-primary) 30%, transparent);--gl-inset-subtle:inset 0 1px 1px rgba(255, 255, 255, 0.10);--gl-inset-medium:inset 0 1px 1px rgba(255, 255, 255, 0.15);--gl-inset-strong:inset 0 1px 2px rgba(255, 255, 255, 0.25);--gl-inset-milk:inset 0 1px 2px rgba(255, 255, 255, 0.40);--gl-bg-aurora-1:rgba(60, 160, 160, 0.25);--gl-bg-aurora-2:rgba(200, 140, 60, 0.12);--gl-bg-aurora-3:rgba(80, 180, 200, 0.18);--gl-bg-light-streak-1:rgba(90, 210, 200, 0.14);--gl-bg-light-streak-2:rgba(110, 200, 190, 0.10);--gl-bg-warm-glow:rgba(220, 160, 70, 0.10);--gl-space-2xs:4px;--gl-space-xs:8px;--gl-space-sm:12px;--gl-space-md:16px;--gl-space-lg:20px;--gl-space-xl:24px;--gl-space-2xl:32px;--gl-space-3xl:40px;--gl-space-4xl:56px;--gl-font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Segoe UI',Roboto,Helvetica,Arial,sans-serif;--gl-font-size-xs:13px;--gl-font-size-sm:14px;--gl-font-size-base:15px;--gl-font-size-btn:16px;--gl-font-size-lg:18px;--gl-font-size-title:24px;--gl-font-size-modal:20px;--gl-font-weight-normal:400;--gl-font-weight-medium:500;--gl-font-weight-semibold:600;--gl-transition:all 0.25s ease;--gl-transition-fast:all 0.15s ease;--gl-transition-modal:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);--gl-tab-bar-height:82px;--gl-tab-bar-floating-bottom:16px;--gl-tab-bar-floating-gap:var(--gl-space-sm);--gl-tab-bar-floating-padding:6px 10px;--gl-tab-bar-floating-radius:var(--gl-radius-full);--gl-tab-bar-accessory-size:56px;--gl-tab-bar-spotlight-color:var(--gl-color-primary);--gl-placeholder:rgba(255, 255, 255, 0.35);--gl-accordion-body-color:var(--gl-color-text-muted);--gl-toggle-thumb-bg:linear-gradient(to bottom,\n rgba(255,255,255,0.9) 0%,\n rgba(255,255,255,0.7) 100%);--gl-range-track-bg:var(--gl-surface-2);--gl-range-track-border:var(--gl-border-subtle)}[data-theme=light]{color-scheme:light;--gl-color-primary:#e8852d;--gl-color-primary-dark:#c96a1e;--gl-color-primary-mid:color-mix(in srgb, var(--gl-color-primary) 52%, var(--gl-color-primary-dark));--gl-color-bg-dark:#e8ecf1;--gl-color-bg-mid:#f0f4f8;--gl-color-bg-light:#f5f7fa;--gl-color-text:#1a2a36;--gl-color-text-muted:rgba(26, 42, 54, 0.55);--gl-color-text-on-light:#1a3a4a;--gl-color-text-heading:#0f1f2a;--gl-color-success:#28a745;--gl-color-error:#dc3545;--gl-color-warning:#e6a800;--gl-color-success-dark:#1e7e34;--gl-color-error-dark:#b02a37;--gl-color-on-primary:#ffffff;--gl-color-on-success:#ffffff;--gl-color-on-error:#ffffff;--gl-color-primary-on-surface:color-mix(in srgb, var(--gl-color-primary) 60%, #000000);--gl-color-success-on-surface:color-mix(in srgb, var(--gl-color-success) 68%, #000000);--gl-color-error-on-surface:color-mix(in srgb, var(--gl-color-error) 82%, #000000);--gl-state-scrim:rgba(255, 255, 255, 0.30);--gl-color-primary-surface:color-mix(in srgb, var(--gl-color-primary) 25%, transparent);--gl-color-primary-border:var(--gl-border-warm);--gl-color-success-surface:color-mix(in srgb, var(--gl-color-success) 15%, transparent);--gl-color-success-border:color-mix(in srgb, var(--gl-color-success) 30%, transparent);--gl-color-error-surface:color-mix(in srgb, var(--gl-color-error) 15%, transparent);--gl-color-error-border:color-mix(in srgb, var(--gl-color-error) 30%, transparent);--gl-surface-1:rgba(255, 255, 255, 0.50);--gl-surface-2:rgba(255, 255, 255, 0.60);--gl-surface-3:rgba(255, 255, 255, 0.70);--gl-surface-4:rgba(255, 255, 255, 0.75);--gl-surface-5:rgba(255, 255, 255, 0.85);--gl-surface-milk:rgba(255, 255, 255, 0.85);--gl-surface-milk-strong:rgba(255, 255, 255, 0.92);--gl-surface-overlay:rgba(0, 0, 0, 0.25);--gl-card-glow-top:rgba(255, 255, 255, 0.90);--gl-card-glow-mid:rgba(255, 255, 255, 0.78);--gl-card-glow-low:rgba(255, 255, 255, 0.65);--gl-card-glow-bottom:rgba(255, 255, 255, 0.50);--gl-card-icon-color:rgba(26, 42, 54, 0.5);--gl-card-text-color:rgba(26, 42, 54, 0.6);--gl-border-subtle:rgba(0, 0, 0, 0.08);--gl-border-medium:rgba(0, 0, 0, 0.12);--gl-border-strong:rgba(0, 0, 0, 0.15);--gl-border-milk:rgba(0, 0, 0, 0.10);--gl-border-warm:color-mix(in srgb, var(--gl-color-primary) 30%, transparent);--gl-border-focus:color-mix(in srgb, var(--gl-color-primary) 50%, transparent);--gl-icon-default:rgba(26, 42, 54, 0.50);--gl-icon-muted:rgba(26, 42, 54, 0.35);--gl-icon-strong:rgba(26, 42, 54, 0.70);--gl-icon-on-primary:var(--gl-color-on-primary, #ffffff);--gl-icon-on-secondary:#1a3a4a;--gl-icon-on-tertiary:rgba(26, 42, 54, 0.50);--gl-shadow-card:0 4px 20px rgba(0, 0, 0, 0.06);--gl-shadow-btn:0 2px 10px rgba(0, 0, 0, 0.06);--gl-shadow-btn-primary:0 4px 16px color-mix(in srgb, var(--gl-color-primary) 25%, transparent),0 2px 6px rgba(0, 0, 0, 0.08);--gl-shadow-glow:0 2px 8px rgba(0, 0, 0, 0.05),0 4px 12px rgba(0, 0, 0, 0.04);--gl-shadow-modal:0 16px 48px rgba(0, 0, 0, 0.12),0 4px 16px rgba(0, 0, 0, 0.08);--gl-shadow-toast:0 4px 20px rgba(0, 0, 0, 0.10);--gl-shadow-focus:0 0 0 3px color-mix(in srgb, var(--gl-color-primary) 25%, transparent);--gl-inset-subtle:inset 0 1px 1px rgba(255, 255, 255, 0.60);--gl-inset-medium:inset 0 1px 1px rgba(255, 255, 255, 0.70);--gl-inset-strong:inset 0 1px 2px rgba(255, 255, 255, 0.80);--gl-inset-milk:inset 0 1px 2px rgba(255, 255, 255, 0.90);--gl-bg-aurora-1:rgba(100, 200, 220, 0.15);--gl-bg-aurora-2:rgba(240, 180, 100, 0.10);--gl-bg-aurora-3:rgba(120, 200, 230, 0.12);--gl-bg-light-streak-1:rgba(140, 230, 220, 0.10);--gl-bg-light-streak-2:rgba(160, 220, 210, 0.08);--gl-bg-warm-glow:rgba(240, 180, 100, 0.08);--gl-placeholder:rgba(26, 42, 54, 0.30);--gl-accordion-body-color:var(--gl-color-text-muted);--gl-toggle-thumb-bg:linear-gradient(to bottom, #ffffff 0%, #f0f0f0 100%);--gl-range-track-bg:var(--gl-surface-2);--gl-range-track-border:var(--gl-border-subtle)}",s="[class*=gl-],[class*=glass-],[class*=glass-]::after,[class*=glass-]::before{box-sizing:border-box}",r=".glass-bg{background:radial-gradient(ellipse at 20% 40%,var(--gl-bg-aurora-1) 0,transparent 55%),radial-gradient(ellipse at 80% 65%,var(--gl-bg-aurora-2) 0,transparent 50%),radial-gradient(ellipse at 50% 20%,var(--gl-bg-aurora-3) 0,transparent 50%),linear-gradient(170deg,var(--gl-color-bg-light) 0,var(--gl-color-bg-mid) 50%,var(--gl-color-bg-dark) 100%);position:relative;min-height:100vh;overflow-x:hidden;font-family:var(--gl-font-family);color:var(--gl-color-text);-webkit-font-smoothing:antialiased;transition:background .4s,color .3s}.glass-bg::before{content:'';position:absolute;top:20%;left:-30%;width:160%;height:55%;background:radial-gradient(ellipse at 35% 45%,var(--gl-bg-light-streak-1) 0,transparent 50%),radial-gradient(ellipse at 65% 55%,var(--gl-bg-light-streak-2) 0,transparent 45%);transform:rotate(-8deg);pointer-events:none;z-index:0}.glass-bg::after{content:'';position:absolute;top:40%;right:-20%;width:70%;height:50%;background:radial-gradient(ellipse at center,var(--gl-bg-warm-glow) 0,transparent 65%);pointer-events:none;z-index:0}.glass-bg>*{position:relative;z-index:1}.glass-bg--has-tab-bar{padding-bottom:var(--gl-tab-bar-height)}.glass-bg--has-tab-bar-floating{padding-bottom:calc(var(--gl-tab-bar-accessory-size) + var(--gl-tab-bar-floating-bottom) + var(--gl-space-md))}.glass-nav{display:flex;justify-content:space-between;align-items:center;padding:0 var(--gl-space-xs)}.glass-pill{width:46px;height:46px;border-radius:var(--gl-radius-pill);background:var(--gl-surface-3);backdrop-filter:blur(var(--gl-blur));-webkit-backdrop-filter:blur(var(--gl-blur));border:1.5px solid var(--gl-border-strong);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--gl-transition);color:var(--gl-color-text);box-shadow:var(--gl-shadow-glow),var(--gl-inset-medium);outline:0;-webkit-tap-highlight-color:transparent}.glass-pill:hover{background:var(--gl-surface-5);transform:scale(1.05)}.glass-pill:active{transform:scale(.95)}.glass-pill ::slotted(svg),.glass-pill svg{width:20px;height:20px;fill:none;stroke:var(--gl-color-text);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.glass-title{text-align:center;color:var(--gl-color-text-heading);font-size:var(--gl-font-size-title);font-weight:var(--gl-font-weight-semibold);line-height:1.3;text-shadow:0 2px 12px rgba(0,0,0,.15);letter-spacing:-.3px}.glass-card{background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur));-webkit-backdrop-filter:blur(var(--gl-blur));border:1.5px solid var(--gl-border-medium);border-radius:var(--gl-radius-card);padding:var(--gl-space-3xl) var(--gl-space-xl) var(--gl-space-2xl);box-shadow:var(--gl-shadow-card),var(--gl-inset-strong)}.glass-card--glow{position:relative;overflow:hidden;background:linear-gradient(to bottom,var(--gl-card-glow-top) 0,var(--gl-card-glow-mid) 25%,var(--gl-card-glow-low) 55%,var(--gl-card-glow-bottom) 100%)}.glass-card--glow::before{content:'';position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.5) 30%,rgba(255,255,255,.6) 50%,rgba(255,255,255,.5) 70%,transparent 100%);z-index:1}.glass-card__icon{display:flex;align-items:center;justify-content:center;margin:0 auto var(--gl-space-lg)}.glass-card__icon svg{width:64px;height:64px;stroke:var(--gl-card-icon-color);stroke-width:1.2;fill:none}.glass-card__text{color:var(--gl-card-text-color);font-size:var(--gl-font-size-base);font-weight:var(--gl-font-weight-normal);line-height:1.55;text-align:center}.glass-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:56px;border:none;border-radius:var(--gl-radius-btn);font-family:var(--gl-font-family);font-size:var(--gl-font-size-btn);font-weight:var(--gl-font-weight-semibold);cursor:pointer;transition:var(--gl-transition);outline:0;-webkit-tap-highlight-color:transparent}a.glass-btn{display:inline-flex;text-decoration:none}.glass-btn ::slotted(svg),.glass-btn svg{width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.glass-btn--primary{background:linear-gradient(135deg,var(--gl-color-primary) 0,var(--gl-color-primary-mid) 50%,var(--gl-color-primary-dark) 100%);color:var(--gl-color-on-primary,#fff);border:1px solid var(--gl-border-warm);box-shadow:var(--gl-shadow-btn-primary),var(--gl-inset-strong)}.glass-btn--primary ::slotted(svg),.glass-btn--primary svg{fill:var(--gl-icon-on-primary);stroke:var(--gl-icon-on-primary);stroke-width:0}.glass-btn--primary:hover{transform:translateY(-1px)}.glass-btn--primary:active{transform:translateY(1px)}.glass-btn--secondary{background:linear-gradient(to bottom,var(--gl-surface-milk-strong) 0,var(--gl-surface-milk) 100%);backdrop-filter:blur(var(--gl-blur));-webkit-backdrop-filter:blur(var(--gl-blur));border:1.5px solid var(--gl-border-milk);color:var(--gl-color-text-on-light);box-shadow:var(--gl-shadow-btn),var(--gl-inset-milk)}.glass-btn--secondary ::slotted(svg),.glass-btn--secondary svg{fill:none;stroke:var(--gl-icon-on-secondary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.glass-btn--secondary:hover{transform:translateY(-1px)}.glass-btn--secondary:active{transform:translateY(1px)}.glass-btn--tertiary{background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur-light));-webkit-backdrop-filter:blur(var(--gl-blur-light));border:1px solid var(--gl-border-subtle);color:var(--gl-color-text-muted);box-shadow:0 4px 12px rgba(0,0,0,.1),var(--gl-inset-subtle)}.glass-btn--tertiary ::slotted(svg),.glass-btn--tertiary svg{fill:none;stroke:var(--gl-icon-on-tertiary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.glass-btn--tertiary:hover{background:var(--gl-surface-4);color:var(--gl-color-text);transform:translateY(-1px)}.glass-btn--tertiary:active{transform:translateY(1px)}.glass-btn--sm{height:44px;font-size:var(--gl-font-size-sm);border-radius:var(--gl-radius-sm)}.glass-btn--lg{height:64px;font-size:var(--gl-font-size-lg)}.glass-btn--auto{width:auto;padding:0 var(--gl-space-xl)}.glass-status{background:var(--gl-surface-1);backdrop-filter:blur(var(--gl-blur-light));-webkit-backdrop-filter:blur(var(--gl-blur-light));border:1px solid var(--gl-border-subtle);border-radius:var(--gl-radius-btn);padding:var(--gl-space-md) var(--gl-space-lg);display:flex;align-items:center;gap:var(--gl-space-sm);box-shadow:0 4px 12px rgba(0,0,0,.08),var(--gl-inset-subtle)}.glass-status ::slotted(svg),.glass-status svg{width:20px;height:20px;flex-shrink:0;stroke:var(--gl-icon-muted);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.glass-status p{color:var(--gl-color-text-muted);font-size:var(--gl-font-size-sm);font-weight:var(--gl-font-weight-normal);line-height:1.45}.glass-input-group{display:flex;flex-direction:column;gap:var(--gl-space-xs)}.glass-label{font-size:var(--gl-font-size-sm);font-weight:var(--gl-font-weight-medium);color:var(--gl-icon-strong);padding-left:var(--gl-space-2xs)}.glass-input{width:100%;height:52px;padding:0 var(--gl-space-md);background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur-light));-webkit-backdrop-filter:blur(var(--gl-blur-light));border:1.5px solid var(--gl-border-medium);border-radius:var(--gl-radius-input);color:var(--gl-color-text);font-family:var(--gl-font-family);font-size:var(--gl-font-size-base);transition:var(--gl-transition);outline:0;box-shadow:var(--gl-inset-subtle);-webkit-tap-highlight-color:transparent}.glass-input::placeholder{color:var(--gl-placeholder)}.glass-input:focus{border-color:var(--gl-border-focus);background:var(--gl-surface-3);box-shadow:var(--gl-shadow-focus),var(--gl-inset-medium)}.glass-input:disabled{opacity:.4;cursor:not-allowed}.glass-input--error{border-color:var(--gl-color-error)}.glass-input--error:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--gl-color-error) 25%,transparent),var(--gl-inset-medium)}.glass-hint{font-size:var(--gl-font-size-xs);color:var(--gl-color-text-muted);padding-left:var(--gl-space-2xs)}.glass-hint--error{color:var(--gl-color-error)}.glass-textarea{width:100%;min-height:120px;padding:var(--gl-space-md);background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur-light));-webkit-backdrop-filter:blur(var(--gl-blur-light));border:1.5px solid var(--gl-border-medium);border-radius:var(--gl-radius-input);color:var(--gl-color-text);font-family:var(--gl-font-family);font-size:var(--gl-font-size-base);line-height:1.5;resize:vertical;transition:var(--gl-transition);outline:0;box-shadow:var(--gl-inset-subtle)}.glass-textarea::placeholder{color:var(--gl-placeholder)}.glass-textarea:focus{border-color:var(--gl-border-focus);background:var(--gl-surface-3);box-shadow:var(--gl-shadow-focus),var(--gl-inset-medium)}.glass-select{width:100%;height:52px;padding:0 var(--gl-space-3xl) 0 var(--gl-space-md);background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur-light));-webkit-backdrop-filter:blur(var(--gl-blur-light));border:1.5px solid var(--gl-border-medium);border-radius:var(--gl-radius-input);color:var(--gl-color-text);font-family:var(--gl-font-family);font-size:var(--gl-font-size-base);transition:var(--gl-transition);outline:0;box-shadow:var(--gl-inset-subtle);cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.6)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 16px center}.glass-select:focus{border-color:var(--gl-border-focus);box-shadow:var(--gl-shadow-focus),var(--gl-inset-medium)}.glass-select option{background:var(--gl-color-bg-mid);color:var(--gl-color-text)}.glass-search{position:relative;display:flex;align-items:center}.glass-search__icon{position:absolute;left:var(--gl-space-md);width:18px;height:18px;stroke:var(--gl-icon-muted)!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important;fill:none!important;pointer-events:none;z-index:2}.glass-search .glass-input{padding-left:44px;border-radius:var(--gl-radius-full)}.glass-toggle{display:inline-flex;align-items:flex-start;gap:var(--gl-space-sm);cursor:pointer;-webkit-tap-highlight-color:transparent}.glass-toggle__input{position:absolute;opacity:0;margin:0;width:52px;height:30px;pointer-events:none}.glass-toggle__track{position:relative;width:52px;height:30px;background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur-soft));-webkit-backdrop-filter:blur(var(--gl-blur-soft));border:1.5px solid var(--gl-border-medium);border-radius:var(--gl-radius-full);transition:var(--gl-transition);box-shadow:var(--gl-inset-subtle);flex-shrink:0;margin-top:max(0px,calc((1lh - 30px)/ 2))}.glass-toggle__thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:var(--gl-radius-pill);background:var(--gl-toggle-thumb-bg);box-shadow:0 2px 6px rgba(0,0,0,.2),var(--gl-inset-milk);transition:var(--gl-transition)}.glass-toggle__input:checked+.glass-toggle__track{background:linear-gradient(135deg,var(--gl-color-primary) 0,var(--gl-color-primary-dark) 100%);border-color:var(--gl-border-warm)}.glass-toggle__input:checked+.glass-toggle__track .glass-toggle__thumb{transform:translateX(22px)}.glass-toggle__input:focus-visible+.glass-toggle__track{box-shadow:var(--gl-shadow-focus)}.glass-toggle__label{font-size:var(--gl-font-size-base);color:var(--gl-color-text);user-select:none;margin-top:max(0px,calc((30px - 1lh)/ 2))}.glass-checkbox{display:inline-flex;align-items:flex-start;gap:var(--gl-space-sm);cursor:pointer;-webkit-tap-highlight-color:transparent}.glass-checkbox__input{position:absolute;opacity:0;margin:0;width:24px;height:24px;pointer-events:none}.glass-checkbox__box{width:24px;height:24px;border-radius:var(--gl-radius-xs);background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur-soft));-webkit-backdrop-filter:blur(var(--gl-blur-soft));border:1.5px solid var(--gl-border-medium);display:flex;align-items:center;justify-content:center;transition:var(--gl-transition);box-shadow:var(--gl-inset-subtle);flex-shrink:0;margin-top:max(0px,calc((1lh - 24px)/ 2))}.glass-checkbox__box svg{width:14px;height:14px;stroke:var(--gl-color-on-primary,#ffffff);stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.5);transition:var(--gl-transition-fast)}.glass-checkbox__input:checked+.glass-checkbox__box{background:linear-gradient(135deg,var(--gl-color-primary) 0,var(--gl-color-primary-dark) 100%);border-color:var(--gl-border-warm)}.glass-checkbox__input:checked+.glass-checkbox__box svg{opacity:1;transform:scale(1)}.glass-checkbox__input:focus-visible+.glass-checkbox__box{box-shadow:var(--gl-shadow-focus)}.glass-checkbox__label{font-size:var(--gl-font-size-base);color:var(--gl-color-text);user-select:none;margin-top:max(0px,calc((24px - 1lh)/ 2))}.glass-radio{display:inline-flex;align-items:flex-start;gap:var(--gl-space-sm);cursor:pointer;-webkit-tap-highlight-color:transparent}.glass-radio__input{position:absolute;opacity:0;margin:0;width:24px;height:24px;pointer-events:none}.glass-radio__circle{width:24px;height:24px;border-radius:var(--gl-radius-pill);background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur-soft));border:1.5px solid var(--gl-border-medium);display:flex;align-items:center;justify-content:center;transition:var(--gl-transition);box-shadow:var(--gl-inset-subtle);flex-shrink:0;margin-top:max(0px,calc((1lh - 24px)/ 2))}.glass-radio__dot{width:10px;height:10px;border-radius:var(--gl-radius-pill);background:#fff;opacity:0;transform:scale(0);transition:var(--gl-transition-fast)}.glass-radio__input:checked+.glass-radio__circle{background:linear-gradient(135deg,var(--gl-color-primary) 0,var(--gl-color-primary-dark) 100%);border-color:var(--gl-border-warm)}.glass-radio__input:checked+.glass-radio__circle .glass-radio__dot{opacity:1;transform:scale(1)}.glass-radio__input:focus-visible+.glass-radio__circle{box-shadow:var(--gl-shadow-focus)}.glass-radio__label{font-size:var(--gl-font-size-base);color:var(--gl-color-text);user-select:none;margin-top:max(0px,calc((24px - 1lh)/ 2))}.glass-range-group{display:flex;flex-direction:column;gap:var(--gl-space-xs)}.glass-range-header{display:flex;justify-content:space-between;align-items:baseline}.glass-range-value{font-size:var(--gl-font-size-sm);font-weight:var(--gl-font-weight-semibold);color:var(--gl-color-primary);font-variant-numeric:tabular-nums}.glass-range{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:var(--gl-radius-full);background:var(--gl-range-track-bg);border:1px solid var(--gl-range-track-border);outline:0;cursor:pointer}.glass-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;box-sizing:border-box;width:26px;height:26px;border-radius:var(--gl-radius-pill);background:linear-gradient(135deg,var(--gl-color-primary) 0,var(--gl-color-primary-dark) 100%);border:2px solid rgba(255,255,255,.5);box-shadow:0 2px 8px color-mix(in srgb,var(--gl-color-primary-mid) 35%,transparent),var(--gl-inset-strong);margin-top:-2px;cursor:pointer;transition:var(--gl-transition)}.glass-range::-webkit-slider-thumb:hover{transform:scale(1.1)}.glass-range::-moz-range-thumb{width:26px;height:26px;border-radius:var(--gl-radius-pill);background:linear-gradient(135deg,var(--gl-color-primary) 0,var(--gl-color-primary-dark) 100%);border:2px solid rgba(255,255,255,.5);box-shadow:0 2px 8px color-mix(in srgb,var(--gl-color-primary-mid) 35%,transparent);cursor:pointer}.glass-range::-moz-range-track{height:6px;border-radius:var(--gl-radius-full);background:var(--gl-range-track-bg);border:1px solid var(--gl-range-track-border)}.glass-range:focus-visible{box-shadow:var(--gl-shadow-focus)}.glass-progress{width:100%;display:flex;flex-direction:column;gap:var(--gl-space-xs)}.glass-progress__header{display:flex;justify-content:space-between;align-items:baseline}.glass-progress__label{font-size:var(--gl-font-size-sm);font-weight:var(--gl-font-weight-medium);color:var(--gl-icon-strong)}.glass-progress__value{font-size:var(--gl-font-size-xs);font-weight:var(--gl-font-weight-semibold);color:var(--gl-color-text-muted);font-variant-numeric:tabular-nums}.glass-progress__track{width:100%;height:8px;border-radius:var(--gl-radius-full);background:var(--gl-surface-2);border:1px solid var(--gl-border-subtle);overflow:hidden;box-shadow:var(--gl-inset-subtle)}.glass-progress__fill{height:100%;border-radius:var(--gl-radius-full);background:linear-gradient(90deg,var(--gl-color-primary) 0,var(--gl-color-primary-dark) 100%);box-shadow:0 0 8px color-mix(in srgb,var(--gl-color-primary) 30%,transparent),var(--gl-inset-strong);transition:width .5s cubic-bezier(.4, 0, .2, 1);position:relative}.glass-progress__fill::after{content:'';position:absolute;top:0;left:0;right:0;height:50%;border-radius:var(--gl-radius-full);background:linear-gradient(to bottom,rgba(255,255,255,.3) 0,transparent 100%)}.glass-progress--sm .glass-progress__track{height:4px}.glass-progress--lg .glass-progress__track{height:12px}.glass-progress--success .glass-progress__fill{background:linear-gradient(90deg,var(--gl-color-success) 0,var(--gl-color-success-dark,#2da44e) 100%);box-shadow:0 0 8px color-mix(in srgb,var(--gl-color-success) 30%,transparent),var(--gl-inset-strong)}.glass-progress--error .glass-progress__fill{background:linear-gradient(90deg,var(--gl-color-error) 0,var(--gl-color-error-dark,#d63027) 100%);box-shadow:0 0 8px color-mix(in srgb,var(--gl-color-error) 30%,transparent),var(--gl-inset-strong)}.glass-modal-overlay{position:fixed;inset:0;background:var(--gl-surface-overlay);backdrop-filter:blur(var(--gl-blur-soft));-webkit-backdrop-filter:blur(var(--gl-blur-soft));display:flex;align-items:center;justify-content:center;padding:var(--gl-space-lg);z-index:1000;opacity:0;pointer-events:none;transition:var(--gl-transition-modal);font-family:var(--gl-font-family);-webkit-font-smoothing:antialiased}.glass-modal-overlay.is-active{opacity:1;pointer-events:auto}.glass-modal{width:100%;max-width:340px;background:linear-gradient(to bottom,var(--gl-card-glow-top) 0,var(--gl-card-glow-bottom) 100%);backdrop-filter:blur(var(--gl-blur-heavy));-webkit-backdrop-filter:blur(var(--gl-blur-heavy));border:1.5px solid var(--gl-border-medium);border-radius:var(--gl-radius-card);overflow:hidden;box-shadow:var(--gl-shadow-modal);transform:scale(.9) translateY(20px);transition:var(--gl-transition-modal);position:relative}.glass-modal-overlay.is-active .glass-modal{transform:scale(1) translateY(0)}.glass-modal::before{content:'';position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.4) 30%,rgba(255,255,255,.5) 50%,rgba(255,255,255,.4) 70%,transparent 100%)}.glass-modal__header{padding:var(--gl-space-xl) var(--gl-space-xl) var(--gl-space-sm);text-align:center}.glass-modal__title{font-size:var(--gl-font-size-modal);font-weight:var(--gl-font-weight-semibold);color:var(--gl-color-text)}.glass-modal__body{padding:var(--gl-space-sm) var(--gl-space-xl) var(--gl-space-xl);text-align:center}.glass-modal__body p{color:var(--gl-color-text-muted);font-size:var(--gl-font-size-base);line-height:1.55}.glass-modal__footer{display:flex;border-top:1px solid var(--gl-border-subtle)}.glass-modal__action{flex:1;height:52px;background:0 0;border:none;font-family:var(--gl-font-family);font-size:var(--gl-font-size-btn);font-weight:var(--gl-font-weight-medium);color:var(--gl-color-text-muted);cursor:pointer;transition:var(--gl-transition-fast);outline:0}.glass-modal__action:hover{background:var(--gl-surface-1)}.glass-modal__action+.glass-modal__action{border-left:1px solid var(--gl-border-subtle)}.glass-modal__action--primary{color:var(--gl-color-primary);font-weight:var(--gl-font-weight-semibold)}.glass-modal__action--danger{color:var(--gl-color-error);font-weight:var(--gl-font-weight-semibold)}.glass-toast{position:fixed;top:var(--gl-space-4xl);left:50%;transform:translateX(-50%) translateY(-20px);min-width:280px;max-width:340px;padding:var(--gl-space-md) var(--gl-space-lg);background:linear-gradient(to bottom,var(--gl-surface-4) 0,var(--gl-surface-2) 100%);backdrop-filter:blur(var(--gl-blur));-webkit-backdrop-filter:blur(var(--gl-blur));border:1px solid var(--gl-border-medium);border-radius:var(--gl-radius-btn);display:flex;align-items:center;gap:var(--gl-space-sm);box-shadow:var(--gl-shadow-toast),var(--gl-inset-medium);z-index:1100;opacity:0;pointer-events:none;transition:var(--gl-transition-modal);font-family:var(--gl-font-family);-webkit-font-smoothing:antialiased}.glass-toast.is-visible{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}.glass-toast__icon{width:22px;height:22px;flex-shrink:0;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.glass-toast--success .glass-toast__icon{stroke:var(--gl-color-success)}.glass-toast--error .glass-toast__icon{stroke:var(--gl-color-error)}.glass-toast--warning .glass-toast__icon{stroke:var(--gl-color-warning)}.glass-toast__text{font-size:var(--gl-font-size-sm);font-weight:var(--gl-font-weight-medium);color:var(--gl-color-text);line-height:1.4}.glass-tab-bar{position:fixed;bottom:0;left:0;right:0;height:var(--gl-tab-bar-height);background:linear-gradient(to bottom,var(--gl-surface-3) 0,var(--gl-surface-1) 100%);backdrop-filter:blur(var(--gl-blur));-webkit-backdrop-filter:blur(var(--gl-blur));border-top:1px solid var(--gl-border-subtle);display:flex;justify-content:space-around;align-items:flex-start;padding-top:var(--gl-space-xs);padding-bottom:env(safe-area-inset-bottom,8px);z-index:900;box-shadow:0 -4px 20px rgba(0,0,0,.08),var(--gl-inset-subtle)}.glass-tab-bar__item{display:flex;flex-direction:column;align-items:center;gap:var(--gl-space-2xs);padding:var(--gl-space-2xs) var(--gl-space-sm);background:0 0;border:none;cursor:pointer;transition:var(--gl-transition);outline:0;-webkit-tap-highlight-color:transparent;min-width:60px}.glass-tab-bar__icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;position:relative}.glass-tab-bar__icon svg{width:24px;height:24px;fill:none;stroke:var(--gl-icon-muted);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:var(--gl-transition)}.glass-tab-bar__label{font-size:10px;font-weight:var(--gl-font-weight-medium);color:var(--gl-icon-muted);transition:var(--gl-transition);letter-spacing:.2px}.glass-tab-bar__item.is-active .glass-tab-bar__icon svg{stroke:var(--gl-color-primary);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--gl-color-primary) 35%, transparent))}.glass-tab-bar__item.is-active .glass-tab-bar__label{color:var(--gl-color-primary)}.glass-tab-bar__item.is-active .glass-tab-bar__icon::after{content:'';position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:var(--gl-radius-pill);background:var(--gl-color-primary);box-shadow:0 0 6px color-mix(in srgb,var(--gl-color-primary) 50%,transparent)}.glass-tab-bar__item:not(.is-active):hover .glass-tab-bar__icon svg{stroke:var(--gl-icon-default)}.glass-tab-bar__item:not(.is-active):hover .glass-tab-bar__label{color:var(--gl-icon-default)}.glass-tab-bar__badge{position:absolute;top:-4px;right:-8px;min-width:16px;height:16px;padding:0 4px;border-radius:var(--gl-radius-full);background:var(--gl-color-error-dark,#d63027);color:#fff;font-size:10px;font-weight:var(--gl-font-weight-semibold);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px color-mix(in srgb,var(--gl-color-error) 40%,transparent)}.glass-tab-bar-dock{position:fixed;left:50%;bottom:calc(var(--gl-tab-bar-floating-bottom) + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:flex;align-items:center;gap:var(--gl-tab-bar-floating-gap);z-index:900;max-width:calc(100vw - 2 * var(--gl-space-md))}.glass-tab-bar-dock--accessory-left{flex-direction:row-reverse}.glass-tab-bar.glass-tab-bar--floating{position:static;left:auto;right:auto;bottom:auto;height:auto;width:max-content;padding:var(--gl-tab-bar-floating-padding);border-radius:var(--gl-tab-bar-floating-radius);border:1px solid var(--gl-border-subtle);background:linear-gradient(to bottom,var(--gl-surface-3) 0,var(--gl-surface-1) 100%);box-shadow:0 8px 32px rgba(0,0,0,.18),0 2px 8px rgba(0,0,0,.08),var(--gl-inset-subtle);display:flex;justify-content:flex-start;align-items:center;gap:var(--gl-space-2xs)}.glass-tab-bar--floating .glass-tab-bar__item{position:relative;border-radius:var(--gl-radius-full);padding:var(--gl-space-2xs) var(--gl-space-sm);min-width:auto;align-items:center}.glass-tab-bar--floating .glass-tab-bar__item>*{position:relative;z-index:1}.glass-tab-bar--floating .glass-tab-bar__item.is-active::before{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at center,color-mix(in srgb,var(--gl-tab-bar-spotlight-color) 28%,transparent) 0,color-mix(in srgb,var(--gl-tab-bar-spotlight-color) 10%,transparent) 55%,transparent 100%);pointer-events:none;z-index:0}.glass-tab-bar--floating .glass-tab-bar__item.is-active .glass-tab-bar__icon::after{display:none}.glass-tab-bar__accessory{width:var(--gl-tab-bar-accessory-size);height:var(--gl-tab-bar-accessory-size);border-radius:var(--gl-radius-pill);background:linear-gradient(to bottom,var(--gl-surface-3) 0,var(--gl-surface-1) 100%);backdrop-filter:blur(var(--gl-blur));-webkit-backdrop-filter:blur(var(--gl-blur));border:1px solid var(--gl-border-subtle);box-shadow:0 8px 32px rgba(0,0,0,.18),0 2px 8px rgba(0,0,0,.08),var(--gl-inset-subtle);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--gl-transition);outline:0;padding:0;-webkit-tap-highlight-color:transparent;flex-shrink:0}.glass-tab-bar__accessory ::slotted(svg),.glass-tab-bar__accessory svg{width:22px;height:22px;fill:none;stroke:var(--gl-icon-default);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:var(--gl-transition)}.glass-tab-bar__accessory:hover{transform:translateY(-1px)}.glass-tab-bar__accessory:hover ::slotted(svg),.glass-tab-bar__accessory:hover svg{stroke:var(--gl-icon-strong)}.glass-tab-bar__accessory:focus-visible{box-shadow:0 8px 32px rgba(0,0,0,.18),var(--gl-shadow-focus),var(--gl-inset-subtle)}.glass-tab-bar__accessory--accent{background:linear-gradient(135deg,var(--gl-color-primary) 0,color-mix(in srgb,var(--gl-color-primary) 70%,transparent) 100%);border-color:color-mix(in srgb,var(--gl-color-primary) 50%,transparent);box-shadow:0 8px 32px color-mix(in srgb,var(--gl-color-primary) 35%,transparent),var(--gl-inset-medium)}.glass-tab-bar__accessory--accent ::slotted(svg),.glass-tab-bar__accessory--accent svg{stroke:var(--gl-color-on-primary,#ffffff)}.glass-tab-bar__accessory--accent:hover ::slotted(svg),.glass-tab-bar__accessory--accent:hover svg{stroke:var(--gl-color-on-primary,#ffffff)}.glass-tab-bar__accessory--success{background:linear-gradient(135deg,var(--gl-color-success) 0,color-mix(in srgb,var(--gl-color-success) 70%,transparent) 100%);border-color:color-mix(in srgb,var(--gl-color-success) 50%,transparent);box-shadow:0 8px 32px color-mix(in srgb,var(--gl-color-success) 35%,transparent),var(--gl-inset-medium)}.glass-tab-bar__accessory--success ::slotted(svg),.glass-tab-bar__accessory--success svg{stroke:var(--gl-color-on-success,#ffffff)}.glass-tab-bar__accessory--error{background:linear-gradient(135deg,var(--gl-color-error) 0,color-mix(in srgb,var(--gl-color-error) 70%,transparent) 100%);border-color:color-mix(in srgb,var(--gl-color-error) 50%,transparent);box-shadow:0 8px 32px color-mix(in srgb,var(--gl-color-error) 35%,transparent),var(--gl-inset-medium)}.glass-tab-bar__accessory--error ::slotted(svg),.glass-tab-bar__accessory--error svg{stroke:var(--gl-color-on-error,#ffffff)}.glass-accordion{display:flex;flex-direction:column;gap:var(--gl-space-xs)}.glass-accordion__item{background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur-light));-webkit-backdrop-filter:blur(var(--gl-blur-light));border:1px solid var(--gl-border-subtle);border-radius:var(--gl-radius-btn);overflow:hidden;transition:var(--gl-transition);box-shadow:var(--gl-inset-subtle)}.glass-accordion__item.is-open{background:var(--gl-surface-3);border-color:var(--gl-border-medium);box-shadow:0 4px 16px rgba(0,0,0,.1),var(--gl-inset-medium)}.glass-accordion__trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--gl-space-sm);padding:var(--gl-space-md) var(--gl-space-lg);background:0 0;border:none;cursor:pointer;font-family:var(--gl-font-family);font-size:var(--gl-font-size-base);font-weight:var(--gl-font-weight-semibold);color:var(--gl-color-text);text-align:left;outline:0;transition:var(--gl-transition);-webkit-tap-highlight-color:transparent}.glass-accordion__trigger:hover{color:var(--gl-color-primary)}.glass-accordion__trigger-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.glass-accordion__trigger-icon svg{width:18px;height:18px;fill:none;stroke:var(--gl-icon-default);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s cubic-bezier(.4, 0, .2, 1)}.glass-accordion__item.is-open .glass-accordion__trigger-icon svg{transform:rotate(180deg);stroke:var(--gl-color-primary)}.glass-accordion__content{max-height:0;overflow:hidden;transition:max-height .35s cubic-bezier(.4, 0, .2, 1)}.glass-accordion__item.is-open .glass-accordion__content{max-height:500px}.glass-accordion__body{padding:0 var(--gl-space-lg) var(--gl-space-lg);color:var(--gl-accordion-body-color);font-size:var(--gl-font-size-sm);line-height:1.6}.glass-badge{display:inline-flex;align-items:center;gap:var(--gl-space-2xs);padding:var(--gl-space-2xs) var(--gl-space-sm);background:var(--gl-surface-3);backdrop-filter:blur(var(--gl-blur-soft));-webkit-backdrop-filter:blur(var(--gl-blur-soft));border:1px solid var(--gl-border-subtle);border-radius:var(--gl-radius-full);font-size:var(--gl-font-size-xs);font-weight:var(--gl-font-weight-medium);color:var(--gl-color-text);box-shadow:var(--gl-inset-subtle)}.glass-badge--primary{background:linear-gradient(135deg,var(--gl-color-primary-surface,rgba(245,166,35,.25)) 0,color-mix(in srgb,var(--gl-color-primary-dark) 20%,transparent) 100%),var(--gl-state-scrim,transparent);border-color:var(--gl-color-primary-border,var(--gl-border-warm));color:var(--gl-color-primary-on-surface,var(--gl-color-primary))}.glass-badge--success{background:linear-gradient(var(--gl-color-success-surface,rgba(52,199,89,.15)) 0,var(--gl-color-success-surface,rgba(52,199,89,.15)) 100%),var(--gl-state-scrim,transparent);border-color:var(--gl-color-success-border,rgba(52,199,89,.3));color:var(--gl-color-success-on-surface,var(--gl-color-success))}.glass-badge--error{background:linear-gradient(var(--gl-color-error-surface,rgba(255,59,48,.15)) 0,var(--gl-color-error-surface,rgba(255,59,48,.15)) 100%),var(--gl-state-scrim,transparent);border-color:var(--gl-color-error-border,rgba(255,59,48,.3));color:var(--gl-color-error-on-surface,var(--gl-color-error))}.glass-divider{height:1px;border:none;background:linear-gradient(90deg,transparent 0,var(--gl-border-subtle) 20%,var(--gl-border-medium) 50%,var(--gl-border-subtle) 80%,transparent 100%)}.glass-avatar{width:44px;height:44px;border-radius:var(--gl-radius-pill);background:var(--gl-surface-3);backdrop-filter:blur(var(--gl-blur-soft));-webkit-backdrop-filter:blur(var(--gl-blur-soft));border:1.5px solid var(--gl-border-strong);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:var(--gl-shadow-glow),var(--gl-inset-medium);flex-shrink:0;font-size:var(--gl-font-size-btn);font-weight:var(--gl-font-weight-semibold);color:var(--gl-color-text)}.glass-avatar ::slotted(img),.glass-avatar img{width:100%;height:100%;object-fit:cover}.glass-avatar--sm{width:32px;height:32px;font-size:var(--gl-font-size-xs)}.glass-avatar--lg{width:56px;height:56px;font-size:var(--gl-font-size-lg)}.glass-theme-toggle{width:46px;height:46px;border-radius:var(--gl-radius-pill);background:var(--gl-surface-3);backdrop-filter:blur(var(--gl-blur));-webkit-backdrop-filter:blur(var(--gl-blur));border:1.5px solid var(--gl-border-strong);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--gl-transition);box-shadow:var(--gl-shadow-glow),var(--gl-inset-medium);outline:0;-webkit-tap-highlight-color:transparent}.glass-theme-toggle:hover{background:var(--gl-surface-5);transform:scale(1.05)}.glass-theme-toggle:active{transform:scale(.95)}.glass-theme-toggle svg{width:20px;height:20px;fill:none;stroke:var(--gl-color-text);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.glass-theme-toggle .icon-sun{display:none}.glass-theme-toggle .icon-moon,[data-theme=light] .glass-theme-toggle .icon-sun{display:block}[data-theme=light] .glass-theme-toggle .icon-moon{display:none}.glass-popover-anchor{position:relative;display:inline-block}.glass-popover{position:absolute;top:calc(100% + var(--gl-space-xs));left:50%;transform:translateX(-50%) translateY(-4px) scale(.96);transform-origin:top center;min-width:220px;padding:var(--gl-space-sm);background:var(--gl-surface-3);backdrop-filter:blur(var(--gl-blur));-webkit-backdrop-filter:blur(var(--gl-blur));border:1px solid var(--gl-border-medium);border-radius:var(--gl-radius-card);box-shadow:var(--gl-shadow-card),var(--gl-inset-strong);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,transform .18s cubic-bezier(.2,.8,.2,1),visibility 0s linear .18s;z-index:50}.glass-popover.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0) scale(1);transition:opacity .18s,transform .22s cubic-bezier(.2,.8,.2,1),visibility linear}.glass-popover--top{top:auto;bottom:calc(100% + var(--gl-space-xs));transform-origin:bottom center}.glass-popover--start{left:0;transform:translateY(-4px) scale(.96);transform-origin:top left}.glass-popover--start.is-open{transform:translateY(0) scale(1)}.glass-popover--end{left:auto;right:0;transform:translateY(-4px) scale(.96);transform-origin:top right}.glass-popover--end.is-open{transform:translateY(0) scale(1)}.glass-list{background:var(--gl-surface-1);backdrop-filter:blur(var(--gl-blur-light));-webkit-backdrop-filter:blur(var(--gl-blur-light));border:1px solid var(--gl-border-subtle);border-radius:var(--gl-radius-btn);box-shadow:0 4px 12px rgba(0,0,0,.08),var(--gl-inset-subtle);overflow:hidden;display:flex;flex-direction:column;width:100%;margin:0;padding:0;list-style:none}.glass-list--flush{border-radius:0;border-left:none;border-right:none;margin-left:calc(var(--gl-space-lg) * -1);margin-right:calc(var(--gl-space-lg) * -1)}.glass-list--bare{background:0 0;backdrop-filter:none;-webkit-backdrop-filter:none;border:none;border-radius:0;box-shadow:none}.glass-list__section-header{padding:var(--gl-space-xs) var(--gl-space-lg) var(--gl-space-2xs);font-size:var(--gl-font-size-xs);font-weight:var(--gl-font-weight-semibold);color:var(--gl-color-text-muted);text-transform:uppercase;letter-spacing:.3px}.glass-list__item{position:relative;display:flex;align-items:center;gap:var(--gl-space-sm);padding:var(--gl-space-md) var(--gl-space-lg);min-height:56px;color:var(--gl-color-text);font-size:var(--gl-font-size-base);text-decoration:none;background:0 0;border:none;width:100%;text-align:left;font-family:inherit;list-style:none}.glass-list__item:not(:last-child)::after{content:'';position:absolute;left:calc(var(--gl-space-lg) + 28px + var(--gl-space-sm));right:var(--gl-space-lg);bottom:0;height:1px;background:var(--gl-border-subtle);pointer-events:none}.glass-list__item:not(:has(.glass-list__leading)):not(:last-child)::after{left:var(--gl-space-lg)}.glass-list__item:has(.glass-list__leading--lg):not(:last-child)::after{left:calc(var(--gl-space-lg) + 40px + var(--gl-space-sm))}.glass-list__item--center{justify-content:center;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.glass-list__item--center>.glass-list__title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.glass-list__item--interactive{cursor:pointer;transition:background .15s}.glass-list__item--interactive:focus-visible,.glass-list__item--interactive:hover{background:var(--gl-surface-2);outline:0}.glass-list__item--interactive:active{background:var(--gl-surface-3)}.glass-list__item--danger{color:var(--gl-color-error)}.glass-list__item--danger .glass-list__leading,.glass-list__item--danger .glass-list__title{color:inherit}.glass-list__item--accent{color:var(--gl-color-primary)}.glass-list__item--accent .glass-list__leading,.glass-list__item--accent .glass-list__title{color:inherit}.glass-list__leading{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--gl-icon-strong)}.glass-list__leading ::slotted(svg),.glass-list__leading svg{width:24px;height:24px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.glass-list__leading--lg{width:40px;height:40px;border-radius:var(--gl-radius-xs);overflow:hidden}.glass-list__leading--lg ::slotted(svg),.glass-list__leading--lg svg{width:32px;height:32px}.glass-list__leading--lg ::slotted(img),.glass-list__leading--lg img{width:100%;height:100%;object-fit:cover;display:block}.glass-list__content{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:2px;overflow:hidden}.glass-list__title{font-size:var(--gl-font-size-base);font-weight:var(--gl-font-weight-medium);color:var(--gl-color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.glass-list__subtitle{font-size:var(--gl-font-size-sm);color:var(--gl-color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.glass-list__subtitle--wrap{white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.glass-list__trailing{flex-shrink:0;display:flex;align-items:center;gap:var(--gl-space-xs);color:var(--gl-color-text-muted);font-size:var(--gl-font-size-sm)}.glass-list__trailing ::slotted(svg),.glass-list__trailing svg{width:18px;height:18px;stroke:var(--gl-icon-muted);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.glass-list__value{color:var(--gl-color-text-muted);font-size:var(--gl-font-size-sm);white-space:nowrap}.gl-stack{display:flex;flex-direction:column}.gl-row{display:flex;flex-direction:row;align-items:center}.gl-stack--2xs{gap:var(--gl-space-2xs)}.gl-stack--xs{gap:var(--gl-space-xs)}.gl-stack--sm{gap:var(--gl-space-sm)}.gl-stack--md{gap:var(--gl-space-md)}.gl-stack--lg{gap:var(--gl-space-lg)}.gl-stack--xl{gap:var(--gl-space-xl)}.gl-row--xs{gap:var(--gl-space-xs)}.gl-row--sm{gap:var(--gl-space-sm)}.gl-row--md{gap:var(--gl-space-md)}.gl-text-center{text-align:center}.gl-text-muted{color:var(--gl-color-text-muted)}.gl-text-sm{font-size:var(--gl-font-size-sm)}.gl-mt-sm{margin-top:var(--gl-space-sm)}.gl-mt-md{margin-top:var(--gl-space-md)}.gl-mt-lg{margin-top:var(--gl-space-lg)}.gl-mt-xl{margin-top:var(--gl-space-xl)}.gl-mb-sm{margin-bottom:var(--gl-space-sm)}.gl-mb-md{margin-bottom:var(--gl-space-md)}.gl-mb-lg{margin-bottom:var(--gl-space-lg)}.gl-mb-xl{margin-bottom:var(--gl-space-xl)}.gl-px{padding-left:var(--gl-space-lg);padding-right:var(--gl-space-lg)}.gl-w-full{width:100%}.gl-flex-1{flex:1}svg.glass-icon--fill{fill:currentColor;stroke:none}\n/*# sourceMappingURL=glasskit.min.css.map */",a=s+r,i=s+e+r;(new CSSStyleSheet).replaceSync(i);(new CSSStyleSheet).replaceSync(e);const l=new CSSStyleSheet;l.replaceSync(a);const o="__glkDefaultTokensInjected";!function(){if("undefined"==typeof document)return;if(globalThis[o])return;globalThis[o]=!0;const t=new CSSStyleSheet;t.replaceSync(`@layer glasskit-defaults { ${e} }`),document.adoptedStyleSheets=[...document.adoptedStyleSheets,t]}();const n=new Set;function g(){return document.documentElement.getAttribute("data-theme")||"dark"}if("undefined"!=typeof window&&"undefined"!=typeof MutationObserver){new MutationObserver(function(){const t=g();for(const e of n)e._syncTheme(t)}).observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]})}const c=new CSSStyleSheet;c.replaceSync("\n :host { display: block; }\n :host([hidden]) { display: none; }\n .glk-wrapper { display: contents; }\n");const d=new CSSStyleSheet;d.replaceSync("\n :host { display: inline-block; }\n :host([hidden]) { display: none; }\n .glk-wrapper { display: contents; }\n");class h extends HTMLElement{static get displayInline(){return!1}static get hostStyles(){return null}static get observedAttributes(){return[]}constructor(){super(),this._initialized=!1,this._shadow=this.attachShadow({mode:"open"});const t=this.constructor.displayInline?d:c,e=[l,t],s=this.constructor.hostStyles;s&&e.push(s),this._shadow.adoptedStyleSheets=e}connectedCallback(){this._initialized||(this._initialized=!0,this._wrapper=document.createElement("div"),this._wrapper.className="glk-wrapper",this._wrapper.setAttribute("data-theme",g()),this._shadow.appendChild(this._wrapper),this.render(),this.setupEvents(),n.add(this))}disconnectedCallback(){n.delete(this),this.teardownEvents()}attributeChangedCallback(t,e,s){this._initialized&&e!==s&&this.onAttributeChanged(t,e,s)}_syncTheme(t){this._wrapper&&this._wrapper.setAttribute("data-theme",t)}render(){}setupEvents(){}teardownEvents(){}onAttributeChanged(t,e,s){}getBoolAttr(t){return this.hasAttribute(t)}setBoolAttr(t,e){e?this.setAttribute(t,""):this.removeAttribute(t)}createElement(t,e=[],s={}){const r=document.createElement(t);e.length&&r.classList.add(...e);for(const[t,e]of Object.entries(s))r.setAttribute(t,e);return r}emit(t,e=null){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}}class b extends h{static formAssociated=!0;constructor(){super(),this._internals=this.attachInternals()}get form(){return this._internals.form}get validationMessage(){return this._internals.validationMessage}get validity(){return this._internals.validity}checkValidity(){return this._internals.checkValidity()}reportValidity(){return this._internals.reportValidity()}formResetCallback(){this.resetValue()}formStateRestoreCallback(t,e){this.restoreValue(t)}resetValue(){}restoreValue(t){}setFormValue(t){this._internals.setFormValue(t)}setValidity(t,e,s){this._internals.setValidity(t,e,s)}}class p extends h{render(){const t=this.createElement("nav",["glass-nav"]);t.appendChild(document.createElement("slot")),this._wrapper.appendChild(t)}}customElements.define("glk-nav",p);class u extends h{static get observedAttributes(){return["label","disabled"]}render(){this._btn=this.createElement("button",["glass-pill"]),this.getBoolAttr("disabled")&&(this._btn.disabled=!0);const t=this.getAttribute("label");t&&this._btn.setAttribute("aria-label",t),this._btn.appendChild(document.createElement("slot")),this._wrapper.appendChild(this._btn)}setupEvents(){this._onClick=()=>{this.getBoolAttr("disabled")||this.emit("glk-click")},this._btn.addEventListener("click",this._onClick)}teardownEvents(){this._btn?.removeEventListener("click",this._onClick)}onAttributeChanged(t){if(this._btn)switch(t){case"label":this._btn.setAttribute("aria-label",this.getAttribute("label")||"");break;case"disabled":this._btn.disabled=this.getBoolAttr("disabled")}}}customElements.define("glk-pill",u);class v extends h{static get observedAttributes(){return["static","floating"]}render(){const t=this.createElement("nav",["glass-tab-bar"]);t.appendChild(document.createElement("slot")),this._wrapper.appendChild(t),this._nav=t,this.getBoolAttr("floating")&&t.classList.add("glass-tab-bar--floating"),this.getBoolAttr("static")&&this._applyStatic()}onAttributeChanged(t){this._nav&&("static"===t?this._applyStatic():"floating"===t&&this._nav.classList.toggle("glass-tab-bar--floating",this.getBoolAttr("floating")))}_applyStatic(){this._nav.style.position="relative",this._nav.style.borderRadius="16px"}setupEvents(){this._onTabSelect=t=>{this.querySelectorAll("glk-tab-item").forEach(e=>{e!==t.target&&e.removeAttribute("active")}),this.emit("glk-tab-change",{tab:t.target})},this.addEventListener("glk-tab-select",this._onTabSelect)}teardownEvents(){this.removeEventListener("glk-tab-select",this._onTabSelect)}}customElements.define("glk-tab-bar",v);class m extends h{static get observedAttributes(){return["label","active","badge"]}render(){this._btn=this.createElement("button",["glass-tab-bar__item"]),this.getBoolAttr("active")&&this._btn.classList.add("is-active"),this._iconEl=this.createElement("span",["glass-tab-bar__icon"]),this._labelEl=this.createElement("span",["glass-tab-bar__label"]),this._labelEl.textContent=this.getAttribute("label")||"";const t=this.getAttribute("badge");t&&(this._badgeEl=this.createElement("span",["glass-tab-bar__badge"]),this._badgeEl.textContent=t,this._iconEl.appendChild(this._badgeEl)),this._btn.appendChild(this._iconEl),this._btn.appendChild(this._labelEl),this._wrapper.appendChild(this._btn),requestAnimationFrame(()=>this._cloneIcon())}_cloneIcon(){const t=this.querySelector("svg");if(t){const e=t.cloneNode(!0);e.removeAttribute("width"),e.removeAttribute("height"),e.removeAttribute("stroke"),e.removeAttribute("stroke-width"),e.removeAttribute("stroke-linecap"),e.removeAttribute("stroke-linejoin"),e.removeAttribute("fill"),this._iconEl.insertBefore(e,this._iconEl.firstChild)}}setupEvents(){this._onClick=()=>{this.setAttribute("active",""),this.emit("glk-tab-select")},this._btn.addEventListener("click",this._onClick)}teardownEvents(){this._btn?.removeEventListener("click",this._onClick)}onAttributeChanged(t){if(this._btn)switch(t){case"active":this._btn.classList.toggle("is-active",this.getBoolAttr("active"));break;case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"badge":{const t=this.getAttribute("badge");t?(this._badgeEl||(this._badgeEl=this.createElement("span",["glass-tab-bar__badge"]),this._iconEl.appendChild(this._badgeEl)),this._badgeEl.textContent=t):this._badgeEl&&(this._badgeEl.remove(),this._badgeEl=null);break}}}}customElements.define("glk-tab-item",m);class _ extends h{static get observedAttributes(){return["accessory-left","static"]}render(){this._dock=this.createElement("div",["glass-tab-bar-dock"]),this.getBoolAttr("accessory-left")&&this._dock.classList.add("glass-tab-bar-dock--accessory-left"),this._dock.appendChild(document.createElement("slot")),this._wrapper.appendChild(this._dock),this.getBoolAttr("static")&&this._applyStatic()}onAttributeChanged(t){this._dock&&("accessory-left"===t?this._dock.classList.toggle("glass-tab-bar-dock--accessory-left",this.getBoolAttr("accessory-left")):"static"===t&&this._applyStatic())}_applyStatic(){this.getBoolAttr("static")?(this._dock.style.position="relative",this._dock.style.left="auto",this._dock.style.bottom="auto",this._dock.style.transform="none",this._dock.style.justifyContent="center"):(this._dock.style.position="",this._dock.style.left="",this._dock.style.bottom="",this._dock.style.transform="",this._dock.style.justifyContent="")}}customElements.define("glk-tab-dock",_);const f=["accent","success","error"];class x extends h{static get observedAttributes(){return["label","disabled","variant"]}render(){this._btn=this.createElement("button",["glass-tab-bar__accessory"]),this.getBoolAttr("disabled")&&(this._btn.disabled=!0);const t=this.getAttribute("label");t&&this._btn.setAttribute("aria-label",t),this._applyVariant(),this._btn.appendChild(document.createElement("slot")),this._wrapper.appendChild(this._btn)}_applyVariant(){if(!this._btn)return;for(const t of f)this._btn.classList.remove(`glass-tab-bar__accessory--${t}`);const t=this.getAttribute("variant");t&&f.includes(t)&&this._btn.classList.add(`glass-tab-bar__accessory--${t}`)}setupEvents(){this._onClick=()=>{this.getBoolAttr("disabled")||this.emit("glk-click")},this._btn.addEventListener("click",this._onClick)}teardownEvents(){this._btn?.removeEventListener("click",this._onClick)}onAttributeChanged(t){if(this._btn)switch(t){case"label":this._btn.setAttribute("aria-label",this.getAttribute("label")||"");break;case"disabled":this._btn.disabled=this.getBoolAttr("disabled");break;case"variant":this._applyVariant()}}}customElements.define("glk-tab-accessory",x);const k=new CSSStyleSheet;k.replaceSync("\n :host([fill]) { display: grid; }\n :host([fill]) .glass-card { display: flex; flex-direction: column; }\n");class w extends h{static get observedAttributes(){return["glow","fill"]}static get hostStyles(){return k}render(){this._card=this.createElement("div",this._computeClasses(),{part:"card"}),this._card.appendChild(document.createElement("slot")),this._wrapper.appendChild(this._card)}onAttributeChanged(t){"glow"===t&&this._card&&(this._card.className=this._computeClasses().join(" "))}_computeClasses(){const t=["glass-card"];return this.getBoolAttr("glow")&&t.push("glass-card--glow"),t}get glow(){return this.getBoolAttr("glow")}set glow(t){this.setBoolAttr("glow",t)}get fill(){return this.getBoolAttr("fill")}set fill(t){this.setBoolAttr("fill",t)}}customElements.define("glk-card",w);const y=["primary","success","error"];class A extends h{static get displayInline(){return!0}static get observedAttributes(){return["variant"]}render(){this._badge=this.createElement("span",this._computeClasses()),this._badge.appendChild(document.createElement("slot")),this._wrapper.appendChild(this._badge)}onAttributeChanged(t){"variant"===t&&this._badge&&(this._badge.className=this._computeClasses().join(" "))}_computeClasses(){const t=["glass-badge"],e=this.getAttribute("variant");return e&&y.includes(e)&&t.push(`glass-badge--${e}`),t}get variant(){return this.getAttribute("variant")}set variant(t){this.setAttribute("variant",t)}}customElements.define("glk-badge",A);const E=["sm","lg"];class C extends h{static get displayInline(){return!0}static get observedAttributes(){return["size","src","alt"]}render(){this._avatar=this.createElement("div",this._computeClasses()),this._updateContent(),this._wrapper.appendChild(this._avatar)}onAttributeChanged(t){this._avatar&&("size"===t?this._avatar.className=this._computeClasses().join(" "):"src"!==t&&"alt"!==t||this._updateContent())}_updateContent(){const t=this.getAttribute("src");if(this._avatar.innerHTML="",t){const e=this.createElement("img",[],{src:t,alt:this.getAttribute("alt")||""});this._avatar.appendChild(e)}else this._avatar.appendChild(document.createElement("slot"))}_computeClasses(){const t=["glass-avatar"],e=this.getAttribute("size");return e&&E.includes(e)&&t.push(`glass-avatar--${e}`),t}get size(){return this.getAttribute("size")}set size(t){this.setAttribute("size",t)}get src(){return this.getAttribute("src")}set src(t){this.setAttribute("src",t)}}customElements.define("glk-avatar",C);class B extends h{static get observedAttributes(){return[]}render(){const t=this.createElement("div",["glass-title"]);t.appendChild(document.createElement("slot")),this._wrapper.appendChild(t)}}customElements.define("glk-title",B);class z extends h{render(){const t=this.createElement("div",["glass-divider"]);this._wrapper.appendChild(t)}}customElements.define("glk-divider",z);class S extends h{static get observedAttributes(){return["message"]}render(){this._container=this.createElement("div",["glass-status"]),this._iconSlot=this.createElement("span",[]),this._iconSlot.appendChild(this.createElement("slot",[],{name:"icon"})),this._messageEl=this.createElement("p",[]),this._messageEl.textContent=this.getAttribute("message")||"",this._container.appendChild(this._iconSlot),this._container.appendChild(this._messageEl),this._wrapper.appendChild(this._container)}onAttributeChanged(t){"message"===t&&this._messageEl&&(this._messageEl.textContent=this.getAttribute("message")||"")}get message(){return this.getAttribute("message")}set message(t){this.setAttribute("message",t)}}customElements.define("glk-status",S);const L=["primary","secondary","tertiary"],V=["sm","md","lg","auto"];class F extends h{static get observedAttributes(){return["variant","size","disabled","type"]}render(){this._btn=this.createElement("button",this._computeClasses(),{type:this.getAttribute("type")||"button"}),this.getBoolAttr("disabled")&&(this._btn.disabled=!0),this._btn.appendChild(document.createElement("slot")),this._wrapper.appendChild(this._btn)}setupEvents(){this._onClick=t=>{if(this.getBoolAttr("disabled"))return t.preventDefault(),void t.stopPropagation();this.emit("glk-click")},this._btn.addEventListener("click",this._onClick)}teardownEvents(){this._btn?.removeEventListener("click",this._onClick)}onAttributeChanged(t){if(this._btn)switch(t){case"variant":case"size":this._btn.className=this._computeClasses().join(" ");break;case"disabled":this._btn.disabled=this.getBoolAttr("disabled");break;case"type":this._btn.setAttribute("type",this.getAttribute("type")||"button")}}_computeClasses(){const t=["glass-btn"],e=this.getAttribute("variant");e&&L.includes(e)&&t.push(`glass-btn--${e}`);const s=this.getAttribute("size");return s&&V.includes(s)&&t.push(`glass-btn--${s}`),t}get variant(){return this.getAttribute("variant")}set variant(t){this.setAttribute("variant",t)}get size(){return this.getAttribute("size")}set size(t){this.setAttribute("size",t)}get disabled(){return this.getBoolAttr("disabled")}set disabled(t){this.setBoolAttr("disabled",t)}}customElements.define("glk-button",F);class j extends b{static get observedAttributes(){return["label","type","placeholder","error","hint","disabled","name","value","required"]}render(){const t=this.createElement("div",["glass-input-group"]);this._labelEl=this.createElement("label",["glass-label"]),this._labelEl.textContent=this.getAttribute("label")||"",this._input=this.createElement("input",this._computeInputClasses(),{type:this.getAttribute("type")||"text"});const e=this.getAttribute("placeholder");e&&this._input.setAttribute("placeholder",e);const s=this.getAttribute("name");s&&this._input.setAttribute("name",s);const r=this.getAttribute("value");r&&(this._input.value=r),this.getBoolAttr("disabled")&&(this._input.disabled=!0),this.getBoolAttr("required")&&(this._input.required=!0),this._hintEl=this.createElement("span",this._computeHintClasses()),this._hintEl.textContent=this.getAttribute("hint")||"",t.appendChild(this._labelEl),t.appendChild(this._input),this.getAttribute("hint")&&t.appendChild(this._hintEl),this._group=t,this._wrapper.appendChild(t),this._syncFormValue()}setupEvents(){this._onInput=()=>{this._syncFormValue(),this.emit("glk-input",{value:this._input.value}),this.dispatchEvent(new Event("input",{bubbles:!0}))},this._onChangeNative=()=>{this.emit("glk-change",{value:this._input.value}),this.dispatchEvent(new Event("change",{bubbles:!0}))},this._input.addEventListener("input",this._onInput),this._input.addEventListener("change",this._onChangeNative)}teardownEvents(){this._input?.removeEventListener("input",this._onInput),this._input?.removeEventListener("change",this._onChangeNative)}onAttributeChanged(t){if(this._input)switch(t){case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"type":this._input.setAttribute("type",this.getAttribute("type")||"text");break;case"placeholder":this._input.setAttribute("placeholder",this.getAttribute("placeholder")||"");break;case"error":this._input.className=this._computeInputClasses().join(" "),this._hintEl.className=this._computeHintClasses().join(" ");break;case"hint":this._hintEl.textContent=this.getAttribute("hint")||"",this.getAttribute("hint")&&!this._hintEl.parentNode&&this._group.appendChild(this._hintEl);break;case"disabled":this._input.disabled=this.getBoolAttr("disabled");break;case"name":this._input.setAttribute("name",this.getAttribute("name")||"");break;case"value":this._input.value=this.getAttribute("value")||"",this._syncFormValue();break;case"required":this._input.required=this.getBoolAttr("required")}}_computeInputClasses(){const t=["glass-input"];return this.getBoolAttr("error")&&t.push("glass-input--error"),t}_computeHintClasses(){const t=["glass-hint"];return this.getBoolAttr("error")&&t.push("glass-hint--error"),t}_syncFormValue(){this.setFormValue(this._input.value)}resetValue(){this._input.value=this.getAttribute("value")||"",this._syncFormValue()}get value(){return this._input?.value??""}set value(t){this._input&&(this._input.value=t),this._syncFormValue()}get disabled(){return this.getBoolAttr("disabled")}set disabled(t){this.setBoolAttr("disabled",t)}get name(){return this.getAttribute("name")}set name(t){this.setAttribute("name",t)}}customElements.define("glk-input",j);class T extends b{static get observedAttributes(){return["label","placeholder","rows","disabled","name","value","required"]}render(){const t=this.createElement("div",["glass-input-group"]);this._labelEl=this.createElement("label",["glass-label"]),this._labelEl.textContent=this.getAttribute("label")||"",this._textarea=this.createElement("textarea",["glass-textarea"]);const e=this.getAttribute("placeholder");e&&this._textarea.setAttribute("placeholder",e);const s=this.getAttribute("rows");s&&this._textarea.setAttribute("rows",s);const r=this.getAttribute("name");r&&this._textarea.setAttribute("name",r);const a=this.getAttribute("value");a&&(this._textarea.value=a),this.getBoolAttr("disabled")&&(this._textarea.disabled=!0),this.getBoolAttr("required")&&(this._textarea.required=!0),t.appendChild(this._labelEl),t.appendChild(this._textarea),this._wrapper.appendChild(t),this._syncFormValue()}setupEvents(){this._onInput=()=>{this._syncFormValue(),this.emit("glk-input",{value:this._textarea.value}),this.dispatchEvent(new Event("input",{bubbles:!0}))},this._textarea.addEventListener("input",this._onInput)}teardownEvents(){this._textarea?.removeEventListener("input",this._onInput)}onAttributeChanged(t){if(this._textarea)switch(t){case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"placeholder":this._textarea.setAttribute("placeholder",this.getAttribute("placeholder")||"");break;case"rows":this._textarea.setAttribute("rows",this.getAttribute("rows")||"");break;case"disabled":this._textarea.disabled=this.getBoolAttr("disabled");break;case"name":this._textarea.setAttribute("name",this.getAttribute("name")||"");break;case"value":this._textarea.value=this.getAttribute("value")||"",this._syncFormValue()}}_syncFormValue(){this.setFormValue(this._textarea.value)}resetValue(){this._textarea.value=this.getAttribute("value")||"",this._syncFormValue()}get value(){return this._textarea?.value??""}set value(t){this._textarea&&(this._textarea.value=t),this._syncFormValue()}get disabled(){return this.getBoolAttr("disabled")}set disabled(t){this.setBoolAttr("disabled",t)}}customElements.define("glk-textarea",T);class I extends b{static get observedAttributes(){return["label","disabled","name","value","required"]}render(){const t=this.createElement("div",["glass-input-group"]);this._labelEl=this.createElement("label",["glass-label"]),this._labelEl.textContent=this.getAttribute("label")||"",this._select=this.createElement("select",["glass-select"]);const e=this.getAttribute("name");e&&this._select.setAttribute("name",e),this.getBoolAttr("disabled")&&(this._select.disabled=!0),this.getBoolAttr("required")&&(this._select.required=!0),t.appendChild(this._labelEl),t.appendChild(this._select),this._wrapper.appendChild(t),requestAnimationFrame(()=>{this._moveOptions();const t=this.getAttribute("value");t&&(this._select.value=t),this._syncFormValue()})}_moveOptions(){this._select.innerHTML="";this.querySelectorAll("option").forEach(t=>{this._select.appendChild(t.cloneNode(!0))})}setupEvents(){this._onChange=()=>{this._syncFormValue(),this.emit("glk-change",{value:this._select.value}),this.dispatchEvent(new Event("change",{bubbles:!0}))},this._select.addEventListener("change",this._onChange)}teardownEvents(){this._select?.removeEventListener("change",this._onChange)}onAttributeChanged(t){if(this._select)switch(t){case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"disabled":this._select.disabled=this.getBoolAttr("disabled");break;case"name":this._select.setAttribute("name",this.getAttribute("name")||"");break;case"value":this._select.value=this.getAttribute("value")||"",this._syncFormValue()}}_syncFormValue(){this.setFormValue(this._select.value)}resetValue(){this._select.selectedIndex=0,this._syncFormValue()}get value(){return this._select?.value??""}set value(t){this._select&&(this._select.value=t),this._syncFormValue()}get disabled(){return this.getBoolAttr("disabled")}set disabled(t){this.setBoolAttr("disabled",t)}}customElements.define("glk-select",I);class G extends b{static get observedAttributes(){return["placeholder","name","value","disabled"]}render(){const t=this.createElement("div",["glass-search"]),e=this.createElement("span",["glass-search__icon"]);e.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>',this._input=this.createElement("input",["glass-input"],{type:"search"});const s=this.getAttribute("placeholder");s&&this._input.setAttribute("placeholder",s);const r=this.getAttribute("name");r&&this._input.setAttribute("name",r);const a=this.getAttribute("value");a&&(this._input.value=a),this.getBoolAttr("disabled")&&(this._input.disabled=!0),t.appendChild(e),t.appendChild(this._input),this._wrapper.appendChild(t),this._syncFormValue()}setupEvents(){this._onInput=()=>{this._syncFormValue(),this.emit("glk-input",{value:this._input.value}),this.dispatchEvent(new Event("input",{bubbles:!0}))},this._input.addEventListener("input",this._onInput)}teardownEvents(){this._input?.removeEventListener("input",this._onInput)}onAttributeChanged(t){if(this._input)switch(t){case"placeholder":this._input.setAttribute("placeholder",this.getAttribute("placeholder")||"");break;case"name":this._input.setAttribute("name",this.getAttribute("name")||"");break;case"value":this._input.value=this.getAttribute("value")||"",this._syncFormValue();break;case"disabled":this._input.disabled=this.getBoolAttr("disabled")}}_syncFormValue(){this.setFormValue(this._input.value)}resetValue(){this._input.value=this.getAttribute("value")||"",this._syncFormValue()}get value(){return this._input?.value??""}set value(t){this._input&&(this._input.value=t),this._syncFormValue()}}customElements.define("glk-search",G);class q extends b{static get observedAttributes(){return["checked","disabled","label","name","value"]}render(){const t=this.createElement("label",["glass-toggle"]);this._input=this.createElement("input",["glass-toggle__input"],{type:"checkbox"});const e=this.getAttribute("name");e&&this._input.setAttribute("name",e);const s=this.createElement("span",["glass-toggle__track"]),r=this.createElement("span",["glass-toggle__thumb"]);s.appendChild(r),this._labelEl=this.createElement("span",["glass-toggle__label"]),this._labelEl.textContent=this.getAttribute("label")||"",t.appendChild(this._input),t.appendChild(s),t.appendChild(this._labelEl),this.getBoolAttr("checked")&&(this._input.checked=!0),this.getBoolAttr("disabled")&&(this._input.disabled=!0),this._defaultChecked=this.getBoolAttr("checked"),this._wrapper.appendChild(t),this._syncFormValue(),this.setAttribute("role","switch"),this.setAttribute("aria-checked",String(this._input.checked)),this.getBoolAttr("disabled")&&this.setAttribute("aria-disabled","true")}setupEvents(){this._onChange=()=>{this._syncing=!0,this.setBoolAttr("checked",this._input.checked),this._syncing=!1,this.setAttribute("aria-checked",String(this._input.checked)),this._syncFormValue(),this.emit("glk-change",{checked:this._input.checked}),this.dispatchEvent(new Event("change",{bubbles:!0}))},this._input.addEventListener("change",this._onChange)}teardownEvents(){this._input?.removeEventListener("change",this._onChange)}onAttributeChanged(t){if(!this._syncing&&this._input)switch(t){case"checked":this._input.checked=this.getBoolAttr("checked"),this.setAttribute("aria-checked",String(this._input.checked)),this._syncFormValue();break;case"disabled":this._input.disabled=this.getBoolAttr("disabled"),this.setAttribute("aria-disabled",String(this.getBoolAttr("disabled")));break;case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"name":this._input.setAttribute("name",this.getAttribute("name")||"")}}_syncFormValue(){const t=this.getAttribute("value")||"on";this.setFormValue(this._input.checked?t:null)}resetValue(){this._input.checked=this._defaultChecked,this.setBoolAttr("checked",this._defaultChecked),this.setAttribute("aria-checked",String(this._defaultChecked)),this._syncFormValue()}restoreValue(t){t&&(this._input.checked=!0,this.setBoolAttr("checked",!0))}get checked(){return this._input?.checked??!1}set checked(t){this._input&&(this._input.checked=t),this.setBoolAttr("checked",t),this.setAttribute("aria-checked",String(t)),this._syncFormValue()}get disabled(){return this.getBoolAttr("disabled")}set disabled(t){this.setBoolAttr("disabled",t)}get name(){return this.getAttribute("name")}set name(t){this.setAttribute("name",t)}get value(){return this.getAttribute("value")||"on"}set value(t){this.setAttribute("value",t)}get label(){return this.getAttribute("label")}set label(t){this.setAttribute("label",t)}}customElements.define("glk-toggle",q);class N extends b{static get observedAttributes(){return["checked","disabled","label","name","value"]}render(){const t=this.createElement("label",["glass-checkbox"]);this._input=this.createElement("input",["glass-checkbox__input"],{type:"checkbox"});const e=this.getAttribute("name");e&&this._input.setAttribute("name",e);const s=this.createElement("span",["glass-checkbox__box"]);s.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>',this._labelEl=this.createElement("span",["glass-checkbox__label"]),this._labelEl.textContent=this.getAttribute("label")||"",t.appendChild(this._input),t.appendChild(s),t.appendChild(this._labelEl),this.getBoolAttr("checked")&&(this._input.checked=!0),this.getBoolAttr("disabled")&&(this._input.disabled=!0),this._defaultChecked=this.getBoolAttr("checked"),this._wrapper.appendChild(t),this._syncFormValue()}setupEvents(){this._onChange=()=>{this._syncing=!0,this.setBoolAttr("checked",this._input.checked),this._syncing=!1,this._syncFormValue(),this.emit("glk-change",{checked:this._input.checked}),this.dispatchEvent(new Event("change",{bubbles:!0}))},this._input.addEventListener("change",this._onChange)}teardownEvents(){this._input?.removeEventListener("change",this._onChange)}onAttributeChanged(t){if(!this._syncing&&this._input)switch(t){case"checked":this._input.checked=this.getBoolAttr("checked"),this._syncFormValue();break;case"disabled":this._input.disabled=this.getBoolAttr("disabled");break;case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"name":this._input.setAttribute("name",this.getAttribute("name")||"")}}_syncFormValue(){const t=this.getAttribute("value")||"on";this.setFormValue(this._input.checked?t:null)}resetValue(){this._input.checked=this._defaultChecked,this.setBoolAttr("checked",this._defaultChecked),this._syncFormValue()}get checked(){return this._input?.checked??!1}set checked(t){this._input&&(this._input.checked=t),this.setBoolAttr("checked",t),this._syncFormValue()}get disabled(){return this.getBoolAttr("disabled")}set disabled(t){this.setBoolAttr("disabled",t)}get name(){return this.getAttribute("name")}set name(t){this.setAttribute("name",t)}get value(){return this.getAttribute("value")||"on"}set value(t){this.setAttribute("value",t)}}customElements.define("glk-checkbox",N);const M={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1};function D(t){return(void 0!==t.form?t.form:t.closest("form"))??null}function $(t){const e=t.filter(t=>!t.disabled);if(!e.length)return;const s=e.find(t=>t.checked)||e[0];for(const e of t)e._input&&(e._input.tabIndex=e===s?0:-1)}class Y extends b{static get observedAttributes(){return["checked","disabled","label","name","value"]}render(){const t=this.createElement("label",["glass-radio"]);this._input=this.createElement("input",["glass-radio__input"],{type:"radio"});const e=this.getAttribute("name");e&&this._input.setAttribute("name",e);const s=this.getAttribute("value");s&&this._input.setAttribute("value",s);const r=this.createElement("span",["glass-radio__circle"]),a=this.createElement("span",["glass-radio__dot"]);r.appendChild(a),this._labelEl=this.createElement("span",["glass-radio__label"]),this._labelEl.textContent=this.getAttribute("label")||"",t.appendChild(this._input),t.appendChild(r),t.appendChild(this._labelEl),this.getBoolAttr("checked")&&(this._input.checked=!0),this.getBoolAttr("disabled")&&(this._input.disabled=!0),this._defaultChecked=this.getBoolAttr("checked"),this._wrapper.appendChild(t),this._syncFormValue(),this._input.checked&&this._uncheckPeers(),$(this._group())}setupEvents(){this._onChange=()=>this._applyChange(),this._onKeyDown=t=>{const e=M[t.key];if(!e||t.ctrlKey||t.metaKey||t.altKey)return;const s=this._group().filter(t=>!t.disabled);if(s.length<2)return;t.preventDefault();const r=s[(s.indexOf(this)+e+s.length)%s.length];r._input.focus(),r._input.checked=!0,r._applyChange()},this._input.addEventListener("change",this._onChange),this._input.addEventListener("keydown",this._onKeyDown)}teardownEvents(){this._input?.removeEventListener("change",this._onChange),this._input?.removeEventListener("keydown",this._onKeyDown)}_applyChange(){this._input.checked&&this._uncheckPeers(),this._syncing=!0,this.setBoolAttr("checked",this._input.checked),this._syncing=!1,this._syncFormValue(),$(this._group()),this.emit("glk-change",{checked:this._input.checked,value:this._input.value}),this.dispatchEvent(new Event("change",{bubbles:!0}))}_group(){const t=this.getAttribute("name"),e=this.getRootNode();if(!t||"function"!=typeof e?.querySelectorAll)return[this];const s=D(this);return[...e.querySelectorAll("glk-radio")].filter(e=>e.getAttribute("name")===t&&D(e)===s)}_uncheckPeers(){for(const t of this._group())t!==this&&t.checked&&(t.checked=!1)}onAttributeChanged(t){if(!this._syncing&&this._input)switch(t){case"checked":this._input.checked=this.getBoolAttr("checked"),this._input.checked&&this._uncheckPeers(),this._syncFormValue(),$(this._group());break;case"disabled":this._input.disabled=this.getBoolAttr("disabled"),$(this._group());break;case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"name":this._input.setAttribute("name",this.getAttribute("name")||""),$(this._group());break;case"value":this._input.setAttribute("value",this.getAttribute("value")||""),this._syncFormValue()}}_syncFormValue(){const t=this.getAttribute("value")||"";this.setFormValue(this._input.checked?t:null)}resetValue(){this._input.checked=this._defaultChecked,this.setBoolAttr("checked",this._defaultChecked),this._syncFormValue(),$(this._group())}get checked(){return this._input?.checked??!1}set checked(t){this._input&&(this._input.checked=t),t&&this._uncheckPeers(),this.setBoolAttr("checked",t),this._syncFormValue(),$(this._group())}get disabled(){return this.getBoolAttr("disabled")}set disabled(t){this.setBoolAttr("disabled",t)}get name(){return this.getAttribute("name")}set name(t){this.setAttribute("name",t)}get value(){return this.getAttribute("value")}set value(t){this.setAttribute("value",t)}}customElements.define("glk-radio",Y);class P extends b{static get observedAttributes(){return["label","min","max","value","step","name","disabled"]}render(){const t=this.createElement("div",["glass-range-group"]),e=this.createElement("div",["glass-range-header"]);this._labelEl=this.createElement("label",[]),this._labelEl.textContent=this.getAttribute("label")||"",this._valueEl=this.createElement("span",["glass-range-value"]),e.appendChild(this._labelEl),e.appendChild(this._valueEl),this._input=this.createElement("input",["glass-range"],{type:"range",min:this.getAttribute("min")||"0",max:this.getAttribute("max")||"100",value:this.getAttribute("value")||"50"});const s=this.getAttribute("step");s&&this._input.setAttribute("step",s);const r=this.getAttribute("name");r&&this._input.setAttribute("name",r),this.getBoolAttr("disabled")&&(this._input.disabled=!0),this._updateValueDisplay(),t.appendChild(e),t.appendChild(this._input),this._wrapper.appendChild(t),this._defaultValue=this._input.value,this._syncFormValue()}setupEvents(){this._onInput=()=>{this._updateValueDisplay(),this._syncFormValue(),this.emit("glk-input",{value:this._input.value}),this.dispatchEvent(new Event("input",{bubbles:!0}))},this._input.addEventListener("input",this._onInput)}teardownEvents(){this._input?.removeEventListener("input",this._onInput)}onAttributeChanged(t){if(this._input)switch(t){case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"min":this._input.min=this.getAttribute("min")||"0";break;case"max":this._input.max=this.getAttribute("max")||"100";break;case"value":this._input.value=this.getAttribute("value")||"50",this._updateValueDisplay(),this._syncFormValue();break;case"step":this._input.step=this.getAttribute("step")||"";break;case"name":this._input.setAttribute("name",this.getAttribute("name")||"");break;case"disabled":this._input.disabled=this.getBoolAttr("disabled")}}_updateValueDisplay(){this._valueEl.textContent=`${this._input.value}%`}_syncFormValue(){this.setFormValue(this._input.value)}resetValue(){this._input.value=this._defaultValue,this._updateValueDisplay(),this._syncFormValue()}get value(){return this._input?.value??""}set value(t){this._input&&(this._input.value=t),this._updateValueDisplay(),this._syncFormValue()}}customElements.define("glk-range",P);const K=["success","error"],O=["sm","lg"];class H extends h{static get observedAttributes(){return["value","label","variant","size"]}render(){this._container=this.createElement("div",this._computeClasses());const t=this.createElement("div",["glass-progress__header"]);this._labelEl=this.createElement("span",["glass-progress__label"]),this._labelEl.textContent=this.getAttribute("label")||"",this._valueEl=this.createElement("span",["glass-progress__value"]),t.appendChild(this._labelEl),t.appendChild(this._valueEl);const e=this.createElement("div",["glass-progress__track"]);this._fill=this.createElement("div",["glass-progress__fill"]),e.appendChild(this._fill),this._container.appendChild(t),this._container.appendChild(e),this._updateValue(),this._wrapper.appendChild(this._container)}onAttributeChanged(t){if(this._container)switch(t){case"value":this._updateValue();break;case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"variant":case"size":this._container.className=this._computeClasses().join(" ")}}_updateValue(){const t=Math.min(100,Math.max(0,parseInt(this.getAttribute("value")||"0",10)));this._fill.style.width=`${t}%`,this._valueEl.textContent=`${t}%`}_computeClasses(){const t=["glass-progress"],e=this.getAttribute("variant");e&&K.includes(e)&&t.push(`glass-progress--${e}`);const s=this.getAttribute("size");return s&&O.includes(s)&&t.push(`glass-progress--${s}`),t}get value(){return this.getAttribute("value")}set value(t){this.setAttribute("value",String(t))}}customElements.define("glk-progress",H);class R extends h{static get observedAttributes(){return["open","title"]}render(){this._overlay=this.createElement("div",["glass-modal-overlay"],{part:"overlay"});const t=this.createElement("div",["glass-modal"],{part:"modal"}),e=this.createElement("div",["glass-modal__header"],{part:"header"});this._titleEl=this.createElement("h2",["glass-modal__title"]),this._titleEl.textContent=this.getAttribute("title")||"",e.appendChild(this._titleEl);const s=this.createElement("div",["glass-modal__body"],{part:"body"});s.appendChild(document.createElement("slot")),this._footer=this.createElement("div",["glass-modal__footer"],{part:"footer"}),t.appendChild(e),t.appendChild(s),t.appendChild(this._footer),requestAnimationFrame(()=>this._populateFooter()),this._overlay.appendChild(t),this._wrapper.appendChild(this._overlay),this.getBoolAttr("open")&&this._overlay.classList.add("is-active")}_populateFooter(){this._footer.innerHTML="";const t=this.querySelector('[slot="actions"]');if(t){t.querySelectorAll("button").forEach(t=>{const e=t.cloneNode(!0);e.addEventListener("click",()=>t.click()),this._footer.appendChild(e)})}}setupEvents(){this._onOverlayClick=t=>{t.target===this._overlay&&(this.removeAttribute("open"),this.emit("glk-close"))},this._overlay.addEventListener("click",this._onOverlayClick),this._onKeydown=t=>{"Escape"===t.key&&this.getBoolAttr("open")&&(this.removeAttribute("open"),this.emit("glk-close"))},document.addEventListener("keydown",this._onKeydown)}teardownEvents(){this._overlay?.removeEventListener("click",this._onOverlayClick),document.removeEventListener("keydown",this._onKeydown)}onAttributeChanged(t){if(this._overlay)switch(t){case"open":this._overlay.classList.toggle("is-active",this.getBoolAttr("open"));break;case"title":this._titleEl.textContent=this.getAttribute("title")||""}}show(){this.setAttribute("open","")}close(){this.removeAttribute("open")}get open(){return this.getBoolAttr("open")}set open(t){this.setBoolAttr("open",t)}}customElements.define("glk-modal",R);const X=["success","error","warning"],U={success:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><polyline points="22 4 12 14.01 9 11.01"/></svg>',error:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="12" cy="12" r="10"/><line x1="15" y1="9" x2="9" y2="15"/><line x1="9" y1="9" x2="15" y2="15"/></svg>',warning:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>'};class J extends h{static get observedAttributes(){return["message","variant","duration","visible"]}render(){this._toast=this.createElement("div",this._computeClasses()),this._iconEl=this.createElement("span",["glass-toast__icon"]),this._textEl=this.createElement("span",["glass-toast__text"]),this._textEl.textContent=this.getAttribute("message")||"",this._updateIcon(),this._toast.appendChild(this._iconEl),this._toast.appendChild(this._textEl),this._wrapper.appendChild(this._toast),this.getBoolAttr("visible")&&this._show()}onAttributeChanged(t){if(this._toast)switch(t){case"message":this._textEl.textContent=this.getAttribute("message")||"";break;case"variant":this._toast.className=this._computeClasses().join(" "),this._updateIcon();break;case"visible":this.getBoolAttr("visible")?this._show():this._hide()}}_computeClasses(){const t=["glass-toast"],e=this.getAttribute("variant");return e&&X.includes(e)&&t.push(`glass-toast--${e}`),t}_updateIcon(){const t=this.getAttribute("variant");this._iconEl.innerHTML=U[t]||U.success}_show(){this._toast.classList.add("is-visible");const t=parseInt(this.getAttribute("duration")||"3000",10);t>0&&(clearTimeout(this._timer),this._timer=setTimeout(()=>{this.removeAttribute("visible"),this.emit("glk-dismiss")},t))}_hide(){this._toast.classList.remove("is-visible"),clearTimeout(this._timer)}show(t,e,s){t&&this.setAttribute("message",t),e&&this.setAttribute("variant",e),s&&this.setAttribute("duration",String(s)),this.setAttribute("visible","")}dismiss(){this.removeAttribute("visible")}disconnectedCallback(){super.disconnectedCallback(),clearTimeout(this._timer)}}customElements.define("glk-toast",J);const Q=["top","bottom","start","end"];class W extends h{static get observedAttributes(){return["open","placement"]}render(){this._anchor=this.createElement("div",["glass-popover-anchor"]);const t=document.createElement("slot");t.setAttribute("name","trigger"),this._anchor.appendChild(t),this._popover=this.createElement("div",["glass-popover"]),this._applyPlacement(),this.getBoolAttr("open")&&this._popover.classList.add("is-open");const e=document.createElement("slot");this._popover.appendChild(e),this._anchor.appendChild(this._popover),this._wrapper.appendChild(this._anchor)}_applyPlacement(){if(!this._popover)return;Q.forEach(t=>this._popover.classList.remove(`glass-popover--${t}`));const t=this.getAttribute("placement")||"bottom";"bottom"!==t&&Q.includes(t)&&this._popover.classList.add(`glass-popover--${t}`)}setupEvents(){this._onTriggerClick=t=>{t.composedPath().some(t=>t instanceof Element&&t.getAttribute&&"trigger"===t.getAttribute("slot"))&&(t.stopPropagation(),this.toggle())},this.addEventListener("click",this._onTriggerClick),this._onDocClick=t=>{if(!this.getBoolAttr("open"))return;t.composedPath().includes(this)||this.close()},document.addEventListener("click",this._onDocClick),this._onKeydown=t=>{"Escape"===t.key&&this.getBoolAttr("open")&&this.close()},document.addEventListener("keydown",this._onKeydown)}teardownEvents(){this.removeEventListener("click",this._onTriggerClick),document.removeEventListener("click",this._onDocClick),document.removeEventListener("keydown",this._onKeydown)}onAttributeChanged(t){if(this._popover)switch(t){case"open":{const t=this.getBoolAttr("open");this._popover.classList.toggle("is-open",t),this.emit(t?"glk-open":"glk-close");break}case"placement":this._applyPlacement()}}show(){this.setAttribute("open","")}close(){this.removeAttribute("open")}toggle(){this.getBoolAttr("open")?this.close():this.show()}get open(){return this.getBoolAttr("open")}set open(t){this.setBoolAttr("open",t)}get placement(){return this.getAttribute("placement")||"bottom"}set placement(t){Q.includes(t)&&this.setAttribute("placement",t)}}customElements.define("glk-popover",W);class Z extends h{render(){const t=this.createElement("div",["glass-accordion"]);t.appendChild(document.createElement("slot")),this._wrapper.appendChild(t)}}customElements.define("glk-accordion",Z);class tt extends h{static get observedAttributes(){return["title","open"]}render(){this._item=this.createElement("div",["glass-accordion__item"]),this.getBoolAttr("open")&&this._item.classList.add("is-open"),this._trigger=this.createElement("button",["glass-accordion__trigger"]),this._triggerText=document.createTextNode(this.getAttribute("title")||""),this._trigger.appendChild(this._triggerText),this._trigger.insertAdjacentHTML("beforeend",'<span class="glass-accordion__trigger-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"/></svg></span>'),this._content=this.createElement("div",["glass-accordion__content"]);const t=this.createElement("div",["glass-accordion__body"]);t.appendChild(document.createElement("slot")),this._content.appendChild(t),this._item.appendChild(this._trigger),this._item.appendChild(this._content),this._wrapper.appendChild(this._item)}setupEvents(){this._onClick=()=>{this.setBoolAttr("open",!this.getBoolAttr("open")),this.emit("glk-toggle",{open:this.getBoolAttr("open")})},this._trigger.addEventListener("click",this._onClick)}teardownEvents(){this._trigger?.removeEventListener("click",this._onClick)}onAttributeChanged(t){if(this._item)switch(t){case"open":this._item.classList.toggle("is-open",this.getBoolAttr("open"));break;case"title":this._triggerText.textContent=this.getAttribute("title")||""}}get open(){return this.getBoolAttr("open")}set open(t){this.setBoolAttr("open",t)}}customElements.define("glk-accordion-item",tt);class et extends h{static get observedAttributes(){return["flush","bare","header"]}render(){this._header=this.createElement("div",["glass-list__section-header"],{part:"header"});const t=this.getAttribute("header")||"";this._header.textContent=t,this._header.hidden=!t,this._wrapper.appendChild(this._header),this._ul=this.createElement("ul",["glass-list"],{part:"list"}),this.getBoolAttr("flush")&&this._ul.classList.add("glass-list--flush"),this.getBoolAttr("bare")&&this._ul.classList.add("glass-list--bare"),this._ul.appendChild(document.createElement("slot")),this._wrapper.appendChild(this._ul)}setupEvents(){this._syncLast(),this._mutObserver=new MutationObserver(()=>this._syncLast()),this._mutObserver.observe(this,{childList:!0})}teardownEvents(){this._mutObserver?.disconnect()}_syncLast(){const t=this.querySelectorAll(":scope > glk-list-item"),e=t.length-1;t.forEach((t,s)=>{s===e?t.setAttribute("data-last",""):t.removeAttribute("data-last")})}onAttributeChanged(t){if(this._ul)switch(t){case"flush":this._ul.classList.toggle("glass-list--flush",this.getBoolAttr("flush"));break;case"bare":this._ul.classList.toggle("glass-list--bare",this.getBoolAttr("bare"));break;case"header":{const t=this.getAttribute("header")||"";this._header.textContent=t,this._header.hidden=!t;break}}}get flush(){return this.getBoolAttr("flush")}set flush(t){this.setBoolAttr("flush",t)}get bare(){return this.getBoolAttr("bare")}set bare(t){this.setBoolAttr("bare",t)}get header(){return this.getAttribute("header")||""}set header(t){t?this.setAttribute("header",t):this.removeAttribute("header")}}customElements.define("glk-list",et);const st=new CSSStyleSheet;st.replaceSync("\n :host([data-last]) .glass-list__item::after { content: none; }\n");const rt=["danger","accent"];class at extends h{static get observedAttributes(){return["title","subtitle","interactive","center","leading-lg","wrap","detail","variant","data-last"]}constructor(){super(),this._shadow.adoptedStyleSheets=[...this._shadow.adoptedStyleSheets,st]}render(){const t=this.createElement("div");t.style.display="contents",this._item=this.createElement("li",["glass-list__item"]),this.getBoolAttr("interactive")&&this._item.classList.add("glass-list__item--interactive"),this.getBoolAttr("center")&&this._item.classList.add("glass-list__item--center");const e=this.getAttribute("variant");e&&rt.includes(e)&&this._item.classList.add(`glass-list__item--${e}`),this._leading=this.createElement("span",["glass-list__leading"]),this.getBoolAttr("leading-lg")&&this._leading.classList.add("glass-list__leading--lg"),this._leadingSlot=document.createElement("slot"),this._leadingSlot.setAttribute("name","leading"),this._leading.appendChild(this._leadingSlot),this._leading.hidden=!0,this._content=this.createElement("div",["glass-list__content"]),this._titleEl=this.createElement("div",["glass-list__title"]),this._titleEl.textContent=this.getAttribute("title")||"",this._subtitleEl=this.createElement("div",["glass-list__subtitle"]),this.getBoolAttr("wrap")&&this._subtitleEl.classList.add("glass-list__subtitle--wrap");const s=this.getAttribute("subtitle")||"";this._subtitleEl.textContent=s,this._subtitleEl.hidden=!s,this._content.appendChild(this._titleEl),this._content.appendChild(this._subtitleEl),this._trailing=this.createElement("div",["glass-list__trailing"]),this._valueEl=this.createElement("span",["glass-list__value"]);const r=this.getAttribute("detail")||"";this._valueEl.textContent=r,this._valueEl.hidden=!r,this._trailing.appendChild(this._valueEl),this._trailingSlot=document.createElement("slot"),this._trailingSlot.setAttribute("name","trailing"),this._trailing.appendChild(this._trailingSlot),this._trailing.hidden=!r,this._item.appendChild(this._leading),this._item.appendChild(this._content),this._item.appendChild(this._trailing);const a=this.createElement("span");a.hidden=!0,a.setAttribute("aria-hidden","true"),t.appendChild(this._item),t.appendChild(a),this._wrapper.appendChild(t)}setupEvents(){this._onLeadingSlotChange=()=>{this._leading.hidden=0===this._leadingSlot.assignedNodes().length},this._onTrailingSlotChange=()=>{const t=this._trailingSlot.assignedNodes().length>0,e=!this._valueEl.hidden;this._trailing.hidden=!t&&!e},this._leadingSlot.addEventListener("slotchange",this._onLeadingSlotChange),this._trailingSlot.addEventListener("slotchange",this._onTrailingSlotChange),this._onLeadingSlotChange(),this._onTrailingSlotChange(),this._onClick=()=>{this.getBoolAttr("interactive")&&this.emit("glk-click")},this._item.addEventListener("click",this._onClick)}teardownEvents(){this._leadingSlot?.removeEventListener("slotchange",this._onLeadingSlotChange),this._trailingSlot?.removeEventListener("slotchange",this._onTrailingSlotChange),this._item?.removeEventListener("click",this._onClick)}onAttributeChanged(t){if(this._item)switch(t){case"title":this._titleEl.textContent=this.getAttribute("title")||"";break;case"subtitle":{const t=this.getAttribute("subtitle")||"";this._subtitleEl.textContent=t,this._subtitleEl.hidden=!t;break}case"interactive":this._item.classList.toggle("glass-list__item--interactive",this.getBoolAttr("interactive"));break;case"center":this._item.classList.toggle("glass-list__item--center",this.getBoolAttr("center"));break;case"leading-lg":this._leading.classList.toggle("glass-list__leading--lg",this.getBoolAttr("leading-lg"));break;case"wrap":this._subtitleEl.classList.toggle("glass-list__subtitle--wrap",this.getBoolAttr("wrap"));break;case"detail":{const t=this.getAttribute("detail")||"";this._valueEl.textContent=t,this._valueEl.hidden=!t,this._onTrailingSlotChange&&this._onTrailingSlotChange();break}case"variant":{rt.forEach(t=>this._item.classList.remove(`glass-list__item--${t}`));const t=this.getAttribute("variant");t&&rt.includes(t)&&this._item.classList.add(`glass-list__item--${t}`);break}}}get interactive(){return this.getBoolAttr("interactive")}set interactive(t){this.setBoolAttr("interactive",t)}get center(){return this.getBoolAttr("center")}set center(t){this.setBoolAttr("center",t)}get leadingLg(){return this.getBoolAttr("leading-lg")}set leadingLg(t){this.setBoolAttr("leading-lg",t)}get wrap(){return this.getBoolAttr("wrap")}set wrap(t){this.setBoolAttr("wrap",t)}get detail(){return this.getAttribute("detail")||""}set detail(t){t?this.setAttribute("detail",t):this.removeAttribute("detail")}get variant(){return this.getAttribute("variant")||""}set variant(t){t&&rt.includes(t)?this.setAttribute("variant",t):this.removeAttribute("variant")}}return customElements.define("glk-list-item",at),t.GlkAccordion=Z,t.GlkAccordionItem=tt,t.GlkAvatar=C,t.GlkBadge=A,t.GlkButton=F,t.GlkCard=w,t.GlkCheckbox=N,t.GlkDivider=z,t.GlkInput=j,t.GlkList=et,t.GlkListItem=at,t.GlkModal=R,t.GlkNav=p,t.GlkPill=u,t.GlkPopover=W,t.GlkProgress=H,t.GlkRadio=Y,t.GlkRange=P,t.GlkSearch=G,t.GlkSelect=I,t.GlkStatus=S,t.GlkTabAccessory=x,t.GlkTabBar=v,t.GlkTabDock=_,t.GlkTabItem=m,t.GlkTextarea=T,t.GlkTitle=B,t.GlkToast=J,t.GlkToggle=q,t}({});
1
+ var GlassKitElements=function(t){"use strict";const e=":root,[data-theme=dark]{color-scheme:dark;--gl-color-primary:#f5a623;--gl-color-primary-dark:#d4692a;--gl-color-primary-mid:color-mix(in srgb, var(--gl-color-primary) 32%, var(--gl-color-primary-dark));--gl-color-bg-dark:#0e2530;--gl-color-bg-mid:#1a3d4e;--gl-color-bg-light:#1b3e50;--gl-color-text:#ffffff;--gl-color-text-muted:rgba(255, 255, 255, 0.60);--gl-color-text-on-light:#1a3a4a;--gl-color-text-heading:#ffffff;--gl-color-success:#34c759;--gl-color-error:#ff3b30;--gl-color-warning:#ffcc00;--gl-color-success-dark:#2da44e;--gl-color-error-dark:#d63027;--gl-color-on-primary:#ffffff;--gl-color-on-success:#ffffff;--gl-color-on-error:#ffffff;--gl-color-primary-on-surface:color-mix(in srgb, var(--gl-color-primary) 50%, #ffffff);--gl-color-success-on-surface:color-mix(in srgb, var(--gl-color-success) 62%, #ffffff);--gl-color-error-on-surface:color-mix(in srgb, var(--gl-color-error) 50%, #ffffff);--gl-state-scrim:rgba(0, 0, 0, 0.30);--gl-color-primary-surface:color-mix(in srgb, var(--gl-color-primary) 25%, transparent);--gl-color-primary-border:var(--gl-border-warm);--gl-color-success-surface:color-mix(in srgb, var(--gl-color-success) 15%, transparent);--gl-color-success-border:color-mix(in srgb, var(--gl-color-success) 30%, transparent);--gl-color-error-surface:color-mix(in srgb, var(--gl-color-error) 15%, transparent);--gl-color-error-border:color-mix(in srgb, var(--gl-color-error) 30%, transparent);--gl-surface-1:rgba(255, 255, 255, 0.08);--gl-surface-2:rgba(255, 255, 255, 0.10);--gl-surface-3:rgba(255, 255, 255, 0.14);--gl-surface-4:rgba(255, 255, 255, 0.16);--gl-surface-5:rgba(255, 255, 255, 0.22);--gl-surface-milk:rgba(255, 255, 255, 0.55);--gl-surface-milk-strong:rgba(255, 255, 255, 0.75);--gl-surface-overlay:rgba(0, 0, 0, 0.50);--gl-card-glow-top:rgba(255, 255, 255, 0.32);--gl-card-glow-mid:rgba(255, 255, 255, 0.22);--gl-card-glow-low:rgba(255, 255, 255, 0.14);--gl-card-glow-bottom:rgba(255, 255, 255, 0.08);--gl-card-icon-color:rgba(255, 255, 255, 0.8);--gl-card-text-color:rgba(255, 255, 255, 0.7);--gl-border-subtle:rgba(255, 255, 255, 0.18);--gl-border-medium:rgba(255, 255, 255, 0.30);--gl-border-strong:rgba(255, 255, 255, 0.40);--gl-border-milk:rgba(255, 255, 255, 0.60);--gl-border-warm:color-mix(in srgb, color-mix(in srgb, var(--gl-color-primary) 68%, #ffffff) 35%, transparent);--gl-border-focus:color-mix(in srgb, var(--gl-color-primary) 60%, transparent);--gl-icon-default:rgba(255, 255, 255, 0.6);--gl-icon-muted:rgba(255, 255, 255, 0.45);--gl-icon-strong:rgba(255, 255, 255, 0.8);--gl-icon-on-primary:var(--gl-color-on-primary, #ffffff);--gl-icon-on-secondary:#1a3a4a;--gl-icon-on-tertiary:rgba(255, 255, 255, 0.6);--gl-blur:24px;--gl-blur-light:16px;--gl-blur-soft:12px;--gl-blur-heavy:40px;--gl-radius-pill:50%;--gl-radius-full:9999px;--gl-radius-card:24px;--gl-radius-btn:16px;--gl-radius-input:14px;--gl-radius-sm:12px;--gl-radius-xs:8px;--gl-shadow-card:0 8px 32px rgba(0, 0, 0, 0.18);--gl-shadow-btn:0 4px 16px rgba(0, 0, 0, 0.12);--gl-shadow-btn-primary:0 6px 24px color-mix(in srgb, var(--gl-color-primary-mid) 35%, transparent),0 2px 8px rgba(0, 0, 0, 0.15);--gl-shadow-glow:0 2px 12px rgba(255, 255, 255, 0.08),0 4px 16px rgba(0, 0, 0, 0.15);--gl-shadow-modal:0 24px 80px rgba(0, 0, 0, 0.4),0 8px 32px rgba(0, 0, 0, 0.2);--gl-shadow-toast:0 8px 32px rgba(0, 0, 0, 0.25);--gl-shadow-focus:0 0 0 3px color-mix(in srgb, var(--gl-color-primary) 30%, transparent);--gl-inset-subtle:inset 0 1px 1px rgba(255, 255, 255, 0.10);--gl-inset-medium:inset 0 1px 1px rgba(255, 255, 255, 0.15);--gl-inset-strong:inset 0 1px 2px rgba(255, 255, 255, 0.25);--gl-inset-milk:inset 0 1px 2px rgba(255, 255, 255, 0.40);--gl-bg-aurora-1:rgba(60, 160, 160, 0.25);--gl-bg-aurora-2:rgba(200, 140, 60, 0.12);--gl-bg-aurora-3:rgba(80, 180, 200, 0.18);--gl-bg-light-streak-1:rgba(90, 210, 200, 0.14);--gl-bg-light-streak-2:rgba(110, 200, 190, 0.10);--gl-bg-warm-glow:rgba(220, 160, 70, 0.10);--gl-space-2xs:4px;--gl-space-xs:8px;--gl-space-sm:12px;--gl-space-md:16px;--gl-space-lg:20px;--gl-space-xl:24px;--gl-space-2xl:32px;--gl-space-3xl:40px;--gl-space-4xl:56px;--gl-font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Segoe UI',Roboto,Helvetica,Arial,sans-serif;--gl-font-size-xs:13px;--gl-font-size-sm:14px;--gl-font-size-base:15px;--gl-font-size-btn:16px;--gl-font-size-lg:18px;--gl-font-size-title:24px;--gl-font-size-modal:20px;--gl-font-weight-normal:400;--gl-font-weight-medium:500;--gl-font-weight-semibold:600;--gl-transition:all 0.25s ease;--gl-transition-fast:all 0.15s ease;--gl-transition-modal:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);--gl-tab-bar-height:82px;--gl-tab-bar-floating-bottom:16px;--gl-tab-bar-floating-gap:var(--gl-space-sm);--gl-tab-bar-floating-padding:6px 10px;--gl-tab-bar-floating-radius:var(--gl-radius-full);--gl-tab-bar-accessory-size:56px;--gl-tab-bar-spotlight-color:var(--gl-color-primary);--gl-placeholder:rgba(255, 255, 255, 0.35);--gl-accordion-body-color:var(--gl-color-text-muted);--gl-toggle-thumb-bg:linear-gradient(to bottom,\n rgba(255,255,255,0.9) 0%,\n rgba(255,255,255,0.7) 100%);--gl-range-track-bg:var(--gl-surface-2);--gl-range-track-border:var(--gl-border-subtle)}[data-theme=light]{color-scheme:light;--gl-color-primary:#e8852d;--gl-color-primary-dark:#c96a1e;--gl-color-primary-mid:color-mix(in srgb, var(--gl-color-primary) 52%, var(--gl-color-primary-dark));--gl-color-bg-dark:#e8ecf1;--gl-color-bg-mid:#f0f4f8;--gl-color-bg-light:#f5f7fa;--gl-color-text:#1a2a36;--gl-color-text-muted:rgba(26, 42, 54, 0.55);--gl-color-text-on-light:#1a3a4a;--gl-color-text-heading:#0f1f2a;--gl-color-success:#28a745;--gl-color-error:#dc3545;--gl-color-warning:#e6a800;--gl-color-success-dark:#1e7e34;--gl-color-error-dark:#b02a37;--gl-color-on-primary:#ffffff;--gl-color-on-success:#ffffff;--gl-color-on-error:#ffffff;--gl-color-primary-on-surface:color-mix(in srgb, var(--gl-color-primary) 60%, #000000);--gl-color-success-on-surface:color-mix(in srgb, var(--gl-color-success) 68%, #000000);--gl-color-error-on-surface:color-mix(in srgb, var(--gl-color-error) 82%, #000000);--gl-state-scrim:rgba(255, 255, 255, 0.30);--gl-color-primary-surface:color-mix(in srgb, var(--gl-color-primary) 25%, transparent);--gl-color-primary-border:var(--gl-border-warm);--gl-color-success-surface:color-mix(in srgb, var(--gl-color-success) 15%, transparent);--gl-color-success-border:color-mix(in srgb, var(--gl-color-success) 30%, transparent);--gl-color-error-surface:color-mix(in srgb, var(--gl-color-error) 15%, transparent);--gl-color-error-border:color-mix(in srgb, var(--gl-color-error) 30%, transparent);--gl-surface-1:rgba(255, 255, 255, 0.50);--gl-surface-2:rgba(255, 255, 255, 0.60);--gl-surface-3:rgba(255, 255, 255, 0.70);--gl-surface-4:rgba(255, 255, 255, 0.75);--gl-surface-5:rgba(255, 255, 255, 0.85);--gl-surface-milk:rgba(255, 255, 255, 0.85);--gl-surface-milk-strong:rgba(255, 255, 255, 0.92);--gl-surface-overlay:rgba(0, 0, 0, 0.25);--gl-card-glow-top:rgba(255, 255, 255, 0.90);--gl-card-glow-mid:rgba(255, 255, 255, 0.78);--gl-card-glow-low:rgba(255, 255, 255, 0.65);--gl-card-glow-bottom:rgba(255, 255, 255, 0.50);--gl-card-icon-color:rgba(26, 42, 54, 0.5);--gl-card-text-color:rgba(26, 42, 54, 0.6);--gl-border-subtle:rgba(0, 0, 0, 0.08);--gl-border-medium:rgba(0, 0, 0, 0.12);--gl-border-strong:rgba(0, 0, 0, 0.15);--gl-border-milk:rgba(0, 0, 0, 0.10);--gl-border-warm:color-mix(in srgb, var(--gl-color-primary) 30%, transparent);--gl-border-focus:color-mix(in srgb, var(--gl-color-primary) 50%, transparent);--gl-icon-default:rgba(26, 42, 54, 0.50);--gl-icon-muted:rgba(26, 42, 54, 0.35);--gl-icon-strong:rgba(26, 42, 54, 0.70);--gl-icon-on-primary:var(--gl-color-on-primary, #ffffff);--gl-icon-on-secondary:#1a3a4a;--gl-icon-on-tertiary:rgba(26, 42, 54, 0.50);--gl-shadow-card:0 4px 20px rgba(0, 0, 0, 0.06);--gl-shadow-btn:0 2px 10px rgba(0, 0, 0, 0.06);--gl-shadow-btn-primary:0 4px 16px color-mix(in srgb, var(--gl-color-primary) 25%, transparent),0 2px 6px rgba(0, 0, 0, 0.08);--gl-shadow-glow:0 2px 8px rgba(0, 0, 0, 0.05),0 4px 12px rgba(0, 0, 0, 0.04);--gl-shadow-modal:0 16px 48px rgba(0, 0, 0, 0.12),0 4px 16px rgba(0, 0, 0, 0.08);--gl-shadow-toast:0 4px 20px rgba(0, 0, 0, 0.10);--gl-shadow-focus:0 0 0 3px color-mix(in srgb, var(--gl-color-primary) 25%, transparent);--gl-inset-subtle:inset 0 1px 1px rgba(255, 255, 255, 0.60);--gl-inset-medium:inset 0 1px 1px rgba(255, 255, 255, 0.70);--gl-inset-strong:inset 0 1px 2px rgba(255, 255, 255, 0.80);--gl-inset-milk:inset 0 1px 2px rgba(255, 255, 255, 0.90);--gl-bg-aurora-1:rgba(100, 200, 220, 0.15);--gl-bg-aurora-2:rgba(240, 180, 100, 0.10);--gl-bg-aurora-3:rgba(120, 200, 230, 0.12);--gl-bg-light-streak-1:rgba(140, 230, 220, 0.10);--gl-bg-light-streak-2:rgba(160, 220, 210, 0.08);--gl-bg-warm-glow:rgba(240, 180, 100, 0.08);--gl-placeholder:rgba(26, 42, 54, 0.30);--gl-accordion-body-color:var(--gl-color-text-muted);--gl-toggle-thumb-bg:linear-gradient(to bottom, #ffffff 0%, #f0f0f0 100%);--gl-range-track-bg:var(--gl-surface-2);--gl-range-track-border:var(--gl-border-subtle)}",s="[class*=gl-],[class*=glass-],[class*=glass-]::after,[class*=glass-]::before{box-sizing:border-box}",r=".glass-bg{background:radial-gradient(ellipse at 20% 40%,var(--gl-bg-aurora-1) 0,transparent 55%),radial-gradient(ellipse at 80% 65%,var(--gl-bg-aurora-2) 0,transparent 50%),radial-gradient(ellipse at 50% 20%,var(--gl-bg-aurora-3) 0,transparent 50%),linear-gradient(170deg,var(--gl-color-bg-light) 0,var(--gl-color-bg-mid) 50%,var(--gl-color-bg-dark) 100%);position:relative;min-height:100vh;overflow-x:hidden;font-family:var(--gl-font-family);color:var(--gl-color-text);-webkit-font-smoothing:antialiased;transition:background .4s,color .3s}.glass-bg::before{content:'';position:absolute;top:20%;left:-30%;width:160%;height:55%;background:radial-gradient(ellipse at 35% 45%,var(--gl-bg-light-streak-1) 0,transparent 50%),radial-gradient(ellipse at 65% 55%,var(--gl-bg-light-streak-2) 0,transparent 45%);transform:rotate(-8deg);pointer-events:none;z-index:0}.glass-bg::after{content:'';position:absolute;top:40%;right:-20%;width:70%;height:50%;background:radial-gradient(ellipse at center,var(--gl-bg-warm-glow) 0,transparent 65%);pointer-events:none;z-index:0}.glass-bg>*{position:relative;z-index:1}.glass-bg--has-tab-bar{padding-bottom:var(--gl-tab-bar-height)}.glass-bg--has-tab-bar-floating{padding-bottom:calc(var(--gl-tab-bar-accessory-size) + var(--gl-tab-bar-floating-bottom) + var(--gl-space-md))}.glass-nav{display:flex;justify-content:space-between;align-items:center;padding:0 var(--gl-space-xs)}.glass-pill{width:46px;height:46px;border-radius:var(--gl-radius-pill);background:var(--gl-surface-3);backdrop-filter:blur(var(--gl-blur));-webkit-backdrop-filter:blur(var(--gl-blur));border:1.5px solid var(--gl-border-strong);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--gl-transition);color:var(--gl-color-text);box-shadow:var(--gl-shadow-glow),var(--gl-inset-medium);outline:0;-webkit-tap-highlight-color:transparent}.glass-pill:hover{background:var(--gl-surface-5);transform:scale(1.05)}.glass-pill:active{transform:scale(.95)}.glass-pill ::slotted(svg),.glass-pill svg{width:20px;height:20px;fill:none;stroke:var(--gl-color-text);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.glass-title{text-align:center;color:var(--gl-color-text-heading);font-size:var(--gl-font-size-title);font-weight:var(--gl-font-weight-semibold);line-height:1.3;text-shadow:0 2px 12px rgba(0,0,0,.15);letter-spacing:-.3px}.glass-card{background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur));-webkit-backdrop-filter:blur(var(--gl-blur));border:1.5px solid var(--gl-border-medium);border-radius:var(--gl-radius-card);padding:var(--gl-space-3xl) var(--gl-space-xl) var(--gl-space-2xl);box-shadow:var(--gl-shadow-card),var(--gl-inset-strong)}.glass-card--glow{position:relative;overflow:hidden;background:linear-gradient(to bottom,var(--gl-card-glow-top) 0,var(--gl-card-glow-mid) 25%,var(--gl-card-glow-low) 55%,var(--gl-card-glow-bottom) 100%)}.glass-card--glow::before{content:'';position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.5) 30%,rgba(255,255,255,.6) 50%,rgba(255,255,255,.5) 70%,transparent 100%);z-index:1}.glass-card__icon{display:flex;align-items:center;justify-content:center;margin:0 auto var(--gl-space-lg)}.glass-card__icon svg{width:64px;height:64px;stroke:var(--gl-card-icon-color);stroke-width:1.2;fill:none}.glass-card__text{color:var(--gl-card-text-color);font-size:var(--gl-font-size-base);font-weight:var(--gl-font-weight-normal);line-height:1.55;text-align:center}.glass-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:56px;border:none;border-radius:var(--gl-radius-btn);font-family:var(--gl-font-family);font-size:var(--gl-font-size-btn);font-weight:var(--gl-font-weight-semibold);cursor:pointer;transition:var(--gl-transition);outline:0;-webkit-tap-highlight-color:transparent}a.glass-btn{display:inline-flex;text-decoration:none}.glass-btn ::slotted(svg),.glass-btn svg{width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.glass-btn--primary{background:linear-gradient(135deg,var(--gl-color-primary) 0,var(--gl-color-primary-mid) 50%,var(--gl-color-primary-dark) 100%);color:var(--gl-color-on-primary,#fff);border:1px solid var(--gl-border-warm);box-shadow:var(--gl-shadow-btn-primary),var(--gl-inset-strong)}.glass-btn--primary ::slotted(svg),.glass-btn--primary svg{fill:var(--gl-icon-on-primary);stroke:var(--gl-icon-on-primary);stroke-width:0}.glass-btn--primary:hover{transform:translateY(-1px)}.glass-btn--primary:active{transform:translateY(1px)}.glass-btn--secondary{background:linear-gradient(to bottom,var(--gl-surface-milk-strong) 0,var(--gl-surface-milk) 100%);backdrop-filter:blur(var(--gl-blur));-webkit-backdrop-filter:blur(var(--gl-blur));border:1.5px solid var(--gl-border-milk);color:var(--gl-color-text-on-light);box-shadow:var(--gl-shadow-btn),var(--gl-inset-milk)}.glass-btn--secondary ::slotted(svg),.glass-btn--secondary svg{fill:none;stroke:var(--gl-icon-on-secondary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.glass-btn--secondary:hover{transform:translateY(-1px)}.glass-btn--secondary:active{transform:translateY(1px)}.glass-btn--tertiary{background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur-light));-webkit-backdrop-filter:blur(var(--gl-blur-light));border:1px solid var(--gl-border-subtle);color:var(--gl-color-text-muted);box-shadow:0 4px 12px rgba(0,0,0,.1),var(--gl-inset-subtle)}.glass-btn--tertiary ::slotted(svg),.glass-btn--tertiary svg{fill:none;stroke:var(--gl-icon-on-tertiary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.glass-btn--tertiary:hover{background:var(--gl-surface-4);color:var(--gl-color-text);transform:translateY(-1px)}.glass-btn--tertiary:active{transform:translateY(1px)}.glass-btn--sm{height:44px;font-size:var(--gl-font-size-sm);border-radius:var(--gl-radius-sm)}.glass-btn--lg{height:64px;font-size:var(--gl-font-size-lg)}.glass-btn--auto{width:auto;padding:0 var(--gl-space-xl)}.glass-status{background:var(--gl-surface-1);backdrop-filter:blur(var(--gl-blur-light));-webkit-backdrop-filter:blur(var(--gl-blur-light));border:1px solid var(--gl-border-subtle);border-radius:var(--gl-radius-btn);padding:var(--gl-space-md) var(--gl-space-lg);display:flex;align-items:center;gap:var(--gl-space-sm);box-shadow:0 4px 12px rgba(0,0,0,.08),var(--gl-inset-subtle)}.glass-status ::slotted(svg),.glass-status svg{width:20px;height:20px;flex-shrink:0;stroke:var(--gl-icon-muted);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.glass-status p{color:var(--gl-color-text-muted);font-size:var(--gl-font-size-sm);font-weight:var(--gl-font-weight-normal);line-height:1.45}.glass-input-group{display:flex;flex-direction:column;gap:var(--gl-space-xs)}.glass-label{font-size:var(--gl-font-size-sm);font-weight:var(--gl-font-weight-medium);color:var(--gl-icon-strong);padding-left:var(--gl-space-2xs)}.glass-input{width:100%;height:52px;padding:0 var(--gl-space-md);background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur-light));-webkit-backdrop-filter:blur(var(--gl-blur-light));border:1.5px solid var(--gl-border-medium);border-radius:var(--gl-radius-input);color:var(--gl-color-text);font-family:var(--gl-font-family);font-size:var(--gl-font-size-base);transition:var(--gl-transition);outline:0;box-shadow:var(--gl-inset-subtle);-webkit-tap-highlight-color:transparent}.glass-input::placeholder{color:var(--gl-placeholder)}.glass-input:focus{border-color:var(--gl-border-focus);background:var(--gl-surface-3);box-shadow:var(--gl-shadow-focus),var(--gl-inset-medium)}.glass-input:disabled{opacity:.4;cursor:not-allowed}.glass-input--error{border-color:var(--gl-color-error)}.glass-input--error:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--gl-color-error) 25%,transparent),var(--gl-inset-medium)}.glass-hint{font-size:var(--gl-font-size-xs);color:var(--gl-color-text-muted);padding-left:var(--gl-space-2xs)}.glass-hint--error{color:var(--gl-color-error)}.glass-textarea{width:100%;min-height:120px;padding:var(--gl-space-md);background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur-light));-webkit-backdrop-filter:blur(var(--gl-blur-light));border:1.5px solid var(--gl-border-medium);border-radius:var(--gl-radius-input);color:var(--gl-color-text);font-family:var(--gl-font-family);font-size:var(--gl-font-size-base);line-height:1.5;resize:vertical;transition:var(--gl-transition);outline:0;box-shadow:var(--gl-inset-subtle)}.glass-textarea::placeholder{color:var(--gl-placeholder)}.glass-textarea:focus{border-color:var(--gl-border-focus);background:var(--gl-surface-3);box-shadow:var(--gl-shadow-focus),var(--gl-inset-medium)}.glass-select{width:100%;height:52px;padding:0 var(--gl-space-3xl) 0 var(--gl-space-md);background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur-light));-webkit-backdrop-filter:blur(var(--gl-blur-light));border:1.5px solid var(--gl-border-medium);border-radius:var(--gl-radius-input);color:var(--gl-color-text);font-family:var(--gl-font-family);font-size:var(--gl-font-size-base);transition:var(--gl-transition);outline:0;box-shadow:var(--gl-inset-subtle);cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.6)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 16px center}.glass-select:focus{border-color:var(--gl-border-focus);box-shadow:var(--gl-shadow-focus),var(--gl-inset-medium)}.glass-select option{background:var(--gl-color-bg-mid);color:var(--gl-color-text)}.glass-search{position:relative;display:flex;align-items:center}.glass-search__icon{position:absolute;left:var(--gl-space-md);width:18px;height:18px;stroke:var(--gl-icon-muted)!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important;fill:none!important;pointer-events:none;z-index:2}.glass-search .glass-input{padding-left:44px;border-radius:var(--gl-radius-full)}.glass-toggle{display:inline-flex;align-items:flex-start;gap:var(--gl-space-sm);cursor:pointer;-webkit-tap-highlight-color:transparent}.glass-toggle__input{position:absolute;opacity:0;margin:0;width:52px;height:30px;pointer-events:none}.glass-toggle__track{position:relative;width:52px;height:30px;background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur-soft));-webkit-backdrop-filter:blur(var(--gl-blur-soft));border:1.5px solid var(--gl-border-medium);border-radius:var(--gl-radius-full);transition:var(--gl-transition);box-shadow:var(--gl-inset-subtle);flex-shrink:0;margin-top:max(0px,calc((1lh - 30px)/ 2))}.glass-toggle__thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:var(--gl-radius-pill);background:var(--gl-toggle-thumb-bg);box-shadow:0 2px 6px rgba(0,0,0,.2),var(--gl-inset-milk);transition:var(--gl-transition)}.glass-toggle__input:checked+.glass-toggle__track{background:linear-gradient(135deg,var(--gl-color-primary) 0,var(--gl-color-primary-dark) 100%);border-color:var(--gl-border-warm)}.glass-toggle__input:checked+.glass-toggle__track .glass-toggle__thumb{transform:translateX(22px)}.glass-toggle__input:focus-visible+.glass-toggle__track{box-shadow:var(--gl-shadow-focus)}.glass-toggle__label{font-size:var(--gl-font-size-base);color:var(--gl-color-text);user-select:none;margin-top:max(0px,calc((30px - 1lh)/ 2))}.glass-checkbox{display:inline-flex;align-items:flex-start;gap:var(--gl-space-sm);cursor:pointer;-webkit-tap-highlight-color:transparent}.glass-checkbox__input{position:absolute;opacity:0;margin:0;width:24px;height:24px;pointer-events:none}.glass-checkbox__box{width:24px;height:24px;border-radius:var(--gl-radius-xs);background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur-soft));-webkit-backdrop-filter:blur(var(--gl-blur-soft));border:1.5px solid var(--gl-border-medium);display:flex;align-items:center;justify-content:center;transition:var(--gl-transition);box-shadow:var(--gl-inset-subtle);flex-shrink:0;margin-top:max(0px,calc((1lh - 24px)/ 2))}.glass-checkbox__box svg{width:14px;height:14px;stroke:var(--gl-color-on-primary,#ffffff);stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.5);transition:var(--gl-transition-fast)}.glass-checkbox__input:checked+.glass-checkbox__box{background:linear-gradient(135deg,var(--gl-color-primary) 0,var(--gl-color-primary-dark) 100%);border-color:var(--gl-border-warm)}.glass-checkbox__input:checked+.glass-checkbox__box svg{opacity:1;transform:scale(1)}.glass-checkbox__input:focus-visible+.glass-checkbox__box{box-shadow:var(--gl-shadow-focus)}.glass-checkbox__label{font-size:var(--gl-font-size-base);color:var(--gl-color-text);user-select:none;margin-top:max(0px,calc((24px - 1lh)/ 2))}.glass-radio{display:inline-flex;align-items:flex-start;gap:var(--gl-space-sm);cursor:pointer;-webkit-tap-highlight-color:transparent}.glass-radio__input{position:absolute;opacity:0;margin:0;width:24px;height:24px;pointer-events:none}.glass-radio__circle{width:24px;height:24px;border-radius:var(--gl-radius-pill);background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur-soft));border:1.5px solid var(--gl-border-medium);display:flex;align-items:center;justify-content:center;transition:var(--gl-transition);box-shadow:var(--gl-inset-subtle);flex-shrink:0;margin-top:max(0px,calc((1lh - 24px)/ 2))}.glass-radio__dot{width:10px;height:10px;border-radius:var(--gl-radius-pill);background:#fff;opacity:0;transform:scale(0);transition:var(--gl-transition-fast)}.glass-radio__input:checked+.glass-radio__circle{background:linear-gradient(135deg,var(--gl-color-primary) 0,var(--gl-color-primary-dark) 100%);border-color:var(--gl-border-warm)}.glass-radio__input:checked+.glass-radio__circle .glass-radio__dot{opacity:1;transform:scale(1)}.glass-radio__input:focus-visible+.glass-radio__circle{box-shadow:var(--gl-shadow-focus)}.glass-radio__label{font-size:var(--gl-font-size-base);color:var(--gl-color-text);user-select:none;margin-top:max(0px,calc((24px - 1lh)/ 2))}.glass-range-group{display:flex;flex-direction:column;gap:var(--gl-space-xs)}.glass-range-header{display:flex;justify-content:space-between;align-items:baseline}.glass-range-value{font-size:var(--gl-font-size-sm);font-weight:var(--gl-font-weight-semibold);color:var(--gl-color-primary);font-variant-numeric:tabular-nums}.glass-range{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:var(--gl-radius-full);background:var(--gl-range-track-bg);border:1px solid var(--gl-range-track-border);outline:0;cursor:pointer}.glass-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;box-sizing:border-box;width:26px;height:26px;border-radius:var(--gl-radius-pill);background:linear-gradient(135deg,var(--gl-color-primary) 0,var(--gl-color-primary-dark) 100%);border:2px solid rgba(255,255,255,.5);box-shadow:0 2px 8px color-mix(in srgb,var(--gl-color-primary-mid) 35%,transparent),var(--gl-inset-strong);margin-top:-2px;cursor:pointer;transition:var(--gl-transition)}.glass-range::-webkit-slider-thumb:hover{transform:scale(1.1)}.glass-range::-moz-range-thumb{width:26px;height:26px;border-radius:var(--gl-radius-pill);background:linear-gradient(135deg,var(--gl-color-primary) 0,var(--gl-color-primary-dark) 100%);border:2px solid rgba(255,255,255,.5);box-shadow:0 2px 8px color-mix(in srgb,var(--gl-color-primary-mid) 35%,transparent);cursor:pointer}.glass-range::-moz-range-track{height:6px;border-radius:var(--gl-radius-full);background:var(--gl-range-track-bg);border:1px solid var(--gl-range-track-border)}.glass-range:focus-visible{box-shadow:var(--gl-shadow-focus)}.glass-progress{width:100%;display:flex;flex-direction:column;gap:var(--gl-space-xs)}.glass-progress__header{display:flex;justify-content:space-between;align-items:baseline}.glass-progress__label{font-size:var(--gl-font-size-sm);font-weight:var(--gl-font-weight-medium);color:var(--gl-icon-strong)}.glass-progress__value{font-size:var(--gl-font-size-xs);font-weight:var(--gl-font-weight-semibold);color:var(--gl-color-text-muted);font-variant-numeric:tabular-nums}.glass-progress__track{width:100%;height:8px;border-radius:var(--gl-radius-full);background:var(--gl-surface-2);border:1px solid var(--gl-border-subtle);overflow:hidden;box-shadow:var(--gl-inset-subtle)}.glass-progress__fill{height:100%;border-radius:var(--gl-radius-full);background:linear-gradient(90deg,var(--gl-color-primary) 0,var(--gl-color-primary-dark) 100%);box-shadow:0 0 8px color-mix(in srgb,var(--gl-color-primary) 30%,transparent),var(--gl-inset-strong);transition:width .5s cubic-bezier(.4, 0, .2, 1);position:relative}.glass-progress__fill::after{content:'';position:absolute;top:0;left:0;right:0;height:50%;border-radius:var(--gl-radius-full);background:linear-gradient(to bottom,rgba(255,255,255,.3) 0,transparent 100%)}.glass-progress--sm .glass-progress__track{height:4px}.glass-progress--lg .glass-progress__track{height:12px}.glass-progress--success .glass-progress__fill{background:linear-gradient(90deg,var(--gl-color-success) 0,var(--gl-color-success-dark,#2da44e) 100%);box-shadow:0 0 8px color-mix(in srgb,var(--gl-color-success) 30%,transparent),var(--gl-inset-strong)}.glass-progress--error .glass-progress__fill{background:linear-gradient(90deg,var(--gl-color-error) 0,var(--gl-color-error-dark,#d63027) 100%);box-shadow:0 0 8px color-mix(in srgb,var(--gl-color-error) 30%,transparent),var(--gl-inset-strong)}.glass-modal-overlay{position:fixed;inset:0;background:var(--gl-surface-overlay);backdrop-filter:blur(var(--gl-blur-soft));-webkit-backdrop-filter:blur(var(--gl-blur-soft));display:flex;align-items:center;justify-content:center;padding:var(--gl-space-lg);z-index:1000;opacity:0;pointer-events:none;transition:var(--gl-transition-modal);font-family:var(--gl-font-family);-webkit-font-smoothing:antialiased}.glass-modal-overlay.is-active{opacity:1;pointer-events:auto}.glass-modal{width:100%;max-width:340px;background:linear-gradient(to bottom,var(--gl-card-glow-top) 0,var(--gl-card-glow-bottom) 100%);backdrop-filter:blur(var(--gl-blur-heavy));-webkit-backdrop-filter:blur(var(--gl-blur-heavy));border:1.5px solid var(--gl-border-medium);border-radius:var(--gl-radius-card);overflow:hidden;box-shadow:var(--gl-shadow-modal);transform:scale(.9) translateY(20px);transition:var(--gl-transition-modal);position:relative}.glass-modal-overlay.is-active .glass-modal{transform:scale(1) translateY(0)}.glass-modal::before{content:'';position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.4) 30%,rgba(255,255,255,.5) 50%,rgba(255,255,255,.4) 70%,transparent 100%)}.glass-modal__header{padding:var(--gl-space-xl) var(--gl-space-xl) var(--gl-space-sm);text-align:center}.glass-modal__title{font-size:var(--gl-font-size-modal);font-weight:var(--gl-font-weight-semibold);color:var(--gl-color-text)}.glass-modal__body{padding:var(--gl-space-sm) var(--gl-space-xl) var(--gl-space-xl);text-align:center}.glass-modal__body p{color:var(--gl-color-text-muted);font-size:var(--gl-font-size-base);line-height:1.55}.glass-modal__footer{display:flex;border-top:1px solid var(--gl-border-subtle)}.glass-modal__action{flex:1;height:52px;background:0 0;border:none;font-family:var(--gl-font-family);font-size:var(--gl-font-size-btn);font-weight:var(--gl-font-weight-medium);color:var(--gl-color-text-muted);cursor:pointer;transition:var(--gl-transition-fast);outline:0}.glass-modal__action:hover{background:var(--gl-surface-1)}.glass-modal__action+.glass-modal__action{border-left:1px solid var(--gl-border-subtle)}.glass-modal__action--primary{color:var(--gl-color-primary);font-weight:var(--gl-font-weight-semibold)}.glass-modal__action--danger{color:var(--gl-color-error);font-weight:var(--gl-font-weight-semibold)}.glass-toast{position:fixed;top:var(--gl-space-4xl);left:50%;transform:translateX(-50%) translateY(-20px);min-width:280px;max-width:340px;padding:var(--gl-space-md) var(--gl-space-lg);background:linear-gradient(to bottom,var(--gl-surface-4) 0,var(--gl-surface-2) 100%);backdrop-filter:blur(var(--gl-blur));-webkit-backdrop-filter:blur(var(--gl-blur));border:1px solid var(--gl-border-medium);border-radius:var(--gl-radius-btn);display:flex;align-items:center;gap:var(--gl-space-sm);box-shadow:var(--gl-shadow-toast),var(--gl-inset-medium);z-index:1100;opacity:0;pointer-events:none;transition:var(--gl-transition-modal);font-family:var(--gl-font-family);-webkit-font-smoothing:antialiased}.glass-toast.is-visible{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}.glass-toast__icon{width:22px;height:22px;flex-shrink:0;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.glass-toast--success .glass-toast__icon{stroke:var(--gl-color-success)}.glass-toast--error .glass-toast__icon{stroke:var(--gl-color-error)}.glass-toast--warning .glass-toast__icon{stroke:var(--gl-color-warning)}.glass-toast__text{font-size:var(--gl-font-size-sm);font-weight:var(--gl-font-weight-medium);color:var(--gl-color-text);line-height:1.4}.glass-tab-bar{position:fixed;bottom:0;left:0;right:0;height:var(--gl-tab-bar-height);background:linear-gradient(to bottom,var(--gl-surface-3) 0,var(--gl-surface-1) 100%);backdrop-filter:blur(var(--gl-blur));-webkit-backdrop-filter:blur(var(--gl-blur));border-top:1px solid var(--gl-border-subtle);display:flex;justify-content:space-around;align-items:flex-start;padding-top:var(--gl-space-xs);padding-bottom:env(safe-area-inset-bottom,8px);z-index:900;box-shadow:0 -4px 20px rgba(0,0,0,.08),var(--gl-inset-subtle)}.glass-tab-bar__item{display:flex;flex-direction:column;align-items:center;gap:var(--gl-space-2xs);padding:var(--gl-space-2xs) var(--gl-space-sm);background:0 0;border:none;cursor:pointer;transition:var(--gl-transition);outline:0;-webkit-tap-highlight-color:transparent;min-width:60px}.glass-tab-bar__icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;position:relative}.glass-tab-bar__icon svg{width:24px;height:24px;fill:none;stroke:var(--gl-icon-muted);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:var(--gl-transition)}.glass-tab-bar__label{font-size:10px;font-weight:var(--gl-font-weight-medium);color:var(--gl-icon-muted);transition:var(--gl-transition);letter-spacing:.2px}.glass-tab-bar__item.is-active .glass-tab-bar__icon svg{stroke:var(--gl-color-primary);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--gl-color-primary) 35%, transparent))}.glass-tab-bar__item.is-active .glass-tab-bar__label{color:var(--gl-color-primary)}.glass-tab-bar__item.is-active .glass-tab-bar__icon::after{content:'';position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:var(--gl-radius-pill);background:var(--gl-color-primary);box-shadow:0 0 6px color-mix(in srgb,var(--gl-color-primary) 50%,transparent)}.glass-tab-bar__item:not(.is-active):hover .glass-tab-bar__icon svg{stroke:var(--gl-icon-default)}.glass-tab-bar__item:not(.is-active):hover .glass-tab-bar__label{color:var(--gl-icon-default)}.glass-tab-bar__badge{position:absolute;top:-4px;right:-8px;min-width:16px;height:16px;padding:0 4px;border-radius:var(--gl-radius-full);background:var(--gl-color-error-dark,#d63027);color:#fff;font-size:10px;font-weight:var(--gl-font-weight-semibold);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px color-mix(in srgb,var(--gl-color-error) 40%,transparent)}.glass-tab-bar-dock{position:fixed;left:50%;bottom:calc(var(--gl-tab-bar-floating-bottom) + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:flex;align-items:center;gap:var(--gl-tab-bar-floating-gap);z-index:900;max-width:calc(100vw - 2 * var(--gl-space-md))}.glass-tab-bar-dock--accessory-left{flex-direction:row-reverse}.glass-tab-bar.glass-tab-bar--floating{position:static;left:auto;right:auto;bottom:auto;height:auto;width:max-content;padding:var(--gl-tab-bar-floating-padding);border-radius:var(--gl-tab-bar-floating-radius);border:1px solid var(--gl-border-subtle);background:linear-gradient(to bottom,var(--gl-surface-3) 0,var(--gl-surface-1) 100%);box-shadow:0 8px 32px rgba(0,0,0,.18),0 2px 8px rgba(0,0,0,.08),var(--gl-inset-subtle);display:flex;justify-content:flex-start;align-items:center;gap:var(--gl-space-2xs)}.glass-tab-bar--floating .glass-tab-bar__item{position:relative;border-radius:var(--gl-radius-full);padding:var(--gl-space-2xs) var(--gl-space-sm);min-width:auto;align-items:center}.glass-tab-bar--floating .glass-tab-bar__item>*{position:relative;z-index:1}.glass-tab-bar--floating .glass-tab-bar__item.is-active::before{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at center,color-mix(in srgb,var(--gl-tab-bar-spotlight-color) 28%,transparent) 0,color-mix(in srgb,var(--gl-tab-bar-spotlight-color) 10%,transparent) 55%,transparent 100%);pointer-events:none;z-index:0}.glass-tab-bar--floating .glass-tab-bar__item.is-active .glass-tab-bar__icon::after{display:none}.glass-tab-bar__accessory{width:var(--gl-tab-bar-accessory-size);height:var(--gl-tab-bar-accessory-size);border-radius:var(--gl-radius-pill);background:linear-gradient(to bottom,var(--gl-surface-3) 0,var(--gl-surface-1) 100%);backdrop-filter:blur(var(--gl-blur));-webkit-backdrop-filter:blur(var(--gl-blur));border:1px solid var(--gl-border-subtle);box-shadow:0 8px 32px rgba(0,0,0,.18),0 2px 8px rgba(0,0,0,.08),var(--gl-inset-subtle);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--gl-transition);outline:0;padding:0;-webkit-tap-highlight-color:transparent;flex-shrink:0}.glass-tab-bar__accessory ::slotted(svg),.glass-tab-bar__accessory svg{width:22px;height:22px;fill:none;stroke:var(--gl-icon-default);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:var(--gl-transition)}.glass-tab-bar__accessory:hover{transform:translateY(-1px)}.glass-tab-bar__accessory:hover ::slotted(svg),.glass-tab-bar__accessory:hover svg{stroke:var(--gl-icon-strong)}.glass-tab-bar__accessory:focus-visible{box-shadow:0 8px 32px rgba(0,0,0,.18),var(--gl-shadow-focus),var(--gl-inset-subtle)}.glass-tab-bar__accessory--accent{background:linear-gradient(135deg,var(--gl-color-primary) 0,color-mix(in srgb,var(--gl-color-primary) 70%,transparent) 100%);border-color:color-mix(in srgb,var(--gl-color-primary) 50%,transparent);box-shadow:0 8px 32px color-mix(in srgb,var(--gl-color-primary) 35%,transparent),var(--gl-inset-medium)}.glass-tab-bar__accessory--accent ::slotted(svg),.glass-tab-bar__accessory--accent svg{stroke:var(--gl-color-on-primary,#ffffff)}.glass-tab-bar__accessory--accent:hover ::slotted(svg),.glass-tab-bar__accessory--accent:hover svg{stroke:var(--gl-color-on-primary,#ffffff)}.glass-tab-bar__accessory--success{background:linear-gradient(135deg,var(--gl-color-success) 0,color-mix(in srgb,var(--gl-color-success) 70%,transparent) 100%);border-color:color-mix(in srgb,var(--gl-color-success) 50%,transparent);box-shadow:0 8px 32px color-mix(in srgb,var(--gl-color-success) 35%,transparent),var(--gl-inset-medium)}.glass-tab-bar__accessory--success ::slotted(svg),.glass-tab-bar__accessory--success svg{stroke:var(--gl-color-on-success,#ffffff)}.glass-tab-bar__accessory--error{background:linear-gradient(135deg,var(--gl-color-error) 0,color-mix(in srgb,var(--gl-color-error) 70%,transparent) 100%);border-color:color-mix(in srgb,var(--gl-color-error) 50%,transparent);box-shadow:0 8px 32px color-mix(in srgb,var(--gl-color-error) 35%,transparent),var(--gl-inset-medium)}.glass-tab-bar__accessory--error ::slotted(svg),.glass-tab-bar__accessory--error svg{stroke:var(--gl-color-on-error,#ffffff)}.glass-accordion{display:flex;flex-direction:column;gap:var(--gl-space-xs)}.glass-accordion__item{background:var(--gl-surface-2);backdrop-filter:blur(var(--gl-blur-light));-webkit-backdrop-filter:blur(var(--gl-blur-light));border:1px solid var(--gl-border-subtle);border-radius:var(--gl-radius-btn);overflow:hidden;transition:var(--gl-transition);box-shadow:var(--gl-inset-subtle)}.glass-accordion__item.is-open{background:var(--gl-surface-3);border-color:var(--gl-border-medium);box-shadow:0 4px 16px rgba(0,0,0,.1),var(--gl-inset-medium)}.glass-accordion__trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--gl-space-sm);padding:var(--gl-space-md) var(--gl-space-lg);background:0 0;border:none;cursor:pointer;font-family:var(--gl-font-family);font-size:var(--gl-font-size-base);font-weight:var(--gl-font-weight-semibold);color:var(--gl-color-text);text-align:left;outline:0;transition:var(--gl-transition);-webkit-tap-highlight-color:transparent}.glass-accordion__trigger:hover{color:var(--gl-color-primary)}.glass-accordion__trigger-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.glass-accordion__trigger-icon svg{width:18px;height:18px;fill:none;stroke:var(--gl-icon-default);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s cubic-bezier(.4, 0, .2, 1)}.glass-accordion__item.is-open .glass-accordion__trigger-icon svg{transform:rotate(180deg);stroke:var(--gl-color-primary)}.glass-accordion__content{max-height:0;overflow:hidden;transition:max-height .35s cubic-bezier(.4, 0, .2, 1)}.glass-accordion__item.is-open .glass-accordion__content{max-height:500px}.glass-accordion__body{padding:0 var(--gl-space-lg) var(--gl-space-lg);color:var(--gl-accordion-body-color);font-size:var(--gl-font-size-sm);line-height:1.6}.glass-badge{display:inline-flex;align-items:center;gap:var(--gl-space-2xs);padding:var(--gl-space-2xs) var(--gl-space-sm);background:var(--gl-surface-3);backdrop-filter:blur(var(--gl-blur-soft));-webkit-backdrop-filter:blur(var(--gl-blur-soft));border:1px solid var(--gl-border-subtle);border-radius:var(--gl-radius-full);font-size:var(--gl-font-size-xs);font-weight:var(--gl-font-weight-medium);color:var(--gl-color-text);box-shadow:var(--gl-inset-subtle)}.glass-badge--primary{background:linear-gradient(135deg,var(--gl-color-primary-surface,rgba(245,166,35,.25)) 0,color-mix(in srgb,var(--gl-color-primary-dark) 20%,transparent) 100%),var(--gl-state-scrim,transparent);border-color:var(--gl-color-primary-border,var(--gl-border-warm));color:var(--gl-color-primary-on-surface,var(--gl-color-primary))}.glass-badge--success{background:linear-gradient(var(--gl-color-success-surface,rgba(52,199,89,.15)) 0,var(--gl-color-success-surface,rgba(52,199,89,.15)) 100%),var(--gl-state-scrim,transparent);border-color:var(--gl-color-success-border,rgba(52,199,89,.3));color:var(--gl-color-success-on-surface,var(--gl-color-success))}.glass-badge--error{background:linear-gradient(var(--gl-color-error-surface,rgba(255,59,48,.15)) 0,var(--gl-color-error-surface,rgba(255,59,48,.15)) 100%),var(--gl-state-scrim,transparent);border-color:var(--gl-color-error-border,rgba(255,59,48,.3));color:var(--gl-color-error-on-surface,var(--gl-color-error))}.glass-divider{height:1px;border:none;background:linear-gradient(90deg,transparent 0,var(--gl-border-subtle) 20%,var(--gl-border-medium) 50%,var(--gl-border-subtle) 80%,transparent 100%)}.glass-avatar{width:44px;height:44px;border-radius:var(--gl-radius-pill);background:var(--gl-surface-3);backdrop-filter:blur(var(--gl-blur-soft));-webkit-backdrop-filter:blur(var(--gl-blur-soft));border:1.5px solid var(--gl-border-strong);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:var(--gl-shadow-glow),var(--gl-inset-medium);flex-shrink:0;font-size:var(--gl-font-size-btn);font-weight:var(--gl-font-weight-semibold);color:var(--gl-color-text)}.glass-avatar ::slotted(img),.glass-avatar img{width:100%;height:100%;object-fit:cover}.glass-avatar--sm{width:32px;height:32px;font-size:var(--gl-font-size-xs)}.glass-avatar--lg{width:56px;height:56px;font-size:var(--gl-font-size-lg)}.glass-theme-toggle{width:46px;height:46px;border-radius:var(--gl-radius-pill);background:var(--gl-surface-3);backdrop-filter:blur(var(--gl-blur));-webkit-backdrop-filter:blur(var(--gl-blur));border:1.5px solid var(--gl-border-strong);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--gl-transition);box-shadow:var(--gl-shadow-glow),var(--gl-inset-medium);outline:0;-webkit-tap-highlight-color:transparent}.glass-theme-toggle:hover{background:var(--gl-surface-5);transform:scale(1.05)}.glass-theme-toggle:active{transform:scale(.95)}.glass-theme-toggle svg{width:20px;height:20px;fill:none;stroke:var(--gl-color-text);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.glass-theme-toggle .icon-sun{display:none}.glass-theme-toggle .icon-moon,[data-theme=light] .glass-theme-toggle .icon-sun{display:block}[data-theme=light] .glass-theme-toggle .icon-moon{display:none}.glass-popover-anchor{position:relative;display:inline-block}.glass-popover{position:absolute;top:calc(100% + var(--gl-space-xs));left:50%;transform:translateX(-50%) translateY(-4px) scale(.96);transform-origin:top center;min-width:220px;padding:var(--gl-space-sm);background:var(--gl-surface-3);backdrop-filter:blur(var(--gl-blur));-webkit-backdrop-filter:blur(var(--gl-blur));border:1px solid var(--gl-border-medium);border-radius:var(--gl-radius-card);box-shadow:var(--gl-shadow-card),var(--gl-inset-strong);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,transform .18s cubic-bezier(.2,.8,.2,1),visibility 0s linear .18s;z-index:50}.glass-popover.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0) scale(1);transition:opacity .18s,transform .22s cubic-bezier(.2,.8,.2,1),visibility linear}.glass-popover--top{top:auto;bottom:calc(100% + var(--gl-space-xs));transform-origin:bottom center}.glass-popover--start{left:0;transform:translateY(-4px) scale(.96);transform-origin:top left}.glass-popover--start.is-open{transform:translateY(0) scale(1)}.glass-popover--end{left:auto;right:0;transform:translateY(-4px) scale(.96);transform-origin:top right}.glass-popover--end.is-open{transform:translateY(0) scale(1)}.glass-list{background:var(--gl-surface-1);backdrop-filter:blur(var(--gl-blur-light));-webkit-backdrop-filter:blur(var(--gl-blur-light));border:1px solid var(--gl-border-subtle);border-radius:var(--gl-radius-btn);box-shadow:0 4px 12px rgba(0,0,0,.08),var(--gl-inset-subtle);overflow:hidden;display:flex;flex-direction:column;width:100%;margin:0;padding:0;list-style:none}.glass-list--flush{border-radius:0;border-left:none;border-right:none;margin-left:calc(var(--gl-space-lg) * -1);margin-right:calc(var(--gl-space-lg) * -1)}.glass-list--bare{background:0 0;backdrop-filter:none;-webkit-backdrop-filter:none;border:none;border-radius:0;box-shadow:none}.glass-list__section-header{padding:var(--gl-space-xs) var(--gl-space-lg) var(--gl-space-2xs);font-size:var(--gl-font-size-xs);font-weight:var(--gl-font-weight-semibold);color:var(--gl-color-text-muted);text-transform:uppercase;letter-spacing:.3px}.glass-list__item{position:relative;display:flex;align-items:center;gap:var(--gl-space-sm);padding:var(--gl-space-md) var(--gl-space-lg);min-height:56px;color:var(--gl-color-text);font-size:var(--gl-font-size-base);text-decoration:none;background:0 0;border:none;width:100%;text-align:left;font-family:inherit;list-style:none}.glass-list__item:not(:last-child)::after{content:'';position:absolute;left:calc(var(--gl-space-lg) + 28px + var(--gl-space-sm));right:var(--gl-space-lg);bottom:0;height:1px;background:var(--gl-border-subtle);pointer-events:none}.glass-list__item:not(:has(.glass-list__leading)):not(:last-child)::after{left:var(--gl-space-lg)}.glass-list__item:has(.glass-list__leading--lg):not(:last-child)::after{left:calc(var(--gl-space-lg) + 40px + var(--gl-space-sm))}.glass-list__item--center{justify-content:center;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.glass-list__item--center>.glass-list__title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.glass-list__item--interactive{cursor:pointer;transition:background .15s}.glass-list__item--interactive:focus-visible,.glass-list__item--interactive:hover{background:var(--gl-surface-2);outline:0}.glass-list__item--interactive:active{background:var(--gl-surface-3)}.glass-list__item--danger{color:var(--gl-color-error)}.glass-list__item--danger .glass-list__leading,.glass-list__item--danger .glass-list__title{color:inherit}.glass-list__item--accent{color:var(--gl-color-primary)}.glass-list__item--accent .glass-list__leading,.glass-list__item--accent .glass-list__title{color:inherit}.glass-list__leading{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--gl-icon-strong)}.glass-list__leading ::slotted(svg),.glass-list__leading svg{width:24px;height:24px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.glass-list__leading--lg{width:40px;height:40px;border-radius:var(--gl-radius-xs);overflow:hidden}.glass-list__leading--lg ::slotted(svg),.glass-list__leading--lg svg{width:32px;height:32px}.glass-list__leading--lg ::slotted(img),.glass-list__leading--lg img{width:100%;height:100%;object-fit:cover;display:block}.glass-list__content{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:2px;overflow:hidden}.glass-list__title{font-size:var(--gl-font-size-base);font-weight:var(--gl-font-weight-medium);color:var(--gl-color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.glass-list__subtitle{font-size:var(--gl-font-size-sm);color:var(--gl-color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.glass-list__subtitle--wrap{white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.glass-list__trailing{flex-shrink:0;display:flex;align-items:center;gap:var(--gl-space-xs);color:var(--gl-color-text-muted);font-size:var(--gl-font-size-sm)}.glass-list__trailing ::slotted(svg),.glass-list__trailing svg{width:18px;height:18px;stroke:var(--gl-icon-muted);stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.glass-list__value{color:var(--gl-color-text-muted);font-size:var(--gl-font-size-sm);white-space:nowrap}.gl-stack{display:flex;flex-direction:column}.gl-row{display:flex;flex-direction:row;align-items:center}.gl-stack--2xs{gap:var(--gl-space-2xs)}.gl-stack--xs{gap:var(--gl-space-xs)}.gl-stack--sm{gap:var(--gl-space-sm)}.gl-stack--md{gap:var(--gl-space-md)}.gl-stack--lg{gap:var(--gl-space-lg)}.gl-stack--xl{gap:var(--gl-space-xl)}.gl-row--xs{gap:var(--gl-space-xs)}.gl-row--sm{gap:var(--gl-space-sm)}.gl-row--md{gap:var(--gl-space-md)}.gl-text-center{text-align:center}.gl-text-muted{color:var(--gl-color-text-muted)}.gl-text-sm{font-size:var(--gl-font-size-sm)}.gl-mt-sm{margin-top:var(--gl-space-sm)}.gl-mt-md{margin-top:var(--gl-space-md)}.gl-mt-lg{margin-top:var(--gl-space-lg)}.gl-mt-xl{margin-top:var(--gl-space-xl)}.gl-mb-sm{margin-bottom:var(--gl-space-sm)}.gl-mb-md{margin-bottom:var(--gl-space-md)}.gl-mb-lg{margin-bottom:var(--gl-space-lg)}.gl-mb-xl{margin-bottom:var(--gl-space-xl)}.gl-px{padding-left:var(--gl-space-lg);padding-right:var(--gl-space-lg)}.gl-w-full{width:100%}.gl-flex-1{flex:1}svg.glass-icon--fill{fill:currentColor;stroke:none}\n/*# sourceMappingURL=glasskit.min.css.map */",a=s+r,i=s+e+r;(new CSSStyleSheet).replaceSync(i);(new CSSStyleSheet).replaceSync(e);const l=new CSSStyleSheet;l.replaceSync(a);const o="__glkDefaultTokensInjected";!function(){if("undefined"==typeof document)return;if(globalThis[o])return;globalThis[o]=!0;const t=new CSSStyleSheet;t.replaceSync(`@layer glasskit-defaults { ${e} }`),document.adoptedStyleSheets=[...document.adoptedStyleSheets,t]}();const n=new Set;function g(){return document.documentElement.getAttribute("data-theme")||"dark"}if("undefined"!=typeof window&&"undefined"!=typeof MutationObserver){new MutationObserver(function(){const t=g();for(const e of n)e._syncTheme(t)}).observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]})}const c=new CSSStyleSheet;c.replaceSync("\n :host { display: block; }\n :host([hidden]) { display: none; }\n .glk-wrapper { display: contents; }\n");const d=new CSSStyleSheet;d.replaceSync("\n :host { display: inline-block; }\n :host([hidden]) { display: none; }\n .glk-wrapper { display: contents; }\n");class h extends HTMLElement{static get displayInline(){return!1}static get hostStyles(){return null}static get observesLightDom(){return!1}static get observedAttributes(){return[]}constructor(){super(),this._initialized=!1,this._shadow=this.attachShadow({mode:"open"});const t=this.constructor.displayInline?d:c,e=[l,t],s=this.constructor.hostStyles;s&&e.push(s),this._shadow.adoptedStyleSheets=e}connectedCallback(){this._initialized||(this._initialized=!0,this._wrapper=document.createElement("div"),this._wrapper.className="glk-wrapper",this._wrapper.setAttribute("data-theme",g()),this._shadow.appendChild(this._wrapper),this.render()),this.setupEvents(),n.add(this),this.constructor.observesLightDom&&(this._lightDomObserver??=new MutationObserver(t=>this.projectLightDom(t)),this._lightDomObserver.observe(this,{childList:!0,subtree:!0,characterData:!0}))}disconnectedCallback(){n.delete(this),this._lightDomObserver?.disconnect(),this.teardownEvents()}attributeChangedCallback(t,e,s){this._initialized&&e!==s&&this.onAttributeChanged(t,e,s)}_syncTheme(t){this._wrapper&&this._wrapper.setAttribute("data-theme",t)}render(){}setupEvents(){}teardownEvents(){}onAttributeChanged(t,e,s){}projectLightDom(){}refresh(){this.projectLightDom()}getBoolAttr(t){return this.hasAttribute(t)}setBoolAttr(t,e){e?this.setAttribute(t,""):this.removeAttribute(t)}createElement(t,e=[],s={}){const r=document.createElement(t);e.length&&r.classList.add(...e);for(const[t,e]of Object.entries(s))r.setAttribute(t,e);return r}emit(t,e=null){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}}class p extends h{static formAssociated=!0;constructor(){super(),this._internals=this.attachInternals()}get form(){return this._internals.form}get validationMessage(){return this._internals.validationMessage}get validity(){return this._internals.validity}checkValidity(){return this._internals.checkValidity()}reportValidity(){return this._internals.reportValidity()}formResetCallback(){this.resetValue()}formStateRestoreCallback(t,e){this.restoreValue(t)}resetValue(){}restoreValue(t){}setFormValue(t){this._internals.setFormValue(t)}setValidity(t,e,s){this._internals.setValidity(t,e,s)}}class b extends h{render(){const t=this.createElement("nav",["glass-nav"]);t.appendChild(document.createElement("slot")),this._wrapper.appendChild(t)}}customElements.define("glk-nav",b);class u extends h{static get observedAttributes(){return["label","disabled"]}render(){this._btn=this.createElement("button",["glass-pill"]),this.getBoolAttr("disabled")&&(this._btn.disabled=!0);const t=this.getAttribute("label");t&&this._btn.setAttribute("aria-label",t),this._btn.appendChild(document.createElement("slot")),this._wrapper.appendChild(this._btn)}setupEvents(){this._onClick=()=>{this.getBoolAttr("disabled")||this.emit("glk-click")},this._btn.addEventListener("click",this._onClick)}teardownEvents(){this._btn?.removeEventListener("click",this._onClick)}onAttributeChanged(t){if(this._btn)switch(t){case"label":this._btn.setAttribute("aria-label",this.getAttribute("label")||"");break;case"disabled":this._btn.disabled=this.getBoolAttr("disabled")}}}customElements.define("glk-pill",u);class v extends h{static get observedAttributes(){return["static","floating"]}render(){const t=this.createElement("nav",["glass-tab-bar"]);t.appendChild(document.createElement("slot")),this._wrapper.appendChild(t),this._nav=t,this.getBoolAttr("floating")&&t.classList.add("glass-tab-bar--floating"),this.getBoolAttr("static")&&this._applyStatic()}onAttributeChanged(t){this._nav&&("static"===t?this._applyStatic():"floating"===t&&this._nav.classList.toggle("glass-tab-bar--floating",this.getBoolAttr("floating")))}_applyStatic(){this._nav.style.position="relative",this._nav.style.borderRadius="16px"}setupEvents(){this._onTabSelect=t=>{this.querySelectorAll("glk-tab-item").forEach(e=>{e!==t.target&&e.removeAttribute("active")}),this.emit("glk-tab-change",{tab:t.target})},this.addEventListener("glk-tab-select",this._onTabSelect)}teardownEvents(){this.removeEventListener("glk-tab-select",this._onTabSelect)}}customElements.define("glk-tab-bar",v);class m extends h{static get observedAttributes(){return["label","active","badge"]}static get observesLightDom(){return!0}render(){this._btn=this.createElement("button",["glass-tab-bar__item"]),this.getBoolAttr("active")&&this._btn.classList.add("is-active"),this._iconEl=this.createElement("span",["glass-tab-bar__icon"]),this._labelEl=this.createElement("span",["glass-tab-bar__label"]),this._labelEl.textContent=this.getAttribute("label")||"";const t=this.getAttribute("badge");t&&(this._badgeEl=this.createElement("span",["glass-tab-bar__badge"]),this._badgeEl.textContent=t,this._iconEl.appendChild(this._badgeEl)),this._btn.appendChild(this._iconEl),this._btn.appendChild(this._labelEl),this._wrapper.appendChild(this._btn),requestAnimationFrame(()=>this.projectLightDom())}projectLightDom(){const t=this.querySelector("svg"),e=t?t.outerHTML:"";if(e===this._iconSignature)return;if(this._iconSignature=e,this._iconClone?.remove(),this._iconClone=null,!t)return;const s=t.cloneNode(!0);s.removeAttribute("width"),s.removeAttribute("height"),s.removeAttribute("stroke"),s.removeAttribute("stroke-width"),s.removeAttribute("stroke-linecap"),s.removeAttribute("stroke-linejoin"),s.removeAttribute("fill"),this._iconEl.insertBefore(s,this._iconEl.firstChild),this._iconClone=s}setupEvents(){this._onClick=()=>{this.setAttribute("active",""),this.emit("glk-tab-select")},this._btn.addEventListener("click",this._onClick)}teardownEvents(){this._btn?.removeEventListener("click",this._onClick)}onAttributeChanged(t){if(this._btn)switch(t){case"active":this._btn.classList.toggle("is-active",this.getBoolAttr("active"));break;case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"badge":{const t=this.getAttribute("badge");t?(this._badgeEl||(this._badgeEl=this.createElement("span",["glass-tab-bar__badge"]),this._iconEl.appendChild(this._badgeEl)),this._badgeEl.textContent=t):this._badgeEl&&(this._badgeEl.remove(),this._badgeEl=null);break}}}}customElements.define("glk-tab-item",m);class _ extends h{static get observedAttributes(){return["accessory-left","static"]}render(){this._dock=this.createElement("div",["glass-tab-bar-dock"]),this.getBoolAttr("accessory-left")&&this._dock.classList.add("glass-tab-bar-dock--accessory-left"),this._dock.appendChild(document.createElement("slot")),this._wrapper.appendChild(this._dock),this.getBoolAttr("static")&&this._applyStatic()}onAttributeChanged(t){this._dock&&("accessory-left"===t?this._dock.classList.toggle("glass-tab-bar-dock--accessory-left",this.getBoolAttr("accessory-left")):"static"===t&&this._applyStatic())}_applyStatic(){this.getBoolAttr("static")?(this._dock.style.position="relative",this._dock.style.left="auto",this._dock.style.bottom="auto",this._dock.style.transform="none",this._dock.style.justifyContent="center"):(this._dock.style.position="",this._dock.style.left="",this._dock.style.bottom="",this._dock.style.transform="",this._dock.style.justifyContent="")}}customElements.define("glk-tab-dock",_);const f=["accent","success","error"];class x extends h{static get observedAttributes(){return["label","disabled","variant"]}render(){this._btn=this.createElement("button",["glass-tab-bar__accessory"]),this.getBoolAttr("disabled")&&(this._btn.disabled=!0);const t=this.getAttribute("label");t&&this._btn.setAttribute("aria-label",t),this._applyVariant(),this._btn.appendChild(document.createElement("slot")),this._wrapper.appendChild(this._btn)}_applyVariant(){if(!this._btn)return;for(const t of f)this._btn.classList.remove(`glass-tab-bar__accessory--${t}`);const t=this.getAttribute("variant");t&&f.includes(t)&&this._btn.classList.add(`glass-tab-bar__accessory--${t}`)}setupEvents(){this._onClick=()=>{this.getBoolAttr("disabled")||this.emit("glk-click")},this._btn.addEventListener("click",this._onClick)}teardownEvents(){this._btn?.removeEventListener("click",this._onClick)}onAttributeChanged(t){if(this._btn)switch(t){case"label":this._btn.setAttribute("aria-label",this.getAttribute("label")||"");break;case"disabled":this._btn.disabled=this.getBoolAttr("disabled");break;case"variant":this._applyVariant()}}}customElements.define("glk-tab-accessory",x);const k=new CSSStyleSheet;k.replaceSync("\n :host([fill]) { display: grid; }\n :host([fill]) .glass-card { display: flex; flex-direction: column; }\n");class w extends h{static get observedAttributes(){return["glow","fill"]}static get hostStyles(){return k}render(){this._card=this.createElement("div",this._computeClasses(),{part:"card"}),this._card.appendChild(document.createElement("slot")),this._wrapper.appendChild(this._card)}onAttributeChanged(t){"glow"===t&&this._card&&(this._card.className=this._computeClasses().join(" "))}_computeClasses(){const t=["glass-card"];return this.getBoolAttr("glow")&&t.push("glass-card--glow"),t}get glow(){return this.getBoolAttr("glow")}set glow(t){this.setBoolAttr("glow",t)}get fill(){return this.getBoolAttr("fill")}set fill(t){this.setBoolAttr("fill",t)}}customElements.define("glk-card",w);const y=["primary","success","error"];class A extends h{static get displayInline(){return!0}static get observedAttributes(){return["variant"]}render(){this._badge=this.createElement("span",this._computeClasses()),this._badge.appendChild(document.createElement("slot")),this._wrapper.appendChild(this._badge)}onAttributeChanged(t){"variant"===t&&this._badge&&(this._badge.className=this._computeClasses().join(" "))}_computeClasses(){const t=["glass-badge"],e=this.getAttribute("variant");return e&&y.includes(e)&&t.push(`glass-badge--${e}`),t}get variant(){return this.getAttribute("variant")}set variant(t){this.setAttribute("variant",t)}}customElements.define("glk-badge",A);const E=["sm","lg"];class C extends h{static get displayInline(){return!0}static get observedAttributes(){return["size","src","alt"]}render(){this._avatar=this.createElement("div",this._computeClasses()),this._updateContent(),this._wrapper.appendChild(this._avatar)}onAttributeChanged(t){this._avatar&&("size"===t?this._avatar.className=this._computeClasses().join(" "):"src"!==t&&"alt"!==t||this._updateContent())}_updateContent(){const t=this.getAttribute("src");if(this._avatar.innerHTML="",t){const e=this.createElement("img",[],{src:t,alt:this.getAttribute("alt")||""});this._avatar.appendChild(e)}else this._avatar.appendChild(document.createElement("slot"))}_computeClasses(){const t=["glass-avatar"],e=this.getAttribute("size");return e&&E.includes(e)&&t.push(`glass-avatar--${e}`),t}get size(){return this.getAttribute("size")}set size(t){this.setAttribute("size",t)}get src(){return this.getAttribute("src")}set src(t){this.setAttribute("src",t)}}customElements.define("glk-avatar",C);class B extends h{static get observedAttributes(){return[]}render(){const t=this.createElement("div",["glass-title"]);t.appendChild(document.createElement("slot")),this._wrapper.appendChild(t)}}customElements.define("glk-title",B);class z extends h{render(){const t=this.createElement("div",["glass-divider"]);this._wrapper.appendChild(t)}}customElements.define("glk-divider",z);class L extends h{static get observedAttributes(){return["message"]}render(){this._container=this.createElement("div",["glass-status"]),this._iconSlot=this.createElement("span",[]),this._iconSlot.appendChild(this.createElement("slot",[],{name:"icon"})),this._messageEl=this.createElement("p",[]),this._messageEl.textContent=this.getAttribute("message")||"",this._container.appendChild(this._iconSlot),this._container.appendChild(this._messageEl),this._wrapper.appendChild(this._container)}onAttributeChanged(t){"message"===t&&this._messageEl&&(this._messageEl.textContent=this.getAttribute("message")||"")}get message(){return this.getAttribute("message")}set message(t){this.setAttribute("message",t)}}customElements.define("glk-status",L);const S=["primary","secondary","tertiary"],V=["sm","md","lg","auto"];class F extends h{static get observedAttributes(){return["variant","size","disabled","type"]}render(){this._btn=this.createElement("button",this._computeClasses(),{type:this.getAttribute("type")||"button"}),this.getBoolAttr("disabled")&&(this._btn.disabled=!0),this._btn.appendChild(document.createElement("slot")),this._wrapper.appendChild(this._btn)}setupEvents(){this._onClick=t=>{if(this.getBoolAttr("disabled"))return t.preventDefault(),void t.stopPropagation();this.emit("glk-click")},this._btn.addEventListener("click",this._onClick)}teardownEvents(){this._btn?.removeEventListener("click",this._onClick)}onAttributeChanged(t){if(this._btn)switch(t){case"variant":case"size":this._btn.className=this._computeClasses().join(" ");break;case"disabled":this._btn.disabled=this.getBoolAttr("disabled");break;case"type":this._btn.setAttribute("type",this.getAttribute("type")||"button")}}_computeClasses(){const t=["glass-btn"],e=this.getAttribute("variant");e&&S.includes(e)&&t.push(`glass-btn--${e}`);const s=this.getAttribute("size");return s&&V.includes(s)&&t.push(`glass-btn--${s}`),t}get variant(){return this.getAttribute("variant")}set variant(t){this.setAttribute("variant",t)}get size(){return this.getAttribute("size")}set size(t){this.setAttribute("size",t)}get disabled(){return this.getBoolAttr("disabled")}set disabled(t){this.setBoolAttr("disabled",t)}}customElements.define("glk-button",F);class j extends p{static get observedAttributes(){return["label","type","placeholder","error","hint","disabled","name","value","required"]}render(){const t=this.createElement("div",["glass-input-group"]);this._labelEl=this.createElement("label",["glass-label"]),this._labelEl.textContent=this.getAttribute("label")||"",this._input=this.createElement("input",this._computeInputClasses(),{type:this.getAttribute("type")||"text"});const e=this.getAttribute("placeholder");e&&this._input.setAttribute("placeholder",e);const s=this.getAttribute("name");s&&this._input.setAttribute("name",s);const r=this.getAttribute("value");r&&(this._input.value=r),this.getBoolAttr("disabled")&&(this._input.disabled=!0),this.getBoolAttr("required")&&(this._input.required=!0),this._hintEl=this.createElement("span",this._computeHintClasses()),this._hintEl.textContent=this.getAttribute("hint")||"",t.appendChild(this._labelEl),t.appendChild(this._input),this.getAttribute("hint")&&t.appendChild(this._hintEl),this._group=t,this._wrapper.appendChild(t),this._syncFormValue()}setupEvents(){this._onInput=()=>{this._syncFormValue(),this.emit("glk-input",{value:this._input.value}),this.dispatchEvent(new Event("input",{bubbles:!0}))},this._onChangeNative=()=>{this.emit("glk-change",{value:this._input.value}),this.dispatchEvent(new Event("change",{bubbles:!0}))},this._input.addEventListener("input",this._onInput),this._input.addEventListener("change",this._onChangeNative)}teardownEvents(){this._input?.removeEventListener("input",this._onInput),this._input?.removeEventListener("change",this._onChangeNative)}onAttributeChanged(t){if(this._input)switch(t){case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"type":this._input.setAttribute("type",this.getAttribute("type")||"text");break;case"placeholder":this._input.setAttribute("placeholder",this.getAttribute("placeholder")||"");break;case"error":this._input.className=this._computeInputClasses().join(" "),this._hintEl.className=this._computeHintClasses().join(" ");break;case"hint":this._hintEl.textContent=this.getAttribute("hint")||"",this.getAttribute("hint")&&!this._hintEl.parentNode&&this._group.appendChild(this._hintEl);break;case"disabled":this._input.disabled=this.getBoolAttr("disabled");break;case"name":this._input.setAttribute("name",this.getAttribute("name")||"");break;case"value":this._input.value=this.getAttribute("value")||"",this._syncFormValue();break;case"required":this._input.required=this.getBoolAttr("required")}}_computeInputClasses(){const t=["glass-input"];return this.getBoolAttr("error")&&t.push("glass-input--error"),t}_computeHintClasses(){const t=["glass-hint"];return this.getBoolAttr("error")&&t.push("glass-hint--error"),t}_syncFormValue(){this.setFormValue(this._input.value)}resetValue(){this._input.value=this.getAttribute("value")||"",this._syncFormValue()}get value(){return this._input?.value??""}set value(t){this._input&&(this._input.value=t),this._syncFormValue()}get disabled(){return this.getBoolAttr("disabled")}set disabled(t){this.setBoolAttr("disabled",t)}get name(){return this.getAttribute("name")}set name(t){this.setAttribute("name",t)}}customElements.define("glk-input",j);class T extends p{static get observedAttributes(){return["label","placeholder","rows","disabled","name","value","required"]}render(){const t=this.createElement("div",["glass-input-group"]);this._labelEl=this.createElement("label",["glass-label"]),this._labelEl.textContent=this.getAttribute("label")||"",this._textarea=this.createElement("textarea",["glass-textarea"]);const e=this.getAttribute("placeholder");e&&this._textarea.setAttribute("placeholder",e);const s=this.getAttribute("rows");s&&this._textarea.setAttribute("rows",s);const r=this.getAttribute("name");r&&this._textarea.setAttribute("name",r);const a=this.getAttribute("value");a&&(this._textarea.value=a),this.getBoolAttr("disabled")&&(this._textarea.disabled=!0),this.getBoolAttr("required")&&(this._textarea.required=!0),t.appendChild(this._labelEl),t.appendChild(this._textarea),this._wrapper.appendChild(t),this._syncFormValue()}setupEvents(){this._onInput=()=>{this._syncFormValue(),this.emit("glk-input",{value:this._textarea.value}),this.dispatchEvent(new Event("input",{bubbles:!0}))},this._textarea.addEventListener("input",this._onInput)}teardownEvents(){this._textarea?.removeEventListener("input",this._onInput)}onAttributeChanged(t){if(this._textarea)switch(t){case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"placeholder":this._textarea.setAttribute("placeholder",this.getAttribute("placeholder")||"");break;case"rows":this._textarea.setAttribute("rows",this.getAttribute("rows")||"");break;case"disabled":this._textarea.disabled=this.getBoolAttr("disabled");break;case"name":this._textarea.setAttribute("name",this.getAttribute("name")||"");break;case"value":this._textarea.value=this.getAttribute("value")||"",this._syncFormValue()}}_syncFormValue(){this.setFormValue(this._textarea.value)}resetValue(){this._textarea.value=this.getAttribute("value")||"",this._syncFormValue()}get value(){return this._textarea?.value??""}set value(t){this._textarea&&(this._textarea.value=t),this._syncFormValue()}get disabled(){return this.getBoolAttr("disabled")}set disabled(t){this.setBoolAttr("disabled",t)}}customElements.define("glk-textarea",T);class D extends p{static get observedAttributes(){return["label","disabled","name","value","required"]}static get observesLightDom(){return!0}render(){const t=this.createElement("div",["glass-input-group"]);this._labelEl=this.createElement("label",["glass-label"]),this._labelEl.textContent=this.getAttribute("label")||"",this._select=this.createElement("select",["glass-select"]);const e=this.getAttribute("name");e&&this._select.setAttribute("name",e),this.getBoolAttr("disabled")&&(this._select.disabled=!0),this.getBoolAttr("required")&&(this._select.required=!0),t.appendChild(this._labelEl),t.appendChild(this._select),this._wrapper.appendChild(t),requestAnimationFrame(()=>this.projectLightDom())}projectLightDom(){const t=[...this.querySelectorAll("option")].map(t=>t.outerHTML).join("");if(t===this._optionSignature)return;this._optionSignature=t;const e=this._select.selectedIndex>=0?this._select.value:null;this._moveOptions(),this._applyValue(e)||this._applyValue(this.getAttribute("value")),this._syncFormValue()}_moveOptions(){this._select.innerHTML="";this.querySelectorAll("option").forEach(t=>{this._select.appendChild(t.cloneNode(!0))})}_applyValue(t){return null!==t&&(!![...this._select.options].some(e=>e.value===t)&&(this._select.value=t,!0))}setupEvents(){this._onChange=()=>{this._syncFormValue(),this.emit("glk-change",{value:this._select.value}),this.dispatchEvent(new Event("change",{bubbles:!0}))},this._select.addEventListener("change",this._onChange)}teardownEvents(){this._select?.removeEventListener("change",this._onChange)}onAttributeChanged(t){if(this._select)switch(t){case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"disabled":this._select.disabled=this.getBoolAttr("disabled");break;case"name":this._select.setAttribute("name",this.getAttribute("name")||"");break;case"value":this._applyValue(this.getAttribute("value")),this._syncFormValue()}}_syncFormValue(){this.setFormValue(this._select.value)}resetValue(){this._select.selectedIndex=0,this._syncFormValue()}get value(){return this._select?.value??""}set value(t){this._select&&(this._select.value=t),this._syncFormValue()}get disabled(){return this.getBoolAttr("disabled")}set disabled(t){this.setBoolAttr("disabled",t)}}customElements.define("glk-select",D);class I extends p{static get observedAttributes(){return["placeholder","name","value","disabled"]}render(){const t=this.createElement("div",["glass-search"]),e=this.createElement("span",["glass-search__icon"]);e.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>',this._input=this.createElement("input",["glass-input"],{type:"search"});const s=this.getAttribute("placeholder");s&&this._input.setAttribute("placeholder",s);const r=this.getAttribute("name");r&&this._input.setAttribute("name",r);const a=this.getAttribute("value");a&&(this._input.value=a),this.getBoolAttr("disabled")&&(this._input.disabled=!0),t.appendChild(e),t.appendChild(this._input),this._wrapper.appendChild(t),this._syncFormValue()}setupEvents(){this._onInput=()=>{this._syncFormValue(),this.emit("glk-input",{value:this._input.value}),this.dispatchEvent(new Event("input",{bubbles:!0}))},this._input.addEventListener("input",this._onInput)}teardownEvents(){this._input?.removeEventListener("input",this._onInput)}onAttributeChanged(t){if(this._input)switch(t){case"placeholder":this._input.setAttribute("placeholder",this.getAttribute("placeholder")||"");break;case"name":this._input.setAttribute("name",this.getAttribute("name")||"");break;case"value":this._input.value=this.getAttribute("value")||"",this._syncFormValue();break;case"disabled":this._input.disabled=this.getBoolAttr("disabled")}}_syncFormValue(){this.setFormValue(this._input.value)}resetValue(){this._input.value=this.getAttribute("value")||"",this._syncFormValue()}get value(){return this._input?.value??""}set value(t){this._input&&(this._input.value=t),this._syncFormValue()}}customElements.define("glk-search",I);class G extends p{static get observedAttributes(){return["checked","disabled","label","name","value"]}render(){const t=this.createElement("label",["glass-toggle"]);this._input=this.createElement("input",["glass-toggle__input"],{type:"checkbox"});const e=this.getAttribute("name");e&&this._input.setAttribute("name",e);const s=this.createElement("span",["glass-toggle__track"]),r=this.createElement("span",["glass-toggle__thumb"]);s.appendChild(r),this._labelEl=this.createElement("span",["glass-toggle__label"]),this._labelEl.textContent=this.getAttribute("label")||"",t.appendChild(this._input),t.appendChild(s),t.appendChild(this._labelEl),this.getBoolAttr("checked")&&(this._input.checked=!0),this.getBoolAttr("disabled")&&(this._input.disabled=!0),this._defaultChecked=this.getBoolAttr("checked"),this._wrapper.appendChild(t),this._syncFormValue(),this.setAttribute("role","switch"),this.setAttribute("aria-checked",String(this._input.checked)),this.getBoolAttr("disabled")&&this.setAttribute("aria-disabled","true")}setupEvents(){this._onChange=()=>{this._syncing=!0,this.setBoolAttr("checked",this._input.checked),this._syncing=!1,this.setAttribute("aria-checked",String(this._input.checked)),this._syncFormValue(),this.emit("glk-change",{checked:this._input.checked}),this.dispatchEvent(new Event("change",{bubbles:!0}))},this._input.addEventListener("change",this._onChange)}teardownEvents(){this._input?.removeEventListener("change",this._onChange)}onAttributeChanged(t){if(!this._syncing&&this._input)switch(t){case"checked":this._input.checked=this.getBoolAttr("checked"),this.setAttribute("aria-checked",String(this._input.checked)),this._syncFormValue();break;case"disabled":this._input.disabled=this.getBoolAttr("disabled"),this.setAttribute("aria-disabled",String(this.getBoolAttr("disabled")));break;case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"name":this._input.setAttribute("name",this.getAttribute("name")||"")}}_syncFormValue(){const t=this.getAttribute("value")||"on";this.setFormValue(this._input.checked?t:null)}resetValue(){this._input.checked=this._defaultChecked,this.setBoolAttr("checked",this._defaultChecked),this.setAttribute("aria-checked",String(this._defaultChecked)),this._syncFormValue()}restoreValue(t){t&&(this._input.checked=!0,this.setBoolAttr("checked",!0))}get checked(){return this._input?.checked??!1}set checked(t){this._input&&(this._input.checked=t),this.setBoolAttr("checked",t),this.setAttribute("aria-checked",String(t)),this._syncFormValue()}get disabled(){return this.getBoolAttr("disabled")}set disabled(t){this.setBoolAttr("disabled",t)}get name(){return this.getAttribute("name")}set name(t){this.setAttribute("name",t)}get value(){return this.getAttribute("value")||"on"}set value(t){this.setAttribute("value",t)}get label(){return this.getAttribute("label")}set label(t){this.setAttribute("label",t)}}customElements.define("glk-toggle",G);class q extends p{static get observedAttributes(){return["checked","disabled","label","name","value"]}render(){const t=this.createElement("label",["glass-checkbox"]);this._input=this.createElement("input",["glass-checkbox__input"],{type:"checkbox"});const e=this.getAttribute("name");e&&this._input.setAttribute("name",e);const s=this.createElement("span",["glass-checkbox__box"]);s.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>',this._labelEl=this.createElement("span",["glass-checkbox__label"]),this._labelEl.textContent=this.getAttribute("label")||"",t.appendChild(this._input),t.appendChild(s),t.appendChild(this._labelEl),this.getBoolAttr("checked")&&(this._input.checked=!0),this.getBoolAttr("disabled")&&(this._input.disabled=!0),this._defaultChecked=this.getBoolAttr("checked"),this._wrapper.appendChild(t),this._syncFormValue()}setupEvents(){this._onChange=()=>{this._syncing=!0,this.setBoolAttr("checked",this._input.checked),this._syncing=!1,this._syncFormValue(),this.emit("glk-change",{checked:this._input.checked}),this.dispatchEvent(new Event("change",{bubbles:!0}))},this._input.addEventListener("change",this._onChange)}teardownEvents(){this._input?.removeEventListener("change",this._onChange)}onAttributeChanged(t){if(!this._syncing&&this._input)switch(t){case"checked":this._input.checked=this.getBoolAttr("checked"),this._syncFormValue();break;case"disabled":this._input.disabled=this.getBoolAttr("disabled");break;case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"name":this._input.setAttribute("name",this.getAttribute("name")||"")}}_syncFormValue(){const t=this.getAttribute("value")||"on";this.setFormValue(this._input.checked?t:null)}resetValue(){this._input.checked=this._defaultChecked,this.setBoolAttr("checked",this._defaultChecked),this._syncFormValue()}get checked(){return this._input?.checked??!1}set checked(t){this._input&&(this._input.checked=t),this.setBoolAttr("checked",t),this._syncFormValue()}get disabled(){return this.getBoolAttr("disabled")}set disabled(t){this.setBoolAttr("disabled",t)}get name(){return this.getAttribute("name")}set name(t){this.setAttribute("name",t)}get value(){return this.getAttribute("value")||"on"}set value(t){this.setAttribute("value",t)}}customElements.define("glk-checkbox",q);const M={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1};function N(t){return(void 0!==t.form?t.form:t.closest("form"))??null}function $(t){const e=t.filter(t=>!t.disabled);if(!e.length)return;const s=e.find(t=>t.checked)||e[0];for(const e of t)e._input&&(e._input.tabIndex=e===s?0:-1)}class O extends p{static get observedAttributes(){return["checked","disabled","label","name","value"]}render(){const t=this.createElement("label",["glass-radio"]);this._input=this.createElement("input",["glass-radio__input"],{type:"radio"});const e=this.getAttribute("name");e&&this._input.setAttribute("name",e);const s=this.getAttribute("value");s&&this._input.setAttribute("value",s);const r=this.createElement("span",["glass-radio__circle"]),a=this.createElement("span",["glass-radio__dot"]);r.appendChild(a),this._labelEl=this.createElement("span",["glass-radio__label"]),this._labelEl.textContent=this.getAttribute("label")||"",t.appendChild(this._input),t.appendChild(r),t.appendChild(this._labelEl),this.getBoolAttr("checked")&&(this._input.checked=!0),this.getBoolAttr("disabled")&&(this._input.disabled=!0),this._defaultChecked=this.getBoolAttr("checked"),this._wrapper.appendChild(t),this._syncFormValue(),this._input.checked&&this._uncheckPeers(),$(this._group())}setupEvents(){this._onChange=()=>this._applyChange(),this._onKeyDown=t=>{const e=M[t.key];if(!e||t.ctrlKey||t.metaKey||t.altKey)return;const s=this._group().filter(t=>!t.disabled);if(s.length<2)return;t.preventDefault();const r=s[(s.indexOf(this)+e+s.length)%s.length];r._input.focus(),r._input.checked=!0,r._applyChange()},this._input.addEventListener("change",this._onChange),this._input.addEventListener("keydown",this._onKeyDown)}teardownEvents(){this._input?.removeEventListener("change",this._onChange),this._input?.removeEventListener("keydown",this._onKeyDown)}_applyChange(){this._input.checked&&this._uncheckPeers(),this._syncing=!0,this.setBoolAttr("checked",this._input.checked),this._syncing=!1,this._syncFormValue(),$(this._group()),this.emit("glk-change",{checked:this._input.checked,value:this._input.value}),this.dispatchEvent(new Event("change",{bubbles:!0}))}_group(){const t=this.getAttribute("name"),e=this.getRootNode();if(!t||"function"!=typeof e?.querySelectorAll)return[this];const s=N(this);return[...e.querySelectorAll("glk-radio")].filter(e=>e.getAttribute("name")===t&&N(e)===s)}_uncheckPeers(){for(const t of this._group())t!==this&&t.checked&&(t.checked=!1)}onAttributeChanged(t){if(!this._syncing&&this._input)switch(t){case"checked":this._input.checked=this.getBoolAttr("checked"),this._input.checked&&this._uncheckPeers(),this._syncFormValue(),$(this._group());break;case"disabled":this._input.disabled=this.getBoolAttr("disabled"),$(this._group());break;case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"name":this._input.setAttribute("name",this.getAttribute("name")||""),$(this._group());break;case"value":this._input.setAttribute("value",this.getAttribute("value")||""),this._syncFormValue()}}_syncFormValue(){const t=this.getAttribute("value")||"";this.setFormValue(this._input.checked?t:null)}resetValue(){this._input.checked=this._defaultChecked,this.setBoolAttr("checked",this._defaultChecked),this._syncFormValue(),$(this._group())}get checked(){return this._input?.checked??!1}set checked(t){this._input&&(this._input.checked=t),t&&this._uncheckPeers(),this.setBoolAttr("checked",t),this._syncFormValue(),$(this._group())}get disabled(){return this.getBoolAttr("disabled")}set disabled(t){this.setBoolAttr("disabled",t)}get name(){return this.getAttribute("name")}set name(t){this.setAttribute("name",t)}get value(){return this.getAttribute("value")}set value(t){this.setAttribute("value",t)}}customElements.define("glk-radio",O);class Y extends p{static get observedAttributes(){return["label","min","max","value","step","name","disabled"]}render(){const t=this.createElement("div",["glass-range-group"]),e=this.createElement("div",["glass-range-header"]);this._labelEl=this.createElement("label",[]),this._labelEl.textContent=this.getAttribute("label")||"",this._valueEl=this.createElement("span",["glass-range-value"]),e.appendChild(this._labelEl),e.appendChild(this._valueEl),this._input=this.createElement("input",["glass-range"],{type:"range",min:this.getAttribute("min")||"0",max:this.getAttribute("max")||"100",value:this.getAttribute("value")||"50"});const s=this.getAttribute("step");s&&this._input.setAttribute("step",s);const r=this.getAttribute("name");r&&this._input.setAttribute("name",r),this.getBoolAttr("disabled")&&(this._input.disabled=!0),this._updateValueDisplay(),t.appendChild(e),t.appendChild(this._input),this._wrapper.appendChild(t),this._defaultValue=this._input.value,this._syncFormValue()}setupEvents(){this._onInput=()=>{this._updateValueDisplay(),this._syncFormValue(),this.emit("glk-input",{value:this._input.value}),this.dispatchEvent(new Event("input",{bubbles:!0}))},this._input.addEventListener("input",this._onInput)}teardownEvents(){this._input?.removeEventListener("input",this._onInput)}onAttributeChanged(t){if(this._input)switch(t){case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"min":this._input.min=this.getAttribute("min")||"0";break;case"max":this._input.max=this.getAttribute("max")||"100";break;case"value":this._input.value=this.getAttribute("value")||"50",this._updateValueDisplay(),this._syncFormValue();break;case"step":this._input.step=this.getAttribute("step")||"";break;case"name":this._input.setAttribute("name",this.getAttribute("name")||"");break;case"disabled":this._input.disabled=this.getBoolAttr("disabled")}}_updateValueDisplay(){this._valueEl.textContent=`${this._input.value}%`}_syncFormValue(){this.setFormValue(this._input.value)}resetValue(){this._input.value=this._defaultValue,this._updateValueDisplay(),this._syncFormValue()}get value(){return this._input?.value??""}set value(t){this._input&&(this._input.value=t),this._updateValueDisplay(),this._syncFormValue()}}customElements.define("glk-range",Y);const P=["success","error"],H=["sm","lg"];class K extends h{static get observedAttributes(){return["value","label","variant","size"]}render(){this._container=this.createElement("div",this._computeClasses());const t=this.createElement("div",["glass-progress__header"]);this._labelEl=this.createElement("span",["glass-progress__label"]),this._labelEl.textContent=this.getAttribute("label")||"",this._valueEl=this.createElement("span",["glass-progress__value"]),t.appendChild(this._labelEl),t.appendChild(this._valueEl);const e=this.createElement("div",["glass-progress__track"]);this._fill=this.createElement("div",["glass-progress__fill"]),e.appendChild(this._fill),this._container.appendChild(t),this._container.appendChild(e),this._updateValue(),this._wrapper.appendChild(this._container)}onAttributeChanged(t){if(this._container)switch(t){case"value":this._updateValue();break;case"label":this._labelEl.textContent=this.getAttribute("label")||"";break;case"variant":case"size":this._container.className=this._computeClasses().join(" ")}}_updateValue(){const t=Math.min(100,Math.max(0,parseInt(this.getAttribute("value")||"0",10)));this._fill.style.width=`${t}%`,this._valueEl.textContent=`${t}%`}_computeClasses(){const t=["glass-progress"],e=this.getAttribute("variant");e&&P.includes(e)&&t.push(`glass-progress--${e}`);const s=this.getAttribute("size");return s&&H.includes(s)&&t.push(`glass-progress--${s}`),t}get value(){return this.getAttribute("value")}set value(t){this.setAttribute("value",String(t))}}customElements.define("glk-progress",K);class R extends h{static get observedAttributes(){return["open","title"]}static get observesLightDom(){return!0}render(){this._overlay=this.createElement("div",["glass-modal-overlay"],{part:"overlay"});const t=this.createElement("div",["glass-modal"],{part:"modal"}),e=this.createElement("div",["glass-modal__header"],{part:"header"});this._titleEl=this.createElement("h2",["glass-modal__title"]),this._titleEl.textContent=this.getAttribute("title")||"",e.appendChild(this._titleEl);const s=this.createElement("div",["glass-modal__body"],{part:"body"});s.appendChild(document.createElement("slot")),this._footer=this.createElement("div",["glass-modal__footer"],{part:"footer"}),t.appendChild(e),t.appendChild(s),t.appendChild(this._footer),requestAnimationFrame(()=>this.projectLightDom()),this._overlay.appendChild(t),this._wrapper.appendChild(this._overlay),this.getBoolAttr("open")&&this._overlay.classList.add("is-active")}projectLightDom(){const t=[...this.querySelectorAll('[slot="actions"] button')],e=t.map(t=>t.outerHTML).join("");e!==this._footerSignature&&(this._footerSignature=e,this._footer.innerHTML="",t.forEach((t,e)=>{const s=t.cloneNode(!0);s.addEventListener("click",()=>{this.querySelectorAll('[slot="actions"] button')[e]?.click()}),this._footer.appendChild(s)}))}setupEvents(){this._onOverlayClick=t=>{t.target===this._overlay&&(this.removeAttribute("open"),this.emit("glk-close"))},this._overlay.addEventListener("click",this._onOverlayClick),this._onKeydown=t=>{"Escape"===t.key&&this.getBoolAttr("open")&&(this.removeAttribute("open"),this.emit("glk-close"))},document.addEventListener("keydown",this._onKeydown)}teardownEvents(){this._overlay?.removeEventListener("click",this._onOverlayClick),document.removeEventListener("keydown",this._onKeydown)}onAttributeChanged(t){if(this._overlay)switch(t){case"open":this._overlay.classList.toggle("is-active",this.getBoolAttr("open"));break;case"title":this._titleEl.textContent=this.getAttribute("title")||""}}show(){this.setAttribute("open","")}close(){this.removeAttribute("open")}get open(){return this.getBoolAttr("open")}set open(t){this.setBoolAttr("open",t)}}customElements.define("glk-modal",R);const X=["success","error","warning"],U={success:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><polyline points="22 4 12 14.01 9 11.01"/></svg>',error:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="12" cy="12" r="10"/><line x1="15" y1="9" x2="9" y2="15"/><line x1="9" y1="9" x2="15" y2="15"/></svg>',warning:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>'};class J extends h{static get observedAttributes(){return["message","variant","duration","visible"]}render(){this._toast=this.createElement("div",this._computeClasses()),this._iconEl=this.createElement("span",["glass-toast__icon"]),this._textEl=this.createElement("span",["glass-toast__text"]),this._textEl.textContent=this.getAttribute("message")||"",this._updateIcon(),this._toast.appendChild(this._iconEl),this._toast.appendChild(this._textEl),this._wrapper.appendChild(this._toast),this.getBoolAttr("visible")&&this._show()}onAttributeChanged(t){if(this._toast)switch(t){case"message":this._textEl.textContent=this.getAttribute("message")||"";break;case"variant":this._toast.className=this._computeClasses().join(" "),this._updateIcon();break;case"visible":this.getBoolAttr("visible")?this._show():this._hide()}}_computeClasses(){const t=["glass-toast"],e=this.getAttribute("variant");return e&&X.includes(e)&&t.push(`glass-toast--${e}`),t}_updateIcon(){const t=this.getAttribute("variant");this._iconEl.innerHTML=U[t]||U.success}_show(){this._toast.classList.add("is-visible");const t=parseInt(this.getAttribute("duration")||"3000",10);t>0&&(clearTimeout(this._timer),this._timer=setTimeout(()=>{this.removeAttribute("visible"),this.emit("glk-dismiss")},t))}_hide(){this._toast.classList.remove("is-visible"),clearTimeout(this._timer)}show(t,e,s){t&&this.setAttribute("message",t),e&&this.setAttribute("variant",e),s&&this.setAttribute("duration",String(s)),this.setAttribute("visible","")}dismiss(){this.removeAttribute("visible")}disconnectedCallback(){super.disconnectedCallback(),clearTimeout(this._timer)}}customElements.define("glk-toast",J);const Q=["top","bottom","start","end"];class W extends h{static get observedAttributes(){return["open","placement"]}render(){this._anchor=this.createElement("div",["glass-popover-anchor"]);const t=document.createElement("slot");t.setAttribute("name","trigger"),this._anchor.appendChild(t),this._popover=this.createElement("div",["glass-popover"]),this._applyPlacement(),this.getBoolAttr("open")&&this._popover.classList.add("is-open");const e=document.createElement("slot");this._popover.appendChild(e),this._anchor.appendChild(this._popover),this._wrapper.appendChild(this._anchor)}_applyPlacement(){if(!this._popover)return;Q.forEach(t=>this._popover.classList.remove(`glass-popover--${t}`));const t=this.getAttribute("placement")||"bottom";"bottom"!==t&&Q.includes(t)&&this._popover.classList.add(`glass-popover--${t}`)}setupEvents(){this._onTriggerClick=t=>{t.composedPath().some(t=>t instanceof Element&&t.getAttribute&&"trigger"===t.getAttribute("slot"))&&(t.stopPropagation(),this.toggle())},this.addEventListener("click",this._onTriggerClick),this._onDocClick=t=>{if(!this.getBoolAttr("open"))return;t.composedPath().includes(this)||this.close()},document.addEventListener("click",this._onDocClick),this._onKeydown=t=>{"Escape"===t.key&&this.getBoolAttr("open")&&this.close()},document.addEventListener("keydown",this._onKeydown)}teardownEvents(){this.removeEventListener("click",this._onTriggerClick),document.removeEventListener("click",this._onDocClick),document.removeEventListener("keydown",this._onKeydown)}onAttributeChanged(t){if(this._popover)switch(t){case"open":{const t=this.getBoolAttr("open");this._popover.classList.toggle("is-open",t),this.emit(t?"glk-open":"glk-close");break}case"placement":this._applyPlacement()}}show(){this.setAttribute("open","")}close(){this.removeAttribute("open")}toggle(){this.getBoolAttr("open")?this.close():this.show()}get open(){return this.getBoolAttr("open")}set open(t){this.setBoolAttr("open",t)}get placement(){return this.getAttribute("placement")||"bottom"}set placement(t){Q.includes(t)&&this.setAttribute("placement",t)}}customElements.define("glk-popover",W);class Z extends h{render(){const t=this.createElement("div",["glass-accordion"]);t.appendChild(document.createElement("slot")),this._wrapper.appendChild(t)}}customElements.define("glk-accordion",Z);class tt extends h{static get observedAttributes(){return["title","open"]}render(){this._item=this.createElement("div",["glass-accordion__item"]),this.getBoolAttr("open")&&this._item.classList.add("is-open"),this._trigger=this.createElement("button",["glass-accordion__trigger"]),this._triggerText=document.createTextNode(this.getAttribute("title")||""),this._trigger.appendChild(this._triggerText),this._trigger.insertAdjacentHTML("beforeend",'<span class="glass-accordion__trigger-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="6 9 12 15 18 9"/></svg></span>'),this._content=this.createElement("div",["glass-accordion__content"]);const t=this.createElement("div",["glass-accordion__body"]);t.appendChild(document.createElement("slot")),this._content.appendChild(t),this._item.appendChild(this._trigger),this._item.appendChild(this._content),this._wrapper.appendChild(this._item)}setupEvents(){this._onClick=()=>{this.setBoolAttr("open",!this.getBoolAttr("open")),this.emit("glk-toggle",{open:this.getBoolAttr("open")})},this._trigger.addEventListener("click",this._onClick)}teardownEvents(){this._trigger?.removeEventListener("click",this._onClick)}onAttributeChanged(t){if(this._item)switch(t){case"open":this._item.classList.toggle("is-open",this.getBoolAttr("open"));break;case"title":this._triggerText.textContent=this.getAttribute("title")||""}}get open(){return this.getBoolAttr("open")}set open(t){this.setBoolAttr("open",t)}}customElements.define("glk-accordion-item",tt);class et extends h{static get observedAttributes(){return["flush","bare","header"]}render(){this._header=this.createElement("div",["glass-list__section-header"],{part:"header"});const t=this.getAttribute("header")||"";this._header.textContent=t,this._header.hidden=!t,this._wrapper.appendChild(this._header),this._ul=this.createElement("ul",["glass-list"],{part:"list"}),this.getBoolAttr("flush")&&this._ul.classList.add("glass-list--flush"),this.getBoolAttr("bare")&&this._ul.classList.add("glass-list--bare"),this._ul.appendChild(document.createElement("slot")),this._wrapper.appendChild(this._ul)}setupEvents(){this._syncLast(),this._mutObserver=new MutationObserver(()=>this._syncLast()),this._mutObserver.observe(this,{childList:!0})}teardownEvents(){this._mutObserver?.disconnect()}_syncLast(){const t=this.querySelectorAll(":scope > glk-list-item"),e=t.length-1;t.forEach((t,s)=>{s===e?t.setAttribute("data-last",""):t.removeAttribute("data-last")})}onAttributeChanged(t){if(this._ul)switch(t){case"flush":this._ul.classList.toggle("glass-list--flush",this.getBoolAttr("flush"));break;case"bare":this._ul.classList.toggle("glass-list--bare",this.getBoolAttr("bare"));break;case"header":{const t=this.getAttribute("header")||"";this._header.textContent=t,this._header.hidden=!t;break}}}get flush(){return this.getBoolAttr("flush")}set flush(t){this.setBoolAttr("flush",t)}get bare(){return this.getBoolAttr("bare")}set bare(t){this.setBoolAttr("bare",t)}get header(){return this.getAttribute("header")||""}set header(t){t?this.setAttribute("header",t):this.removeAttribute("header")}}customElements.define("glk-list",et);const st=new CSSStyleSheet;st.replaceSync("\n :host([data-last]) .glass-list__item::after { content: none; }\n");const rt=["danger","accent"];class at extends h{static get observedAttributes(){return["title","subtitle","interactive","center","leading-lg","wrap","detail","variant","data-last"]}constructor(){super(),this._shadow.adoptedStyleSheets=[...this._shadow.adoptedStyleSheets,st]}render(){const t=this.createElement("div");t.style.display="contents",this._item=this.createElement("li",["glass-list__item"]),this.getBoolAttr("interactive")&&this._item.classList.add("glass-list__item--interactive"),this.getBoolAttr("center")&&this._item.classList.add("glass-list__item--center");const e=this.getAttribute("variant");e&&rt.includes(e)&&this._item.classList.add(`glass-list__item--${e}`),this._leading=this.createElement("span",["glass-list__leading"]),this.getBoolAttr("leading-lg")&&this._leading.classList.add("glass-list__leading--lg"),this._leadingSlot=document.createElement("slot"),this._leadingSlot.setAttribute("name","leading"),this._leading.appendChild(this._leadingSlot),this._leading.hidden=!0,this._content=this.createElement("div",["glass-list__content"]),this._titleEl=this.createElement("div",["glass-list__title"]),this._titleEl.textContent=this.getAttribute("title")||"",this._subtitleEl=this.createElement("div",["glass-list__subtitle"]),this.getBoolAttr("wrap")&&this._subtitleEl.classList.add("glass-list__subtitle--wrap");const s=this.getAttribute("subtitle")||"";this._subtitleEl.textContent=s,this._subtitleEl.hidden=!s,this._content.appendChild(this._titleEl),this._content.appendChild(this._subtitleEl),this._trailing=this.createElement("div",["glass-list__trailing"]),this._valueEl=this.createElement("span",["glass-list__value"]);const r=this.getAttribute("detail")||"";this._valueEl.textContent=r,this._valueEl.hidden=!r,this._trailing.appendChild(this._valueEl),this._trailingSlot=document.createElement("slot"),this._trailingSlot.setAttribute("name","trailing"),this._trailing.appendChild(this._trailingSlot),this._trailing.hidden=!r,this._item.appendChild(this._leading),this._item.appendChild(this._content),this._item.appendChild(this._trailing);const a=this.createElement("span");a.hidden=!0,a.setAttribute("aria-hidden","true"),t.appendChild(this._item),t.appendChild(a),this._wrapper.appendChild(t)}setupEvents(){this._onLeadingSlotChange=()=>{this._leading.hidden=0===this._leadingSlot.assignedNodes().length},this._onTrailingSlotChange=()=>{const t=this._trailingSlot.assignedNodes().length>0,e=!this._valueEl.hidden;this._trailing.hidden=!t&&!e},this._leadingSlot.addEventListener("slotchange",this._onLeadingSlotChange),this._trailingSlot.addEventListener("slotchange",this._onTrailingSlotChange),this._onLeadingSlotChange(),this._onTrailingSlotChange(),this._onClick=()=>{this.getBoolAttr("interactive")&&this.emit("glk-click")},this._item.addEventListener("click",this._onClick)}teardownEvents(){this._leadingSlot?.removeEventListener("slotchange",this._onLeadingSlotChange),this._trailingSlot?.removeEventListener("slotchange",this._onTrailingSlotChange),this._item?.removeEventListener("click",this._onClick)}onAttributeChanged(t){if(this._item)switch(t){case"title":this._titleEl.textContent=this.getAttribute("title")||"";break;case"subtitle":{const t=this.getAttribute("subtitle")||"";this._subtitleEl.textContent=t,this._subtitleEl.hidden=!t;break}case"interactive":this._item.classList.toggle("glass-list__item--interactive",this.getBoolAttr("interactive"));break;case"center":this._item.classList.toggle("glass-list__item--center",this.getBoolAttr("center"));break;case"leading-lg":this._leading.classList.toggle("glass-list__leading--lg",this.getBoolAttr("leading-lg"));break;case"wrap":this._subtitleEl.classList.toggle("glass-list__subtitle--wrap",this.getBoolAttr("wrap"));break;case"detail":{const t=this.getAttribute("detail")||"";this._valueEl.textContent=t,this._valueEl.hidden=!t,this._onTrailingSlotChange&&this._onTrailingSlotChange();break}case"variant":{rt.forEach(t=>this._item.classList.remove(`glass-list__item--${t}`));const t=this.getAttribute("variant");t&&rt.includes(t)&&this._item.classList.add(`glass-list__item--${t}`);break}}}get interactive(){return this.getBoolAttr("interactive")}set interactive(t){this.setBoolAttr("interactive",t)}get center(){return this.getBoolAttr("center")}set center(t){this.setBoolAttr("center",t)}get leadingLg(){return this.getBoolAttr("leading-lg")}set leadingLg(t){this.setBoolAttr("leading-lg",t)}get wrap(){return this.getBoolAttr("wrap")}set wrap(t){this.setBoolAttr("wrap",t)}get detail(){return this.getAttribute("detail")||""}set detail(t){t?this.setAttribute("detail",t):this.removeAttribute("detail")}get variant(){return this.getAttribute("variant")||""}set variant(t){t&&rt.includes(t)?this.setAttribute("variant",t):this.removeAttribute("variant")}}return customElements.define("glk-list-item",at),t.GlkAccordion=Z,t.GlkAccordionItem=tt,t.GlkAvatar=C,t.GlkBadge=A,t.GlkButton=F,t.GlkCard=w,t.GlkCheckbox=q,t.GlkDivider=z,t.GlkInput=j,t.GlkList=et,t.GlkListItem=at,t.GlkModal=R,t.GlkNav=b,t.GlkPill=u,t.GlkPopover=W,t.GlkProgress=K,t.GlkRadio=O,t.GlkRange=Y,t.GlkSearch=I,t.GlkSelect=D,t.GlkStatus=L,t.GlkTabAccessory=x,t.GlkTabBar=v,t.GlkTabDock=_,t.GlkTabItem=m,t.GlkTextarea=T,t.GlkTitle=B,t.GlkToast=J,t.GlkToggle=G,t}({});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jungherz-de/glasskit-elements",
3
- "version": "1.11.0",
3
+ "version": "1.12.0",
4
4
  "description": "Vanilla JavaScript Web Components wrapping the GlassKit CSS glassmorphism library",
5
5
  "license": "MIT",
6
6
  "homepage": "https://glasskit-elements.jungherz.com",
package/src/base.js CHANGED
@@ -84,6 +84,14 @@ export class GlkElement extends HTMLElement {
84
84
  */
85
85
  static get hostStyles() { return null; }
86
86
 
87
+ /**
88
+ * Opt in when the component copies light-DOM children into its shadow tree.
89
+ * A MutationObserver then calls projectLightDom() again whenever those
90
+ * children change, so a framework that swaps them keeps the rendered element
91
+ * in step. Without it the copy is made once and silently goes stale.
92
+ */
93
+ static get observesLightDom() { return false; }
94
+
87
95
  static get observedAttributes() {
88
96
  return [];
89
97
  }
@@ -110,15 +118,26 @@ export class GlkElement extends HTMLElement {
110
118
  this._shadow.appendChild(this._wrapper);
111
119
 
112
120
  this.render();
113
- this.setupEvents();
121
+ }
114
122
 
115
- // Register for theme sync
116
- instances.add(this);
123
+ // Everything below runs on every connect, not just the first. Moving an
124
+ // element in the DOM disconnects and reconnects it, and disconnectedCallback
125
+ // tears all of this down — without re-arming it here a moved element would
126
+ // keep its markup but silently stop reacting.
127
+ this.setupEvents();
128
+ instances.add(this);
129
+
130
+ if (this.constructor.observesLightDom) {
131
+ this._lightDomObserver ??= new MutationObserver(records => this.projectLightDom(records));
132
+ this._lightDomObserver.observe(this, {
133
+ childList: true, subtree: true, characterData: true
134
+ });
117
135
  }
118
136
  }
119
137
 
120
138
  disconnectedCallback() {
121
139
  instances.delete(this);
140
+ this._lightDomObserver?.disconnect();
122
141
  this.teardownEvents();
123
142
  }
124
143
 
@@ -146,6 +165,20 @@ export class GlkElement extends HTMLElement {
146
165
  /** Subclasses override to react to attribute changes. */
147
166
  onAttributeChanged(name, oldValue, newValue) {}
148
167
 
168
+ /**
169
+ * Subclasses that set observesLightDom override this to (re-)copy their
170
+ * light-DOM children into the shadow tree. Runs on every change to those
171
+ * children, so it has to be safe to call repeatedly.
172
+ */
173
+ projectLightDom() {}
174
+
175
+ /**
176
+ * Escape hatch: re-copy the light-DOM children now. The observer covers the
177
+ * ordinary cases; this is for the ones it cannot see, so nobody has to reach
178
+ * into element.shadowRoot.
179
+ */
180
+ refresh() { this.projectLightDom(); }
181
+
149
182
  // ── Utility Methods ──
150
183
 
151
184
  getBoolAttr(name) {