@import url("https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500;700&display=swap");:root{--color-brand:#E01A4F;--color-brand-light:#FCD0DC;--color-success:#2E9E5B;--color-warning:#E0A82E;--color-danger:#DC2626;--color-info:#2D7FF9;--color-primary:var(--color-brand);--color-primary-hover:color-mix(in srgb,var(--color-primary),#fff 15%);--color-primary-active:color-mix(in srgb,var(--color-primary),#000 12%);--color-primary-bg:var(--color-brand-light);--color-primary-border:color-mix(in srgb,var(--color-primary),#fff 55%);--color-primary-fg:#FFFFFF;--font-sans:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"Geist Mono",ui-monospace,"SFMono-Regular",monospace;--font-size-sm:0.75rem;--font-size-base:0.875rem;--font-size-lg:1rem;--font-size-xl:1.25rem;--font-size-h3:1.5rem;--font-size-h2:1.875rem;--font-size-h1:2.375rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--line-base:1.5714;--line-lg:1.5;--line-sm:1.66;--line-heading:1.3;--space-xxs:4px;--space-xs:8px;--space-sm:12px;--space:16px;--space-md:20px;--space-lg:24px;--space-xl:32px;--space-xxl:48px;--control-height-sm:24px;--control-height:32px;--control-height-lg:40px;--radius-sm:4px;--radius:6px;--radius-lg:8px;--radius-full:9999px;--duration-fast:0.1s;--duration-mid:0.2s;--duration-slow:0.3s;--ease-in-out:cubic-bezier(.645,.045,.355,1);--ease-out:cubic-bezier(.215,.61,.355,1);--z-affix:10;--z-modal:1000;--z-drawer:1000;--z-message:1010;--z-notification:1010;--z-popover:1030;--z-dropdown:1050;--z-tooltip:1070;--focus-ring:0 0 0 2px color-mix(in srgb,var(--color-primary),transparent 90%);--focus-ring-error:0 0 0 2px color-mix(in srgb,var(--color-danger),transparent 90%)}:root,[data-theme=light]{color-scheme:light;--color-bg:#F7F7F8;--color-surface:#FFFFFF;--color-surface-elevated:#FFFFFF;--color-border:#E2E2E5;--color-border-secondary:#EFEFF1;--color-text:#1A1A1E;--color-text-secondary:#4A4A52;--color-text-muted:#6B6B73;--color-text-disabled:#B4B4BB;--color-bg-spotlight:rgba(0,0,0,.85);--color-fill-quaternary:rgba(0,0,0,.02);--color-fill-tertiary:rgba(0,0,0,.04);--color-fill-secondary:rgba(0,0,0,.06);--color-fill:rgba(0,0,0,.15);--color-bg-disabled:rgba(0,0,0,.04);--shadow-card:0 1px 2px 0 rgba(0,0,0,.03),0 1px 6px -1px rgba(0,0,0,.02),0 2px 4px 0 rgba(0,0,0,.02);--shadow-popup:0 6px 16px 0 rgba(0,0,0,.08),0 3px 6px -4px rgba(0,0,0,.12),0 9px 28px 8px rgba(0,0,0,.05);--shadow-control:0 2px 0 rgba(0,0,0,.02)}[data-theme=dark]{color-scheme:dark;--color-bg:#0E0E11;--color-surface:#1A1A1F;--color-surface-elevated:#232329;--color-border:#2C2C33;--color-border-secondary:#232329;--color-text:#F2F2F4;--color-text-secondary:#C2C2CA;--color-text-muted:#9A9AA3;--color-text-disabled:#5A5A63;--color-bg-spotlight:rgba(255,255,255,.92);--color-fill-quaternary:rgba(255,255,255,.04);--color-fill-tertiary:rgba(255,255,255,.08);--color-fill-secondary:rgba(255,255,255,.12);--color-fill:rgba(255,255,255,.18);--color-bg-disabled:rgba(255,255,255,.08);--color-primary-bg:color-mix(in srgb,var(--color-brand) 30%,var(--color-surface));--shadow-card:0 1px 2px 0 rgba(0,0,0,.16),0 1px 6px -1px rgba(0,0,0,.12),0 2px 4px 0 rgba(0,0,0,.10);--shadow-popup:0 6px 16px 0 rgba(0,0,0,.32),0 3px 6px -4px rgba(0,0,0,.40),0 9px 28px 8px rgba(0,0,0,.20);--shadow-control:0 2px 0 rgba(0,0,0,.12)}.badge,.button,.button-group,.button-group *,.card,.card *,.colorpicker__panel,.colorpicker__panel *,.command-root,.command-root *,.datepicker__panel,.datepicker__panel *,.menu,.menu *,.popover__panel,.popover__panel *,.select__dropdown,.select__dropdown *,.text-field,.text-field *,.timepicker__panel,.timepicker__panel *,.tooltip__bubble{box-sizing:border-box}.select__list,.textarea,.timepicker__col{scrollbar-width:thin;scrollbar-color:var(--color-fill) transparent}.select__list::-webkit-scrollbar,.textarea::-webkit-scrollbar,.timepicker__col::-webkit-scrollbar{width:8px;height:8px}.select__list::-webkit-scrollbar-track,.textarea::-webkit-scrollbar-track,.timepicker__col::-webkit-scrollbar-track{background:transparent}.select__list::-webkit-scrollbar-thumb,.textarea::-webkit-scrollbar-thumb,.timepicker__col::-webkit-scrollbar-thumb{background:var(--color-fill);border:2px solid transparent;border-radius:var(--radius-full);background-clip:padding-box}.select__list::-webkit-scrollbar-thumb:hover,.textarea::-webkit-scrollbar-thumb:hover,.timepicker__col::-webkit-scrollbar-thumb:hover{background:var(--color-fill-secondary);background-clip:padding-box}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);height:var(--control-height);padding:0 var(--space);font-family:var(--font-sans);font-weight:var(--font-weight-regular);font-size:var(--font-size-base);line-height:1;white-space:nowrap;color:var(--color-text);background:transparent;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color var(--duration-fast) var(--ease-in-out),border-color var(--duration-fast) var(--ease-in-out),color var(--duration-fast) var(--ease-in-out),box-shadow var(--duration-fast) var(--ease-in-out)}.button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.button--sm{height:var(--control-height-sm);padding:0 var(--space-xs)}.button--md{height:var(--control-height);padding:0 var(--space)}.button--lg{height:var(--control-height-lg);padding:0 var(--space);font-size:var(--font-size-lg)}.button--block{width:100%}.button--icon{width:var(--control-height);padding:0;font-size:16px}.button--icon.button--sm{width:var(--control-height-sm);font-size:14px}.button--icon.button--lg{width:var(--control-height-lg);font-size:18px}.button svg{width:1em;height:1em;flex:0 0 auto}.button--primary{color:var(--color-primary-fg);background:var(--color-primary);box-shadow:var(--shadow-control)}.button--primary:hover{background:var(--color-primary-hover)}.button--primary:active{background:var(--color-primary-active)}.button--default{color:var(--color-text);background:var(--color-surface);border-color:var(--color-border);box-shadow:var(--shadow-control)}.button--default:hover{color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.button--default:active{color:var(--color-primary-active);border-color:var(--color-primary-active)}.button--dashed{color:var(--color-text);background:var(--color-surface);border:1px dashed var(--color-border);box-shadow:var(--shadow-control)}.button--dashed:hover{color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.button--dashed:active{color:var(--color-primary-active);border-color:var(--color-primary-active)}.button--text{color:var(--color-text);background:transparent}.button--text:hover{background:var(--color-fill-tertiary)}.button--text:active{background:var(--color-fill-secondary)}.button--link{color:var(--color-primary);background:transparent}.button--link:hover{color:var(--color-primary-hover)}.button--link:active{color:var(--color-primary-active)}.button--danger.button--primary{background:var(--color-danger)}.button--danger.button--primary:hover{background:color-mix(in srgb,var(--color-danger),#fff 15%)}.button--danger.button--primary:active{background:color-mix(in srgb,var(--color-danger),#000 12%)}.button--danger.button--dashed,.button--danger.button--default{color:var(--color-danger);border-color:var(--color-danger)}.button--danger.button--dashed:hover,.button--danger.button--default:hover{color:color-mix(in srgb,var(--color-danger),#fff 15%);border-color:color-mix(in srgb,var(--color-danger),#fff 15%)}.button--danger.button--text{color:var(--color-danger)}.button--danger.button--text:hover{background:color-mix(in srgb,var(--color-danger),transparent 88%)}.button--danger.button--link{color:var(--color-danger)}.button--danger.button--link:hover{color:color-mix(in srgb,var(--color-danger),#fff 15%)}.button.is-loading,.button:disabled{cursor:not-allowed}.button.is-loading{pointer-events:none}.button--dashed:disabled,.button--default:disabled,.button--primary:disabled{color:var(--color-text-disabled);background:var(--color-bg-disabled);border-color:var(--color-border);box-shadow:none}.button--link:disabled,.button--text:disabled{color:var(--color-text-disabled);background:transparent}.button__spinner{width:1em;height:1em;border:2px solid;border-top:2px solid transparent;border-radius:var(--radius-full);animation:gg-spin .6s linear infinite}@keyframes gg-spin{to{transform:rotate(1turn)}}.button-group{display:inline-flex;vertical-align:middle}.button-group .button{position:relative;border-radius:0}.button-group .button:focus-visible,.button-group .button:hover{z-index:1}.button-group:not(.button-group--vertical) .button:not(:first-child){margin-left:-1px}.button-group:not(.button-group--vertical) .button:first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.button-group:not(.button-group--vertical) .button:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.button-group--vertical{flex-direction:column}.button-group--vertical .button:not(.button--icon){width:100%}.button-group--vertical .button:not(:first-child){margin-top:-1px}.button-group--vertical .button:first-child{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.button-group--vertical .button:last-child{border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius)}.text-input{display:block;width:100%;height:var(--control-height);padding:0 11px;font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);outline:none;transition:border-color var(--duration-fast) var(--ease-in-out),box-shadow var(--duration-fast) var(--ease-in-out)}.text-input::placeholder{color:var(--color-text-muted)}.text-input:hover{border-color:var(--color-primary-hover)}.text-input:focus-visible{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.text-input:disabled{background:var(--color-bg-disabled);color:var(--color-text-disabled);cursor:not-allowed}.text-input--sm{height:var(--control-height-sm)}.text-input--lg{height:var(--control-height-lg);font-size:var(--font-size-lg)}.text-input--error,.text-input--error:hover{border-color:var(--color-danger)}.text-input--error:focus-visible{border-color:var(--color-danger);box-shadow:var(--focus-ring-error)}.text-input--warning,.text-input--warning:hover{border-color:var(--color-warning)}.text-input--warning:focus-visible{border-color:var(--color-warning);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-warning),transparent 90%)}.text-field{display:flex;flex-direction:column;gap:6px;font-family:var(--font-sans)}.text-field__label{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--line-base);color:var(--color-text)}.text-field__required{margin-left:2px;color:var(--color-danger)}.text-field__message{font-size:var(--font-size-sm);line-height:var(--line-base);color:var(--color-text-muted)}.text-field__message--error{color:var(--color-danger)}.text-input-affix{display:inline-flex;align-items:center;gap:var(--space-xs);width:100%;height:var(--control-height);padding:0 11px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-in-out),box-shadow var(--duration-fast) var(--ease-in-out)}.text-input-affix:hover{border-color:var(--color-primary-hover)}.text-input-affix:focus-within{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.text-input-affix--sm{height:var(--control-height-sm)}.text-input-affix--lg{height:var(--control-height-lg);font-size:var(--font-size-lg)}.text-input-affix--error,.text-input-affix--error:hover{border-color:var(--color-danger)}.text-input-affix--error:focus-within{border-color:var(--color-danger);box-shadow:var(--focus-ring-error)}.text-input-affix--warning,.text-input-affix--warning:hover{border-color:var(--color-warning)}.text-input-affix--warning:focus-within{border-color:var(--color-warning);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-warning),transparent 90%)}.text-input-affix--disabled,.text-input-affix--disabled:hover{background:var(--color-bg-disabled);color:var(--color-text-disabled);border-color:var(--color-border);cursor:not-allowed}.text-input-affix__prefix,.text-input-affix__suffix{display:inline-flex;align-items:center;color:var(--color-text-muted)}.text-input__control{flex:1 1 auto;min-width:0;height:100%;padding:0;font-family:inherit;font-size:var(--font-size-base);line-height:var(--line-base);color:inherit;background:transparent;border:none;outline:none}.text-input-affix--lg .text-input__control{font-size:var(--font-size-lg)}.text-input__control::placeholder{color:var(--color-text-muted)}.text-input__control:disabled{cursor:not-allowed}.textarea{display:block;width:100%;padding:8px 11px;font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);outline:none;resize:vertical;transition:border-color var(--duration-fast) var(--ease-in-out),box-shadow var(--duration-fast) var(--ease-in-out)}.textarea::placeholder{color:var(--color-text-muted)}.textarea:hover{border-color:var(--color-primary-hover)}.textarea:focus-visible{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.textarea:disabled{background:var(--color-bg-disabled);color:var(--color-text-disabled);cursor:not-allowed;resize:none}.textarea--sm{padding:6px 11px}.textarea--lg{padding:10px 11px;font-size:var(--font-size-lg)}.textarea--auto{resize:none;overflow:hidden}.textarea--error,.textarea--error:hover{border-color:var(--color-danger)}.textarea--error:focus-visible{border-color:var(--color-danger);box-shadow:var(--focus-ring-error)}.textarea--warning,.textarea--warning:hover{border-color:var(--color-warning)}.textarea--warning:focus-visible{border-color:var(--color-warning);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-warning),transparent 90%)}.textarea__footer{display:flex;justify-content:space-between;gap:var(--space-xs)}.textarea__count{margin-left:auto;font-size:var(--font-size-sm);line-height:var(--line-base);color:var(--color-text-muted);white-space:nowrap}.textarea-wrap{display:flex;flex-direction:column}.textarea-wrap .textarea__count{align-self:flex-end;margin-top:4px}.input-action{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;padding:0;font-size:16px;color:var(--color-text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out)}.input-action:hover{color:var(--color-text)}.input-action:focus-visible{outline:none;box-shadow:var(--focus-ring)}.input-action:disabled{color:var(--color-text-disabled);cursor:not-allowed}.input-action svg{width:1em;height:1em}.number-stepper{display:inline-flex;flex-direction:column}.number-stepper__btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:11px;padding:0;color:var(--color-text-muted);background:transparent;border:none;cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out)}.number-stepper__btn:hover{color:var(--color-primary)}.number-stepper__btn:disabled{color:var(--color-text-disabled);cursor:not-allowed}.number-stepper__btn svg{width:12px;height:12px}.search-input{display:inline-flex;width:100%}.search-input__field{flex:1 1 auto;min-width:0}.search-input--with-button .search-input__field{border-top-right-radius:0;border-bottom-right-radius:0}.search-input--with-button .search-input__btn{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.search-input--with-button .search-input__btn:focus-visible,.search-input--with-button .search-input__btn:hover,.search-input--with-button .search-input__field:focus-within,.search-input--with-button .search-input__field:hover{z-index:1}.select{position:relative;width:100%}.select__control{display:inline-flex;align-items:center;gap:var(--space-xs);width:100%;height:var(--control-height);padding:0 11px;font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-in-out),box-shadow var(--duration-fast) var(--ease-in-out)}.select__control:hover{border-color:var(--color-primary-hover)}.select__control:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.select--open .select__control{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.select--sm .select__control{height:var(--control-height-sm)}.select--lg .select__control{height:var(--control-height-lg);font-size:var(--font-size-lg)}.select--disabled .select__control{background:var(--color-bg-disabled);color:var(--color-text-disabled);cursor:not-allowed}.select--error .select__control,.select--error .select__control:hover{border-color:var(--color-danger)}.select--error .select__control:focus-visible,.select--error.select--open .select__control{border-color:var(--color-danger);box-shadow:var(--focus-ring-error)}.select--warning .select__control,.select--warning .select__control:hover{border-color:var(--color-warning)}.select--warning .select__control:focus-visible,.select--warning.select--open .select__control{border-color:var(--color-warning);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-warning),transparent 90%)}.select__value{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select__clear,.select__placeholder{color:var(--color-text-muted)}.select__clear{display:inline-flex;align-items:center;justify-content:center;width:1.1rem;height:1.1rem;padding:0;background:transparent;border:none;border-radius:var(--radius-full);cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out)}.select__clear:hover{color:var(--color-text)}.select__clear svg{width:14px;height:14px}.select__arrow{display:inline-flex;color:var(--color-text-muted);transition:transform var(--duration-mid) var(--ease-in-out)}.select--open .select__arrow{transform:rotate(180deg)}.select__arrow svg{width:16px;height:16px}.select__dropdown{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:var(--z-dropdown);padding:var(--space-xxs);background:var(--color-surface-elevated);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-popup);transform-origin:top;animation:gg-select-in var(--duration-mid) var(--ease-out)}@keyframes gg-select-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.select__search{display:block;width:100%;height:var(--control-height-sm);margin-bottom:var(--space-xxs);padding:0 12px;font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none}.select__search:focus-visible{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.select__list{margin:0;padding:0;list-style:none;max-height:256px;overflow-y:auto}.select__option{display:flex;align-items:center;gap:var(--space-xs);padding:5px 12px;font-size:var(--font-size-base);color:var(--color-text);border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.select__option--selected{background:var(--color-primary-bg);font-weight:var(--font-weight-semibold)}.select__option--active{background:var(--color-fill-tertiary)}.select__option--selected.select__option--active{background:color-mix(in srgb,var(--color-primary-bg),var(--color-primary) 12%)}.select__option--disabled{color:var(--color-text-disabled);cursor:not-allowed}.select__option-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select__option-check{display:inline-flex;color:var(--color-primary)}.select__option-check svg{width:16px;height:16px}.select__empty{padding:8px 12px;font-size:var(--font-size-base);color:var(--color-text-muted);text-align:center}.select--multi .select__control{height:auto;min-height:var(--control-height);padding:3px 11px;flex-wrap:wrap}.select--multi.select--sm .select__control{min-height:var(--control-height-sm);padding:1px 11px}.select--multi.select--lg .select__control{min-height:var(--control-height-lg);padding:5px 11px}.select__tags{display:flex;flex-wrap:wrap;gap:4px;flex:1 1 auto;min-width:0}.select__tag{display:inline-flex;align-items:center;gap:4px;max-width:100%;height:22px;padding:0 2px 0 8px;font-size:var(--font-size-sm);color:var(--color-text);background:var(--color-fill-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.select__tag-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select__tag-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;color:var(--color-text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out)}.select__tag-remove:hover{color:var(--color-text)}.select__tag-remove svg{width:11px;height:11px}.select__tag--more{padding:0 6px;background:transparent;border-style:dashed;color:var(--color-text-muted)}.combobox .select__control{cursor:text}.combobox .select__control:focus-within{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.combobox.select--error .select__control:focus-within{border-color:var(--color-danger);box-shadow:var(--focus-ring-error)}.combobox.select--warning .select__control:focus-within{border-color:var(--color-warning);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-warning),transparent 90%)}.combobox__input{flex:1 1 auto;min-width:0;height:100%;padding:0;font-family:var(--font-sans);font-size:inherit;color:var(--color-text);background:transparent;border:none;outline:none}.combobox__input::placeholder{color:var(--color-text-muted)}.combobox__input:disabled{color:var(--color-text-disabled);cursor:not-allowed}.select__tag-input{flex:1 1 60px;min-width:60px;height:22px}.checkbox{display:inline-flex;align-items:center;gap:var(--space-xs);font-family:var(--font-sans);cursor:pointer}.checkbox--disabled{cursor:not-allowed}.checkbox__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.checkbox__box{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:16px;height:16px;color:var(--color-primary-fg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:background-color var(--duration-fast) var(--ease-in-out),border-color var(--duration-fast) var(--ease-in-out),box-shadow var(--duration-fast) var(--ease-in-out)}.checkbox__box svg{width:12px;height:12px;opacity:0;transition:opacity var(--duration-fast) var(--ease-in-out)}.checkbox:hover .checkbox__input:not(:disabled):not(:checked)+.checkbox__box{border-color:var(--color-primary)}.checkbox__input:checked+.checkbox__box{background:var(--color-primary);border-color:var(--color-primary)}.checkbox__input:checked+.checkbox__box svg{opacity:1}.checkbox__input:indeterminate+.checkbox__box{background:var(--color-primary);border-color:var(--color-primary)}.checkbox__input:indeterminate+.checkbox__box svg{opacity:0}.checkbox__input:indeterminate+.checkbox__box:after{content:"";width:8px;height:2px;border-radius:1px;background:var(--color-primary-fg)}.checkbox__input:focus-visible+.checkbox__box{outline:none;box-shadow:var(--focus-ring)}.checkbox__input:disabled+.checkbox__box{background:var(--color-bg-disabled);border-color:var(--color-border)}.checkbox__input:disabled:checked+.checkbox__box,.checkbox__input:disabled:indeterminate+.checkbox__box{background:color-mix(in srgb,var(--color-primary) 45%,#888);border-color:transparent}.checkbox__label{font-size:var(--font-size-base);line-height:1.4;color:var(--color-text)}.checkbox--disabled .checkbox__label{color:var(--color-text-disabled)}.checkbox-group{display:flex;flex-direction:column;gap:var(--space-xs)}.checkbox-group--horizontal{flex-direction:row;flex-wrap:wrap;gap:var(--space)}.radio{display:inline-flex;align-items:center;gap:var(--space-xs);font-family:var(--font-sans);cursor:pointer}.radio--disabled{cursor:not-allowed}.radio__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.radio__circle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:16px;height:16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);transition:border-color var(--duration-fast) var(--ease-in-out),box-shadow var(--duration-fast) var(--ease-in-out)}.radio__circle:after{content:"";width:8px;height:8px;border-radius:var(--radius-full);background:var(--color-primary);transform:scale(0);transition:transform var(--duration-fast) var(--ease-in-out)}.radio:hover .radio__input:not(:disabled):not(:checked)+.radio__circle,.radio__input:checked+.radio__circle{border-color:var(--color-primary)}.radio__input:checked+.radio__circle:after{transform:scale(1)}.radio__input:focus-visible+.radio__circle{outline:none;box-shadow:var(--focus-ring)}.radio__input:disabled+.radio__circle{background:var(--color-bg-disabled);border-color:var(--color-border)}.radio__input:disabled:checked+.radio__circle:after{background:color-mix(in srgb,var(--color-primary) 45%,#888)}.radio__label{font-size:var(--font-size-base);line-height:1.4;color:var(--color-text)}.radio--disabled .radio__label{color:var(--color-text-disabled)}.radio-group{display:flex;flex-direction:column;gap:var(--space-xs)}.radio-group--horizontal{flex-direction:row;flex-wrap:wrap;gap:var(--space)}.radio-group--buttons{display:inline-flex;flex-direction:row;flex-wrap:wrap;gap:0}.radio-button{position:relative;display:inline-flex;align-items:center;justify-content:center;height:var(--control-height);padding:0 var(--space);font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out),border-color var(--duration-fast) var(--ease-in-out),background-color var(--duration-fast) var(--ease-in-out)}.radio-button:not(:first-of-type){margin-left:-1px}.radio-button:first-of-type{border-radius:var(--radius) 0 0 var(--radius)}.radio-button:last-of-type{border-radius:0 var(--radius) var(--radius) 0}.radio-button .radio__input{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}.radio-button:hover{color:var(--color-primary-hover);z-index:1}.radio-button--checked{z-index:2;color:var(--color-primary);border-color:var(--color-primary)}.radio-button:focus-within{z-index:3;box-shadow:var(--focus-ring)}.radio-button--disabled{color:var(--color-text-disabled);background:var(--color-bg-disabled);cursor:not-allowed}.switch{display:inline-flex;align-items:center;gap:var(--space-xs);font-family:var(--font-sans);cursor:pointer}.switch--disabled{cursor:not-allowed}.switch--loading{cursor:default}.switch__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.switch__track{position:relative;display:inline-block;flex:0 0 auto;width:44px;height:22px;background:var(--color-fill);transition:background-color var(--duration-fast) var(--ease-in-out),box-shadow var(--duration-fast) var(--ease-in-out)}.switch__thumb,.switch__track{border-radius:var(--radius-full)}.switch__thumb{position:absolute;top:2px;left:2px;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:#fff;box-shadow:var(--shadow-control);transition:transform var(--duration-mid) var(--ease-in-out)}.switch__input:checked+.switch__track{background:var(--color-primary)}.switch__input:checked+.switch__track .switch__thumb{transform:translateX(22px)}.switch:hover .switch__input:not(:disabled):checked+.switch__track{background:var(--color-primary-hover)}.switch__input:focus-visible+.switch__track{outline:none;box-shadow:var(--focus-ring)}.switch:not(.switch--loading) .switch__input:disabled+.switch__track{opacity:.5;cursor:not-allowed}.switch--sm .switch__track{width:28px;height:16px}.switch--sm .switch__thumb{width:12px;height:12px}.switch--sm .switch__input:checked+.switch__track .switch__thumb{transform:translateX(12px)}.switch__spinner{width:10px;height:10px;border:2px solid var(--color-primary);border-top:2px solid transparent;border-radius:var(--radius-full);animation:gg-spin .6s linear infinite}.switch--sm .switch__spinner{width:7px;height:7px;border-width:1.5px}.switch__label{font-size:var(--font-size-base);line-height:1.4;color:var(--color-text)}.switch--disabled .switch__label{color:var(--color-text-disabled)}.slider{position:relative;padding:8px 7px}.slider__rail{position:relative;height:4px;background:var(--color-fill);border-radius:var(--radius-full);cursor:pointer;touch-action:none}.slider__fill{position:absolute;top:0;left:0;height:100%;background:var(--color-primary);border-radius:inherit}.slider__handle{position:absolute;top:50%;width:14px;height:14px;transform:translate(-50%,-50%);background:var(--color-surface);border:2px solid var(--color-primary);border-radius:var(--radius-full);box-shadow:var(--shadow-control);cursor:-webkit-grab;cursor:grab;touch-action:none;transition:box-shadow var(--duration-fast) var(--ease-in-out)}.slider__handle:focus-visible{outline:none;box-shadow:var(--focus-ring)}.slider__handle:hover{box-shadow:0 0 0 6px color-mix(in srgb,var(--color-primary),transparent 88%)}.slider--dragging .slider__handle,.slider__handle:active{cursor:-webkit-grabbing;cursor:grabbing;box-shadow:var(--focus-ring)}.slider__tooltip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(4px);padding:3px 9px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1.4;white-space:nowrap;color:var(--color-surface);background:var(--color-text);border-radius:var(--radius-sm);box-shadow:var(--shadow-popup);opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-in-out),transform var(--duration-fast) var(--ease-out)}.slider__tooltip:after{content:"";position:absolute;top:100%;left:50%;width:8px;height:8px;transform:translate(-50%,-55%) rotate(45deg);background:inherit;border-radius:0 0 2px 0}.slider--dragging .slider__tooltip,.slider__handle:focus-visible .slider__tooltip,.slider__handle:hover .slider__tooltip{opacity:1;transform:translateX(-50%) translateY(0)}.slider__dot{position:absolute;top:50%;width:8px;height:8px;transform:translate(-50%,-50%);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-full)}.slider__dot--active{border-color:var(--color-primary)}.slider__marks{position:relative;height:1.2em;margin-top:10px}.slider__mark{position:absolute;transform:translateX(-50%);font-size:var(--font-size-sm);color:var(--color-text-muted);white-space:nowrap}.slider--disabled .slider__rail{cursor:not-allowed}.slider--disabled .slider__fill{background:var(--color-text-disabled)}.slider--disabled .slider__handle{cursor:not-allowed}.slider--disabled .slider__dot--active,.slider--disabled .slider__handle{border-color:var(--color-text-disabled)}.datepicker .select__control{cursor:pointer}.datepicker__icon{display:inline-flex;color:var(--color-text-muted)}.datepicker__icon svg{width:16px;height:16px}.datepicker__panel{position:absolute;top:calc(100% + 4px);left:0;z-index:var(--z-dropdown);width:268px;padding:var(--space-sm);background:var(--color-surface-elevated);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-popup);transform-origin:top;animation:gg-select-in var(--duration-mid) var(--ease-out)}.datepicker__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-xs)}.datepicker__nav{display:inline-flex;gap:2px}.datepicker__nav-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;color:var(--color-text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out),background-color var(--duration-fast) var(--ease-in-out)}.datepicker__nav-btn:hover{color:var(--color-text);background:var(--color-fill-tertiary)}.datepicker__nav-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.datepicker__nav-btn svg{width:16px;height:16px}.datepicker__title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text)}.datepicker__grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px}.datepicker__weekday{height:28px;font-size:var(--font-size-sm);line-height:28px;text-align:center;color:var(--color-text-muted)}.datepicker__day{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0;font-size:var(--font-size-base);color:var(--color-text);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-in-out),color var(--duration-fast) var(--ease-in-out)}.datepicker__day:hover{background:var(--color-fill-tertiary)}.datepicker__day:focus-visible{outline:none;box-shadow:var(--focus-ring)}.datepicker__day--outside{color:var(--color-text-muted)}.datepicker__day--today{font-weight:var(--font-weight-semibold);box-shadow:inset 0 0 0 1px var(--color-primary)}.datepicker__day--selected{background:var(--color-primary);color:var(--color-primary-fg)}.datepicker__day--selected:hover{background:var(--color-primary-hover)}.datepicker__day--disabled{color:var(--color-text-disabled);cursor:not-allowed}.datepicker__day--disabled:hover{background:transparent}.datepicker__footer{display:flex;justify-content:center;margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--color-border-secondary)}.datepicker__today-btn{padding:2px 8px;font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-primary);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer}.datepicker__today-btn:hover{color:var(--color-primary-hover)}.datepicker__today-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.daterange__panel{width:auto}.daterange__months{display:flex;gap:var(--space-lg)}.daterange__month{width:252px;flex:0 0 auto}.daterange__month-title{margin-bottom:var(--space-xs);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text);text-align:center}.daterange__grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:0;gap:0}.daterange__grid .datepicker__day{width:100%}.datepicker__day--in-range{border-radius:0}.datepicker__day--in-range,.datepicker__day--in-range:hover{background:var(--color-primary-bg)}.datepicker__day--range-start{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.datepicker__day--range-end,.datepicker__day--range-start{background:var(--color-primary);color:var(--color-primary-fg)}.datepicker__day--range-end{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.datepicker__day--range-start.datepicker__day--range-end{border-radius:var(--radius-sm)}.datepicker__day--range-end:hover,.datepicker__day--range-start:hover{background:var(--color-primary-hover)}.timepicker .select__control{cursor:pointer}.timepicker__icon{display:inline-flex;color:var(--color-text-muted)}.timepicker__icon svg{width:16px;height:16px}.timepicker__panel{position:absolute;top:calc(100% + 4px);left:0;z-index:var(--z-dropdown);width:auto;background:var(--color-surface-elevated);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-popup);transform-origin:top;animation:gg-select-in var(--duration-mid) var(--ease-out)}.timepicker__columns{display:flex}.timepicker__col{width:56px;max-height:224px;padding:4px;overflow-y:auto;border-right:1px solid var(--color-border-secondary)}.timepicker__col:last-child{border-right:none}.timepicker__option{display:flex;align-items:center;justify-content:center;width:100%;height:28px;padding:0;font-family:var(--font-sans);font-size:var(--font-size-base);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--color-text);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-in-out)}.timepicker__option:hover{background:var(--color-fill-tertiary)}.timepicker__option--selected{background:var(--color-primary-bg);font-weight:var(--font-weight-semibold)}.timepicker__option:focus-visible{outline:none;box-shadow:var(--focus-ring)}.timepicker__footer{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-top:1px solid var(--color-border-secondary)}.timepicker__now{padding:0;font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-primary);background:transparent;border:none;cursor:pointer}.timepicker__now:hover{color:var(--color-primary-hover)}.timepicker__now:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.colorpicker .select__control{cursor:pointer}.colorpicker__checker{background-image:linear-gradient(45deg,var(--color-border) 25%,transparent 25%),linear-gradient(-45deg,var(--color-border) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--color-border) 75%),linear-gradient(-45deg,transparent 75%,var(--color-border) 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0}.colorpicker__swatch{position:relative;flex:0 0 auto;width:16px;height:16px;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.colorpicker__swatch-color{position:absolute;inset:0}.colorpicker__panel{position:absolute;top:calc(100% + 4px);left:0;z-index:var(--z-dropdown);width:240px;padding:var(--space-sm);background:var(--color-surface-elevated);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-popup);transform-origin:top;animation:gg-select-in var(--duration-mid) var(--ease-out)}.colorpicker__saturation{position:relative;width:100%;height:140px;border-radius:var(--radius-sm);overflow:hidden;cursor:crosshair;touch-action:none}.colorpicker__saturation-white{position:absolute;inset:0;background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}.colorpicker__saturation-black{position:absolute;inset:0;background:linear-gradient(0deg,#000,rgba(0,0,0,0))}.colorpicker__pointer{position:absolute;width:12px;height:12px;border:2px solid #fff;border-radius:var(--radius-full);box-shadow:0 0 0 1px rgba(0,0,0,.35);transform:translate(-50%,-50%);pointer-events:none}.colorpicker__sliders{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-sm)}.colorpicker__slider{position:relative;height:12px;border-radius:var(--radius-full);cursor:pointer;touch-action:none}.colorpicker__slider--hue{background:linear-gradient(90deg,#f00 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00)}.colorpicker__slider-inner{position:absolute;inset:0;border-radius:inherit}.colorpicker__slider-thumb{position:absolute;top:50%;width:14px;height:14px;background:#fff;border:1px solid rgba(0,0,0,.15);border-radius:var(--radius-full);box-shadow:var(--shadow-control);transform:translate(-50%,-50%);pointer-events:none}.colorpicker__row{display:flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-sm)}.colorpicker__hex{flex:1 1 auto;text-transform:uppercase}.colorpicker__presets{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--space-sm)}.colorpicker__preset{width:20px;height:20px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer}.colorpicker__preset:focus-visible{outline:none;box-shadow:var(--focus-ring)}.form{display:flex;flex-direction:column;gap:var(--space)}.form--horizontal .text-field{flex-direction:row;align-items:baseline;gap:var(--space)}.form--horizontal .text-field__label{width:33%;flex:0 0 auto;text-align:right}.form--inline{flex-direction:row;flex-wrap:wrap;align-items:flex-end}.fieldset{min-width:0;margin:0;padding:0;border:none}.fieldset__legend{padding:0;margin-bottom:var(--space-sm);font-family:var(--font-sans);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.fieldset__description{margin:-8px 0 var(--space) 0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.fieldset__body{display:flex;flex-direction:column;gap:var(--space)}.fieldset:disabled{opacity:.6}.fileupload{font-family:var(--font-sans)}.fileupload__dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-lg);text-align:center;color:var(--color-text-muted);background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-in-out),background-color var(--duration-fast) var(--ease-in-out)}.fileupload__dropzone:focus-visible,.fileupload__dropzone:hover{outline:none;border-color:var(--color-primary)}.fileupload--dragging .fileupload__dropzone{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary),transparent 94%)}.fileupload--disabled .fileupload__dropzone{cursor:not-allowed;opacity:.6}.fileupload__icon{color:var(--color-text-muted)}.fileupload__icon svg{width:24px;height:24px}.fileupload__text{font-size:var(--font-size-base);color:var(--color-text)}.fileupload__text b{color:var(--color-primary);font-weight:var(--font-weight-medium)}.fileupload__hint{font-size:var(--font-size-sm);color:var(--color-text-muted)}.fileupload__list{display:flex;flex-direction:column;gap:6px;margin-top:var(--space-sm)}.fileupload__file{display:flex;align-items:center;gap:var(--space-xs);padding:6px 10px;font-size:var(--font-size-base);background:var(--color-surface);border:1px solid var(--color-border-secondary);border-radius:var(--radius)}.fileupload__file-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text)}.fileupload__file-size{flex:0 0 auto;font-size:var(--font-size-sm);color:var(--color-text-muted)}.fileupload__file-remove{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;color:var(--color-text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out)}.fileupload__file-remove:hover{color:var(--color-danger)}.fileupload__file-remove svg{width:14px;height:14px}.rating{display:inline-flex;align-items:center;line-height:1}.rating--sm{font-size:16px;gap:2px}.rating--md{font-size:20px;gap:3px}.rating--lg{font-size:28px;gap:5px}.rating:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.rating--disabled{cursor:not-allowed;opacity:.6}.rating__star{position:relative;display:inline-block;width:1em;height:1em;padding:0;font-size:inherit;line-height:0;color:color-mix(in srgb,var(--color-text-muted),transparent 60%);background:transparent;border:none;cursor:pointer;transition:transform var(--duration-fast) var(--ease-out)}.rating:not(.rating--readonly):not(.rating--disabled) .rating__star:hover{transform:scale(1.15)}.rating:not(.rating--readonly):not(.rating--disabled) .rating__star:active{transform:scale(1.05)}.rating--disabled .rating__star,.rating--readonly .rating__star{cursor:default}.rating__star svg{position:absolute;top:0;left:0;display:block;width:1em;height:1em}.rating__star-fg{position:absolute;top:0;left:0;height:100%;overflow:hidden;color:var(--color-warning);filter:drop-shadow(0 0 2px color-mix(in srgb,var(--color-warning),transparent 55%));transition:width var(--duration-fast) var(--ease-in-out),filter var(--duration-fast) var(--ease-in-out)}.rating:not(.rating--readonly):not(.rating--disabled):hover .rating__star-fg{filter:drop-shadow(0 0 5px color-mix(in srgb,var(--color-warning),transparent 25%))}.rating:not(.rating--readonly):not(.rating--disabled) .rating__star:hover .rating__star-fg{filter:drop-shadow(0 0 7px color-mix(in srgb,var(--color-warning),transparent 10%))}.icon{display:inline-flex;align-items:center;justify-content:center;color:inherit}.icon,.icon svg{width:1em;height:1em}.icon svg{display:block}.icon--spin svg{animation:gg-spin 1s linear infinite}.spinner{display:inline-flex;align-items:center;gap:var(--space-xs);color:var(--color-primary)}.spinner__circle{width:1em;height:1em;animation:gg-spin .7s linear infinite}.spinner--sm{font-size:16px}.spinner--md{font-size:22px}.spinner--lg{font-size:32px}.spinner__label{font-size:var(--font-size-base);color:var(--color-text-muted)}.spinner__label,.tag{font-family:var(--font-sans)}.tag{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;font-size:var(--font-size-sm);line-height:20px;color:var(--color-text);background:var(--color-fill-quaternary);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.tag--round{border-radius:var(--radius-full)}.tag__icon{display:inline-flex}.tag__icon svg{width:12px;height:12px}.tag__close{display:inline-flex;align-items:center;justify-content:center;margin-right:-2px;padding:0;color:var(--color-text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out)}.tag__close:hover{color:var(--color-text)}.tag__close svg{width:12px;height:12px}.tag--primary{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary),transparent 88%);border-color:color-mix(in srgb,var(--color-primary),transparent 60%)}.tag--success{color:var(--color-success);background:color-mix(in srgb,var(--color-success),transparent 88%);border-color:color-mix(in srgb,var(--color-success),transparent 60%)}.tag--warning{color:color-mix(in srgb,var(--color-warning),#000 12%);background:color-mix(in srgb,var(--color-warning),transparent 85%);border-color:color-mix(in srgb,var(--color-warning),transparent 60%)}.tag--danger{color:var(--color-danger);background:color-mix(in srgb,var(--color-danger),transparent 88%);border-color:color-mix(in srgb,var(--color-danger),transparent 60%)}.tag--info{color:var(--color-info);background:color-mix(in srgb,var(--color-info),transparent 88%);border-color:color-mix(in srgb,var(--color-info),transparent 60%)}.avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;overflow:hidden;font-family:var(--font-sans);font-weight:var(--font-weight-medium);color:#fff;background:var(--color-fill);border-radius:var(--radius-full);-webkit-user-select:none;-moz-user-select:none;user-select:none}.avatar--square{border-radius:var(--radius)}.avatar--sm{width:24px;height:24px;font-size:11px}.avatar--md{width:32px;height:32px;font-size:14px}.avatar--lg{width:40px;height:40px;font-size:16px}.avatar--xl{width:64px;height:64px;font-size:24px}.avatar img{width:100%;height:100%;object-fit:cover}.avatar svg{width:60%;height:60%}.avatar-group{display:inline-flex;align-items:center}.avatar-group .avatar{border:2px solid var(--color-surface)}.avatar-group .avatar:not(:first-child){margin-left:-8px}.avatar-group__more{background:var(--color-fill-secondary);color:var(--color-text)}.tooltip{display:inline-flex}.tooltip__bubble{z-index:var(--z-tooltip);width:max-content;max-width:250px;padding:6px 8px;font-family:var(--font-sans);font-size:var(--font-size-sm);line-height:1.4;text-align:center;color:var(--color-surface);background:var(--color-text);border-radius:var(--radius);box-shadow:var(--shadow-popup);pointer-events:none;animation:gg-fade-in var(--duration-fast) var(--ease-out)}.tooltip__bubble:after{content:"";position:absolute;width:8px;height:8px;background:inherit}.tooltip__bubble--top:after{top:100%;left:50%;transform:translate(-50%,-50%) rotate(45deg)}.tooltip__bubble--bottom:after{bottom:100%;left:50%;transform:translate(-50%,50%) rotate(45deg)}.tooltip__bubble--left:after{left:100%;top:50%;transform:translate(-50%,-50%) rotate(45deg)}.tooltip__bubble--right:after{right:100%;top:50%;transform:translate(50%,-50%) rotate(45deg)}.progress{font-family:var(--font-sans)}.progress__head{display:flex;justify-content:space-between;margin-bottom:4px;font-size:var(--font-size-sm);color:var(--color-text-muted)}.progress__track{position:relative;height:8px;overflow:hidden;background:var(--color-fill-secondary);border-radius:var(--radius-full)}.progress--sm .progress__track{height:6px}.progress--lg .progress__track{height:12px}.progress__bar{height:100%;background:var(--color-primary);border-radius:inherit;transition:width var(--duration-slow) var(--ease-in-out)}.progress--success .progress__bar{background:var(--color-success)}.progress--warning .progress__bar{background:var(--color-warning)}.progress--danger .progress__bar{background:var(--color-danger)}.progress--indeterminate .progress__bar{width:40%!important;border-radius:var(--radius-full);animation:gg-progress 1.2s var(--ease-in-out) infinite}@keyframes gg-progress{0%{transform:translateX(-100%)}to{transform:translateX(300%)}}.skeleton{display:block;background:var(--color-fill-secondary)}.skeleton,.skeleton--text{border-radius:var(--radius-sm)}.skeleton--text{height:.85em;margin:.25em 0}.skeleton--circle{border-radius:var(--radius-full)}.skeleton--rect{border-radius:var(--radius)}.skeleton--animated{background:linear-gradient(90deg,var(--color-fill-secondary) 25%,var(--color-fill-tertiary) 37%,var(--color-fill-secondary) 63%);background-size:400% 100%;animation:gg-shimmer 1.4s ease infinite}@keyframes gg-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.alert{display:flex;align-items:flex-start;gap:var(--space-xs);padding:10px 12px;font-family:var(--font-sans);font-size:var(--font-size-base);line-height:1.5;color:var(--color-text);border:1px solid transparent;border-radius:var(--radius-lg)}.alert__icon{display:inline-flex;flex:0 0 auto;margin-top:1px}.alert__icon svg{width:16px;height:16px}.alert__body{flex:1 1 auto;min-width:0}.alert__title{font-weight:var(--font-weight-semibold)}.alert__title+.alert__desc{margin-top:2px}.alert__desc{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.alert__close{display:inline-flex;flex:0 0 auto;padding:0;color:var(--color-text-muted);background:transparent;border:none;cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out)}.alert__close:hover{color:var(--color-text)}.alert__close svg{width:14px;height:14px}.alert--info{background:color-mix(in srgb,var(--color-info),transparent 90%);border-color:color-mix(in srgb,var(--color-info),transparent 72%)}.alert--info .alert__icon{color:var(--color-info)}.alert--success{background:color-mix(in srgb,var(--color-success),transparent 90%);border-color:color-mix(in srgb,var(--color-success),transparent 72%)}.alert--success .alert__icon{color:var(--color-success)}.alert--warning{background:color-mix(in srgb,var(--color-warning),transparent 88%);border-color:color-mix(in srgb,var(--color-warning),transparent 68%)}.alert--warning .alert__icon{color:color-mix(in srgb,var(--color-warning),#000 10%)}.alert--error{background:color-mix(in srgb,var(--color-danger),transparent 90%);border-color:color-mix(in srgb,var(--color-danger),transparent 72%)}.alert--error .alert__icon{color:var(--color-danger)}.alert--banner{border-radius:0;border-left:none;border-right:none;border-top:none}.toaster{position:fixed;z-index:var(--z-notification);display:flex;flex-direction:column;gap:var(--space-xs);max-width:380px;pointer-events:none}.toaster--top-right{top:var(--space);right:var(--space);align-items:flex-end}.toaster--top-left{top:var(--space);left:var(--space);align-items:flex-start}.toaster--bottom-right{bottom:var(--space);right:var(--space);align-items:flex-end}.toaster--bottom-left{bottom:var(--space);left:var(--space);align-items:flex-start}.toast{display:flex;align-items:flex-start;gap:var(--space-xs);width:100%;padding:10px 12px;font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface-elevated);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-popup);pointer-events:auto;animation:gg-toast-in var(--duration-mid) var(--ease-out)}.toast--closing{animation:gg-toast-out var(--duration-mid) var(--ease-in-out) forwards}.toast__icon{display:inline-flex;flex:0 0 auto;margin-top:1px}.toast__icon svg{width:18px;height:18px}.toast--info .toast__icon{color:var(--color-info)}.toast--success .toast__icon{color:var(--color-success)}.toast--warning .toast__icon{color:color-mix(in srgb,var(--color-warning),#000 10%)}.toast--error .toast__icon{color:var(--color-danger)}.toast__body{flex:1 1 auto;min-width:0}.toast__title{font-weight:var(--font-weight-semibold)}.toast__title+.toast__desc{margin-top:2px}.toast__desc{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.toast__close{display:inline-flex;flex:0 0 auto;padding:0;color:var(--color-text-muted);background:transparent;border:none;cursor:pointer}.toast__close:hover{color:var(--color-text)}.toast__close svg{width:14px;height:14px}@keyframes gg-toast-in{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes gg-toast-out{to{opacity:0;transform:scale(.98)}}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-xl) var(--space);text-align:center;font-family:var(--font-sans)}.empty-state__icon{color:var(--color-text-disabled)}.empty-state__icon svg{width:40px;height:40px}.empty-state__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.empty-state__desc{max-width:340px;font-size:var(--font-size-base);color:var(--color-text-muted)}.empty-state__action{margin-top:var(--space-xs)}.stat{display:flex;flex-direction:column;gap:4px;font-family:var(--font-sans)}.stat__label{display:flex;align-items:center;gap:6px;font-size:var(--font-size-sm);color:var(--color-text-muted)}.stat__label-icon{display:inline-flex;color:var(--color-text-muted)}.stat__label-icon svg{width:15px;height:15px}.stat__value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text);line-height:1.2}.stat__delta{display:inline-flex;align-items:center;gap:3px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.stat__delta svg{width:14px;height:14px}.stat__delta--up{color:var(--color-success)}.stat__delta--down{color:var(--color-danger)}.timeline{display:flex;flex-direction:column;margin:0;padding:0;list-style:none;font-family:var(--font-sans)}.timeline__item{position:relative;display:flex;gap:var(--space);padding-bottom:var(--space)}.timeline__item:last-child{padding-bottom:0}.timeline__rail{position:relative;display:flex;flex-direction:column;align-items:center}.timeline__dot{z-index:1;width:12px;height:12px;margin-top:3px;background:var(--color-surface);border:2px solid var(--color-primary);border-radius:var(--radius-full)}.timeline__dot--success{border-color:var(--color-success)}.timeline__dot--warning{border-color:var(--color-warning)}.timeline__dot--danger{border-color:var(--color-danger)}.timeline__dot--muted{border-color:var(--color-border-strong,var(--color-border))}.timeline__line{flex:1 1 auto;width:2px;margin-top:2px;background:var(--color-border-secondary)}.timeline__item:last-child .timeline__line{display:none}.timeline__content{flex:1 1 auto;min-width:0;padding-bottom:2px}.timeline__title{font-size:var(--font-size-base);color:var(--color-text)}.timeline__time{font-size:var(--font-size-sm);color:var(--color-text-muted)}.image{position:relative;display:inline-block;overflow:hidden;background:var(--color-fill-quaternary)}.image--rounded{border-radius:var(--radius)}.image img{display:block;width:100%;height:100%;object-fit:cover}.image__fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:60px;color:var(--color-text-disabled)}.image__fallback svg{width:32px;height:32px}.heading{margin:0;font-family:var(--font-sans);font-weight:var(--font-weight-semibold);line-height:var(--line-heading);color:var(--color-text)}.heading--1{font-size:var(--font-size-h1);letter-spacing:-.02em}.heading--2{font-size:var(--font-size-h2);letter-spacing:-.02em}.heading--3{font-size:var(--font-size-h3);letter-spacing:-.01em}.heading--4{font-size:var(--font-size-xl)}.heading--5{font-size:var(--font-size-lg)}.heading--6,.text{font-size:var(--font-size-base)}.text{margin:0;font-family:var(--font-sans);line-height:var(--line-base);color:var(--color-text)}.text--sm{font-size:var(--font-size-sm)}.text--lg{font-size:var(--font-size-lg)}.text--muted{color:var(--color-text-muted)}.text--secondary{color:var(--color-text-secondary)}.text--primary{color:var(--color-primary)}.text--success{color:var(--color-success)}.text--warning{color:color-mix(in srgb,var(--color-warning),#000 10%)}.text--danger{color:var(--color-danger)}.text--medium{font-weight:var(--font-weight-medium)}.text--semibold{font-weight:var(--font-weight-semibold)}.text--truncate{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.label{display:inline-flex;align-items:center;gap:2px;font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text)}.label__required{color:var(--color-danger)}.label--disabled{color:var(--color-text-disabled)}.code{font-size:.875em;padding:.1em .4em;color:var(--color-text);background:var(--color-fill-tertiary);border:1px solid var(--color-border-secondary);border-radius:var(--radius-sm)}.code,.code-block{font-family:var(--font-mono)}.code-block{position:relative}.code-block__pre{margin:0;padding:var(--space-sm) var(--space);overflow:auto;font-size:var(--font-size-sm);line-height:1.6;color:var(--color-text);background:var(--color-surface-elevated);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg)}.code-block--with-lang .code-block__pre{padding-top:32px}.code-block__pre code{font-family:inherit}.code-block__lang{left:12px}.code-block__copy,.code-block__lang{position:absolute;top:8px;font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted)}.code-block__copy{right:8px;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;opacity:0;transition:opacity var(--duration-fast) var(--ease-in-out),color var(--duration-fast) var(--ease-in-out)}.code-block:hover .code-block__copy,.code-block__copy:focus-visible{opacity:1}.code-block__copy:hover{color:var(--color-text)}.code-block__copy:focus-visible{outline:none;box-shadow:var(--focus-ring)}.code-block__copy svg{width:14px;height:14px}.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;font-family:var(--font-mono);font-size:12px;line-height:1;color:var(--color-text-secondary);background:var(--color-surface);border:solid var(--color-border);border-width:1px 1px 2px;border-radius:var(--radius-sm)}.container{width:100%;margin-inline:auto;padding-inline:var(--space)}.container--sm{max-width:640px}.container--md{max-width:768px}.container--lg{max-width:1024px}.container--xl{max-width:1280px}.container--full{max-width:none}.center{display:flex;align-items:center;justify-content:center}.center--inline{display:inline-flex}.divider--horizontal{width:100%;height:1px;margin:var(--space) 0}.divider--horizontal,.divider--vertical{border:none;background:var(--color-border-secondary)}.divider--vertical{display:inline-block;width:1px;align-self:stretch;min-height:1em;margin:0 var(--space-xs)}.divider--labeled{display:flex;align-items:center;gap:var(--space-sm);width:100%;height:auto;margin:var(--space) 0;background:none;font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted)}.divider--labeled:after,.divider--labeled:before{content:"";flex:1 1 auto;height:1px;background:var(--color-border-secondary)}.aspect-ratio{display:block;width:100%;overflow:hidden}.aspect-ratio>*{width:100%;height:100%;object-fit:cover}.scroll-area{overflow:auto;scrollbar-width:thin;scrollbar-color:var(--color-fill) transparent}.scroll-area::-webkit-scrollbar{width:8px;height:8px}.scroll-area::-webkit-scrollbar-track{background:transparent}.scroll-area::-webkit-scrollbar-thumb{background:var(--color-fill);border:2px solid transparent;border-radius:var(--radius-full);background-clip:padding-box}.scroll-area::-webkit-scrollbar-thumb:hover{background:var(--color-fill-secondary);background-clip:padding-box}.app-shell{display:grid;min-height:100vh;height:100%;grid-template-rows:64px 1fr;grid-template-areas:"sidebar header" "sidebar main";background:var(--color-bg);font-family:var(--font-sans)}.app-shell--no-sidebar{grid-template-columns:1fr;grid-template-areas:"header" "main"}.app-shell__sidebar{grid-area:sidebar;display:flex;flex-direction:column;min-height:0;overflow-y:auto;background:var(--color-surface);border-right:1px solid var(--color-border-secondary)}.app-shell__brand{display:flex;align-items:center;gap:var(--space-xs);flex:0 0 auto;height:64px;padding:0 var(--space);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);border-bottom:1px solid var(--color-border-secondary)}.app-shell__brand svg{width:22px;height:22px;color:var(--color-primary)}.app-shell__header{grid-area:header;display:flex;align-items:center;gap:var(--space-xs);padding:0 var(--space-lg);background:var(--color-surface);border-bottom:1px solid var(--color-border-secondary)}.app-shell__main{grid-area:main;min-height:0;overflow-y:auto;padding:var(--space-lg)}.app-shell__main,.app-shell__sidebar{scrollbar-width:thin;scrollbar-color:var(--color-fill) transparent}.app-shell__main::-webkit-scrollbar,.app-shell__sidebar::-webkit-scrollbar{width:8px;height:8px}.app-shell__main::-webkit-scrollbar-thumb,.app-shell__sidebar::-webkit-scrollbar-thumb{background:var(--color-fill);border:2px solid transparent;border-radius:var(--radius-full);background-clip:padding-box}.panel{background:var(--color-surface);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg)}.panel__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space);min-height:48px;padding:var(--space-sm) var(--space);border-bottom:1px solid var(--color-border-secondary)}.panel__title{font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text)}.panel__body{padding:var(--space)}.panel__footer{padding:var(--space-sm) var(--space);border-top:1px solid var(--color-border-secondary)}.overlay-mask{position:fixed;inset:0;background:rgba(0,0,0,.45);animation:gg-fade-in var(--duration-mid) var(--ease-out)}@keyframes gg-fade-in{0%{opacity:0}to{opacity:1}}.modal-root{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:flex-start;justify-content:center;padding:var(--space-xl) var(--space);overflow-y:auto}.modal{position:relative;width:100%;max-width:520px;margin-top:6vh;background:var(--color-surface-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-popup);animation:gg-modal-in var(--duration-slow) var(--ease-out)}.modal--sm{max-width:400px}.modal--lg{max-width:720px}.modal--full{max-width:calc(100vw - 2 * var(--space))}@keyframes gg-modal-in{0%{opacity:0;transform:translateY(-16px) scale(.98)}to{opacity:1;transform:none}}.dialog__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space);padding:var(--space) var(--space-lg);border-bottom:1px solid var(--color-border-secondary)}.dialog__title{font-family:var(--font-sans);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.dialog__close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;color:var(--color-text-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out),background-color var(--duration-fast) var(--ease-in-out)}.dialog__close:hover{color:var(--color-text);background:var(--color-fill-tertiary)}.dialog__close:focus-visible{outline:none;box-shadow:var(--focus-ring)}.dialog__close svg{width:16px;height:16px}.dialog__body{padding:var(--space-lg);font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text)}.dialog__footer{display:flex;justify-content:flex-end;gap:var(--space-xs);padding:var(--space) var(--space-lg);border-top:1px solid var(--color-border-secondary)}.drawer-root{position:fixed;inset:0;z-index:var(--z-drawer)}.drawer{position:fixed;display:flex;flex-direction:column;background:var(--color-surface-elevated);box-shadow:var(--shadow-popup)}.drawer .dialog__body{flex:1 1 auto;overflow:auto}.drawer--right{right:0;animation:gg-slide-left var(--duration-slow) var(--ease-out)}.drawer--left,.drawer--right{top:0;height:100vh;width:380px}.drawer--left{left:0;animation:gg-slide-right var(--duration-slow) var(--ease-out)}.drawer--top{top:0;animation:gg-slide-down var(--duration-slow) var(--ease-out)}.drawer--bottom,.drawer--top{left:0;width:100vw;height:320px}.drawer--bottom{bottom:0;animation:gg-slide-up var(--duration-slow) var(--ease-out)}@keyframes gg-slide-left{0%{transform:translateX(100%)}to{transform:none}}@keyframes gg-slide-right{0%{transform:translateX(-100%)}to{transform:none}}@keyframes gg-slide-down{0%{transform:translateY(-100%)}to{transform:none}}@keyframes gg-slide-up{0%{transform:translateY(100%)}to{transform:none}}.popover{display:inline-flex}.popover__panel{position:absolute;z-index:var(--z-popover);min-width:160px;max-width:320px;padding:var(--space-sm);font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface-elevated);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-popup);animation:gg-select-in var(--duration-mid) var(--ease-out)}.popover__panel--top{bottom:calc(100% + 8px);left:50%;transform:translateX(-50%)}.popover__panel--bottom{top:calc(100% + 8px);left:50%;transform:translateX(-50%)}.popover__panel--left{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.popover__panel--right{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.accordion{overflow:hidden;background:var(--color-surface);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg);font-family:var(--font-sans)}.accordion__item+.accordion__item{border-top:1px solid var(--color-border-secondary)}.accordion__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space);width:100%;padding:var(--space-sm) var(--space);font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text);text-align:left;background:transparent;border:none;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-in-out)}.accordion__header:hover{background:var(--color-fill-tertiary)}.accordion__header:focus-visible{outline:none;box-shadow:var(--focus-ring)}.accordion__icon{flex:0 0 auto;color:var(--color-text-muted);transition:transform var(--duration-mid) var(--ease-in-out)}.accordion__icon svg{width:16px;height:16px;display:block}.accordion__item--open .accordion__icon{transform:rotate(90deg)}.accordion__panel{padding:0 var(--space) var(--space);font-size:var(--font-size-base);color:var(--color-text-secondary)}.disclosure,.disclosure__trigger{font-family:var(--font-sans)}.disclosure__trigger{display:inline-flex;align-items:center;gap:4px;padding:0;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-primary);background:transparent;border:none;cursor:pointer}.disclosure__trigger:hover{color:var(--color-primary-hover)}.disclosure__trigger:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.disclosure__icon{display:inline-flex;transition:transform var(--duration-mid) var(--ease-in-out)}.disclosure__icon svg{width:16px;height:16px}.disclosure--open .disclosure__icon{transform:rotate(90deg)}.disclosure__panel{margin-top:var(--space-xs);color:var(--color-text-secondary)}.card{display:flex;flex-direction:column;font-family:var(--font-sans);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg)}.card__title{display:flex;align-items:center;min-height:56px;padding:0 var(--space-lg);font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg);line-height:var(--line-heading);border-bottom:1px solid var(--color-border-secondary)}.card__body{padding:var(--space-lg);font-size:var(--font-size-base);line-height:var(--line-base);color:var(--color-text-secondary)}.card__footer{padding:var(--space) var(--space-lg);border-top:1px solid var(--color-border-secondary)}.card.is-hoverable{cursor:pointer;transition:box-shadow var(--duration-mid) var(--ease-in-out),border-color var(--duration-mid) var(--ease-in-out)}.card.is-hoverable:hover{border-color:transparent;box-shadow:var(--shadow-card)}.card--small .card__title{min-height:38px;padding:0 var(--space);font-size:var(--font-size-base)}.card--small .card__body{padding:var(--space)}.card--small .card__footer{padding:var(--space-sm) var(--space)}.badge{display:inline-flex;align-items:center;height:22px;padding:0 7px;font-family:var(--font-sans);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);line-height:20px;color:var(--color-text);background:var(--color-fill-quaternary);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.badge--success{color:var(--color-success);background:color-mix(in srgb,var(--color-success),transparent 88%);border-color:color-mix(in srgb,var(--color-success),transparent 60%)}.badge--warning{color:var(--color-text);background:color-mix(in srgb,var(--color-warning),transparent 85%);border-color:color-mix(in srgb,var(--color-warning),transparent 60%)}.badge--danger{color:var(--color-danger);background:color-mix(in srgb,var(--color-danger),transparent 88%);border-color:color-mix(in srgb,var(--color-danger),transparent 60%)}.badge--primary{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary),transparent 88%);border-color:color-mix(in srgb,var(--color-primary),transparent 60%)}.badge--info{color:var(--color-info);background:color-mix(in srgb,var(--color-info),transparent 88%);border-color:color-mix(in srgb,var(--color-info),transparent 60%)}.link{font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-primary);text-decoration:none;cursor:pointer;border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-in-out)}.link:hover{color:var(--color-primary-hover);text-decoration:underline}.link:focus-visible{outline:none;box-shadow:var(--focus-ring)}.link[aria-disabled=true]{color:var(--color-text-disabled);cursor:not-allowed;pointer-events:none;text-decoration:none}.tabs{font-family:var(--font-sans)}.tabs__list{position:relative;display:flex;gap:var(--space);border-bottom:1px solid var(--color-border-secondary)}.tabs__ink{bottom:-1px;height:2px;border-radius:1px;background:var(--color-primary)}.tabs__card-ink,.tabs__ink{position:absolute;left:0;pointer-events:none;transition:transform var(--duration-slow) var(--ease-in-out),width var(--duration-slow) var(--ease-in-out)}.tabs__card-ink{box-sizing:border-box;z-index:0;top:3px;bottom:3px;background:var(--color-surface);border:1px solid var(--color-border-secondary);border-radius:var(--radius);box-shadow:var(--shadow-card)}.tabs__tab{position:relative;padding:10px 0;font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text-secondary);background:none;border:none;cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out)}.tabs__tab:hover{color:var(--color-primary-hover)}.tabs__tab--active{color:var(--color-primary);font-weight:var(--font-weight-medium)}.tabs__tab:disabled{color:var(--color-text-disabled);cursor:not-allowed}.tabs__tab:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.tabs__panel{padding-top:var(--space)}.tabs--card .tabs__list{gap:0;padding:3px;border:none;background:var(--color-fill-tertiary);border-radius:var(--radius-lg)}.tabs--card .tabs__tab{position:relative;z-index:1;padding:6px 16px;font-weight:var(--font-weight-medium);color:var(--color-text-secondary);border:none;border-radius:var(--radius);transition:color var(--duration-fast) var(--ease-in-out)}.tabs--card .tabs__tab:not(.tabs__tab--active):hover{color:var(--color-text)}.tabs--card .tabs__tab--active{color:var(--color-text);background:transparent}.tabs--card .tabs__tab:focus-visible{box-shadow:var(--focus-ring)}.breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;font-family:var(--font-sans);font-size:var(--font-size-base)}.breadcrumbs__item{display:inline-flex;align-items:center;gap:6px;color:var(--color-text-muted)}.breadcrumbs__link{color:var(--color-text-muted);text-decoration:none;cursor:pointer}.breadcrumbs__link:hover{color:var(--color-primary)}.breadcrumbs__item--current{color:var(--color-text);font-weight:var(--font-weight-medium)}.breadcrumbs__sep{color:var(--color-text-disabled)}.breadcrumbs__sep svg{width:14px;height:14px;display:block}.pagination{gap:4px}.pagination,.pagination__item{display:inline-flex;align-items:center;font-family:var(--font-sans)}.pagination__item{justify-content:center;min-width:var(--control-height);height:var(--control-height);padding:0 8px;font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out),border-color var(--duration-fast) var(--ease-in-out)}.pagination__item:hover:not(:disabled):not(.pagination__item--active){color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.pagination__item--active{color:var(--color-primary);border-color:var(--color-primary);font-weight:var(--font-weight-medium)}.pagination__item:disabled{color:var(--color-text-disabled);cursor:not-allowed}.pagination__item svg{width:16px;height:16px}.pagination__ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:var(--control-height);height:var(--control-height);color:var(--color-text-muted)}.menu{z-index:var(--z-dropdown);min-width:180px;padding:var(--space-xxs);background:var(--color-surface-elevated);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-popup);animation:gg-select-in var(--duration-mid) var(--ease-out)}.menu,.menu__item{font-family:var(--font-sans)}.menu__item{display:flex;align-items:center;gap:var(--space-xs);width:100%;padding:6px 10px;font-size:var(--font-size-base);color:var(--color-text);text-align:left;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer}.menu__item:hover:not(:disabled){background:var(--color-fill-tertiary)}.menu__item:focus-visible{outline:none;box-shadow:var(--focus-ring)}.menu__item:disabled{color:var(--color-text-disabled);cursor:not-allowed}.menu__item--danger{color:var(--color-danger)}.menu__item--danger:hover:not(:disabled){background:color-mix(in srgb,var(--color-danger),transparent 90%)}.menu__item-icon{display:inline-flex;color:var(--color-text-muted)}.menu__item-icon svg{width:16px;height:16px}.menu__item--danger .menu__item-icon{color:var(--color-danger)}.menu__item-shortcut{margin-left:auto;font-size:var(--font-size-sm);color:var(--color-text-muted)}.menu__divider{height:1px;margin:4px 0;background:var(--color-border-secondary)}.menu__label{padding:6px 10px 2px;font-size:var(--font-size-sm);color:var(--color-text-muted)}.sidebar{display:flex;flex-direction:column;gap:var(--space-sm);width:240px;padding:var(--space-sm);font-family:var(--font-sans);background:var(--color-surface);transition:width var(--duration-mid) var(--ease-in-out)}.sidebar--collapsed{width:64px}.sidebar__section{display:flex;flex-direction:column;gap:2px}.sidebar__section-title{padding:4px 10px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.sidebar--collapsed .sidebar__section-title{display:none}.sidebar__item{display:flex;align-items:center;gap:var(--space-xs);width:100%;padding:8px 10px;font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text-secondary);text-align:left;text-decoration:none;background:transparent;border:none;border-radius:var(--radius);cursor:pointer;transition:color var(--duration-fast) var(--ease-in-out),background-color var(--duration-fast) var(--ease-in-out)}.sidebar__item:hover{color:var(--color-text);background:var(--color-fill-tertiary)}.sidebar__item--active{color:var(--color-primary);background:var(--color-primary-bg);font-weight:var(--font-weight-medium)}.sidebar__item-icon{display:inline-flex;flex:0 0 auto}.sidebar__item-icon svg{width:18px;height:18px}.sidebar--collapsed .sidebar__item{justify-content:center;padding:8px}.sidebar--collapsed .sidebar__item-label{display:none}.navbar{gap:var(--space);height:56px;padding:0 var(--space-lg);font-family:var(--font-sans);background:var(--color-surface);border-bottom:1px solid var(--color-border-secondary)}.navbar,.navbar__brand{display:flex;align-items:center}.navbar__brand{gap:var(--space-xs);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.navbar__nav{gap:4px}.navbar__actions,.navbar__nav{display:flex;align-items:center}.navbar__actions{gap:var(--space-xs);margin-left:auto}.navbar__link{padding:6px 12px;font-size:var(--font-size-base);color:var(--color-text-secondary);text-decoration:none;border-radius:var(--radius);cursor:pointer}.navbar__link:hover{color:var(--color-text);background:var(--color-fill-tertiary)}.navbar__link--active{color:var(--color-primary);font-weight:var(--font-weight-medium)}.stepper{display:flex;font-family:var(--font-sans)}.stepper--horizontal{align-items:center}.stepper--vertical{flex-direction:column}.stepper__step{display:flex;align-items:center;gap:var(--space-xs)}.stepper--vertical .stepper__step{align-items:flex-start}.stepper__circle{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:28px;height:28px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-full)}.stepper__circle svg{width:15px;height:15px}.stepper__step--current .stepper__circle{color:var(--color-primary);border-color:var(--color-primary)}.stepper__step--done .stepper__circle{color:var(--color-primary-fg);background:var(--color-primary);border-color:var(--color-primary)}.stepper__step--error .stepper__circle{color:#fff;background:var(--color-danger);border-color:var(--color-danger)}.stepper__content{display:flex;flex-direction:column}.stepper__title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text)}.stepper__step--upcoming .stepper__title{color:var(--color-text-muted);font-weight:var(--font-weight-regular)}.stepper__desc{font-size:var(--font-size-sm);color:var(--color-text-muted)}.stepper__connector{background:var(--color-border-secondary)}.stepper--horizontal .stepper__connector{flex:1 1 auto;height:2px;min-width:24px;margin:0 var(--space-xs)}.stepper--vertical .stepper__connector{width:2px;min-height:24px;margin:4px 0 4px 13px}.stepper__step--done+.stepper__connector{background:var(--color-primary)}.command-root{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:flex-start;justify-content:center;padding:12vh var(--space) var(--space)}.command{position:relative;width:100%;max-width:560px;overflow:hidden;font-family:var(--font-sans);background:var(--color-surface-elevated);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-popup);animation:gg-modal-in var(--duration-slow) var(--ease-out)}.command__search{display:flex;align-items:center;gap:var(--space-xs);height:52px;padding:0 var(--space);border-bottom:1px solid var(--color-border-secondary)}.command__search-icon{display:inline-flex;color:var(--color-text-muted)}.command__search-icon svg{width:18px;height:18px}.command__input{flex:1 1 auto;height:100%;font-family:inherit;font-size:var(--font-size-lg);color:var(--color-text);background:transparent;border:none;outline:none}.command__input::placeholder{color:var(--color-text-muted)}.command__list{max-height:360px;overflow-y:auto;padding:var(--space-xxs)}.command__group-label{padding:8px 12px 4px;font-size:var(--font-size-sm);color:var(--color-text-muted)}.command__item{display:flex;align-items:center;gap:var(--space-xs);padding:8px 12px;color:var(--color-text);border-radius:var(--radius-sm);cursor:pointer}.command__item--active{background:var(--color-fill-tertiary)}.command__item-icon{display:inline-flex;color:var(--color-text-muted)}.command__item-icon svg{width:18px;height:18px}.command__item-shortcut{margin-left:auto}.command__empty{padding:var(--space-lg);text-align:center;color:var(--color-text-muted)}.table-wrap{width:100%;overflow-x:auto}.table{width:100%;border-collapse:collapse;font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text)}.table th{text-align:left;font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:var(--color-fill-quaternary);white-space:nowrap}.table td,.table th{padding:12px 16px;border-bottom:1px solid var(--color-border-secondary)}.table--small td,.table--small th{padding:8px 12px}.table tbody tr:last-child td{border-bottom:none}.table--bordered{border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg)}.table--bordered td,.table--bordered th{border-right:1px solid var(--color-border-secondary)}.table--bordered td:last-child,.table--bordered th:last-child{border-right:none}.table--hoverable tbody tr:hover{background:var(--color-fill-tertiary)}.table--striped tbody tr:nth-child(2n){background:var(--color-fill-quaternary)}.table--clickable tbody tr{cursor:pointer}.table__empty{padding:var(--space-xl);text-align:center;color:var(--color-text-muted)}.table__align-right{text-align:right}.table__align-center{text-align:center}.table__checkbox-col{width:44px}.table__sort{display:inline-flex;align-items:center;gap:4px;padding:0;font:inherit;font-weight:var(--font-weight-medium);color:inherit;background:none;border:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.table__sort-icon{display:inline-flex;color:var(--color-text-disabled)}.table__sort-icon svg{width:12px;height:12px}.table__sort--active .table__sort-icon{color:var(--color-primary)}.datatable__footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space)}.datatable__count{font-size:var(--font-size-sm);color:var(--color-text-muted)}.datatable__count,.list{font-family:var(--font-sans)}.list{background:var(--color-surface)}.list--bordered{border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg);overflow:hidden}.list__header{font-weight:var(--font-weight-semibold);color:var(--color-text);border-bottom:1px solid var(--color-border-secondary)}.list__footer,.list__header{padding:var(--space-sm) var(--space)}.list__footer{font-size:var(--font-size-sm);color:var(--color-text-muted);border-top:1px solid var(--color-border-secondary)}.list__item{padding:var(--space-sm) var(--space);font-size:var(--font-size-base);color:var(--color-text)}.list--split .list__item:not(:last-child){border-bottom:1px solid var(--color-border-secondary)}.list--hoverable .list__item:hover{background:var(--color-fill-tertiary)}.list__empty{padding:var(--space-xl);text-align:center;color:var(--color-text-muted)}.desc-list{font-family:var(--font-sans)}.desc-list--bordered{border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg);overflow:hidden}.desc-list__grid{display:grid}.desc-list__item{display:flex;flex-direction:column;gap:2px;padding:var(--space-sm) var(--space)}.desc-list--horizontal .desc-list__item{flex-direction:row;align-items:baseline;gap:var(--space)}.desc-list--bordered .desc-list__item{border-bottom:1px solid var(--color-border-secondary)}.desc-list__label{min-width:120px;font-size:var(--font-size-sm);color:var(--color-text-muted)}.desc-list__value{color:var(--color-text)}.desc-list__value,.tree{font-size:var(--font-size-base)}.tree{font-family:var(--font-sans)}.tree__row{display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer}.tree__row:hover{background:var(--color-fill-tertiary)}.tree__row--selected{background:var(--color-primary-bg);color:var(--color-primary);font-weight:var(--font-weight-medium)}.tree__toggle{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:0 0 auto;color:var(--color-text-muted);background:none;border:none;cursor:pointer;padding:0}.tree__toggle svg{width:14px;height:14px;transition:transform var(--duration-fast) var(--ease-in-out)}.tree__toggle--open svg{transform:rotate(90deg)}.tree__spacer{width:18px;flex:0 0 auto}.tree__icon{display:inline-flex;color:var(--color-text-muted)}.tree__icon svg{width:16px;height:16px}.calendar{font-family:var(--font-sans)}.calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.calendar__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.calendar__nav{display:inline-flex;gap:4px}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg);overflow:hidden}.calendar__weekday{padding:8px;text-align:center;font-size:var(--font-size-sm);color:var(--color-text-muted);background:var(--color-fill-quaternary);border-bottom:1px solid var(--color-border-secondary)}.calendar__cell{min-height:88px;padding:4px 6px;text-align:left;background:var(--color-surface);border:none;border-right:1px solid var(--color-border-secondary);border-bottom:1px solid var(--color-border-secondary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-in-out);font:inherit}.calendar__cell:hover{background:var(--color-fill-tertiary)}.calendar__cell:nth-child(7n){border-right:none}.calendar__cell--outside{color:var(--color-text-disabled);background:var(--color-bg)}.calendar__date{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:var(--font-size-sm);border-radius:var(--radius-full)}.calendar__cell--today .calendar__date{border:1px solid var(--color-primary);color:var(--color-primary)}.calendar__cell--selected .calendar__date{color:var(--color-primary-fg);background:var(--color-primary)}.calendar__cell-content{margin-top:2px;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.kanban{display:flex;gap:var(--space);align-items:flex-start;overflow-x:auto;font-family:var(--font-sans)}.kanban__column{flex:0 0 280px;display:flex;flex-direction:column;background:var(--color-bg);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg)}.kanban__column-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space);font-weight:var(--font-weight-semibold);color:var(--color-text);border-bottom:1px solid var(--color-border-secondary)}.kanban__count{font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);color:var(--color-text-muted)}.kanban__cards{display:flex;flex-direction:column;gap:var(--space-xs);min-height:48px;padding:var(--space-sm);transition:background-color var(--duration-fast) var(--ease-in-out)}.kanban__cards--over{background:var(--color-primary-bg)}.kanban__card{padding:var(--space-sm);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-secondary);border-radius:var(--radius);box-shadow:var(--shadow-card);cursor:-webkit-grab;cursor:grab}.kanban__card:active{cursor:-webkit-grabbing;cursor:grabbing}.kanban__card--dragging{opacity:.4}.chart{width:100%;font-family:var(--font-sans)}.chart svg{display:block;width:100%;overflow:visible}.chart__grid-line{stroke:var(--color-border-secondary);stroke-width:1}.chart__axis-text{fill:var(--color-text-muted);font-size:11px}.chart__legend{display:flex;flex-wrap:wrap;gap:var(--space);margin-top:var(--space-xs)}.chart__legend-item{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.chart__legend-swatch{width:10px;height:10px;border-radius:2px;flex:0 0 auto}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}