@keyframes skeleton-shimmer{0%{background-position:200%}to{background-position:-200%}}.skeleton{background:linear-gradient(90deg, var(--color-skeleton-base) 25%, var(--color-skeleton-highlight) 50%, var(--color-skeleton-base) 75%);animation:skeleton-shimmer calc(var(--duration-skeleton) * 3) linear infinite;border-radius:var(--skeleton-border-radius);background-size:400% 100%;display:block}.skeleton--text{width:100%;height:var(--skeleton-height-text)}.skeleton--circle{width:var(--skeleton-circle-size,var(--avatar-size-lg));height:var(--skeleton-circle-size,var(--avatar-size-lg));border-radius:var(--border-radius-full)}.skeleton--rect{width:100%;height:var(--skeleton-height-rect)}.skeleton-group{gap:var(--space-inline-gap);flex-direction:column;width:100%;display:flex}.skeleton__sr-label{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.skeleton{background:var(--color-skeleton-base);animation:none}}
.tag{align-items:center;gap:var(--space-inline-gap);padding:var(--tag-padding-y) var(--tag-padding-x);font-family:var(--font-family-base);font-size:var(--font-size-caption);font-weight:var(--tag-font-weight);border-radius:var(--border-radius-pill);border:var(--border-width-default) solid var(--color-border-default);background:var(--color-surface-secondary);color:var(--color-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;line-height:1;display:inline-flex}.tag--accent{background:var(--color-accent-default);color:var(--color-accent-foreground);border-color:var(--color-accent-default)}.tag--muted{background:var(--tag-muted-background);color:var(--color-text-secondary);border-color:var(--color-border-default)}button.tag,[role=button].tag{appearance:none;cursor:pointer;transition:opacity var(--duration-interaction) var(--easing-default)}button.tag:hover,[role=button].tag:hover{opacity:.8}button.tag:focus-visible,[role=button].tag:focus-visible{outline:var(--focus-ring-width) solid var(--color-border-focus);outline-offset:var(--focus-ring-offset)}@media (prefers-reduced-motion:reduce){button.tag,[role=button].tag{transition:none}}.tag__icon{flex-shrink:0;align-items:center;font-size:.9em;display:flex}.tag__remove{cursor:pointer;color:currentColor;opacity:.6;background:0 0;border:none;justify-content:center;align-items:center;margin:-2px -2px -2px 0;padding:0;font-size:1.1em;line-height:1;display:flex;position:relative}.tag__remove:after{content:"";position:absolute;inset:-6px}.tag__remove:hover{opacity:1}.tag__remove:focus-visible{outline:var(--focus-ring-width) solid var(--color-border-focus);outline-offset:var(--focus-ring-offset);border-radius:2px}
.textarea-field{gap:var(--space-inline-gap);flex-direction:column;display:flex}.textarea-field__label{font-family:var(--font-family-base);font-size:var(--font-size-small);font-weight:var(--font-weight-label);color:var(--color-text-primary);line-height:var(--line-height-label)}.textarea-field__wrapper{background:var(--color-surface-primary);border:var(--border-width-interactive) solid var(--color-border-default);border-radius:var(--border-radius-interactive);transition:border-color var(--duration-interaction) var(--easing-default);box-sizing:border-box;display:flex}.textarea-field__wrapper:hover:not(.textarea-field__wrapper--disabled){border-color:var(--color-border-strong)}.textarea-field__wrapper:focus-within:not(.textarea-field__wrapper--disabled){border-color:var(--color-border-focus);outline:var(--focus-ring-width) solid var(--color-border-focus);outline-offset:var(--focus-ring-offset)}.textarea-field__wrapper--disabled{background:var(--color-surface-secondary);opacity:var(--opacity-disabled);cursor:not-allowed}.textarea-field__textarea{width:100%;padding:var(--space-control-padding-y) var(--space-control-padding-x);font-family:var(--font-family-base);font-size:var(--font-size-control);color:var(--color-text-primary);resize:vertical;cursor:inherit;box-sizing:border-box;line-height:var(--line-height-control);background:0 0;border:none;outline:none;flex:1}.textarea-field__textarea::placeholder{color:var(--color-text-secondary)}.textarea-field__textarea:disabled{cursor:not-allowed}.textarea-field--error .textarea-field__wrapper{border-color:var(--color-feedback-error)}.textarea-field--error .textarea-field__wrapper:focus-within:not(.textarea-field__wrapper--disabled){border-color:var(--color-feedback-error);outline-color:var(--color-feedback-error)}.textarea-field__hint{font-family:var(--font-family-base);font-size:var(--font-size-caption);color:var(--color-text-secondary);line-height:var(--line-height-caption)}.textarea-field--error .textarea-field__hint{color:var(--color-feedback-error)}.textarea-field__count{font-family:var(--font-family-base);font-size:var(--font-size-caption);color:var(--color-text-secondary);text-align:right;line-height:1}@media (prefers-reduced-motion:reduce){.textarea-field__wrapper{transition:none}}
.dialog__overlay{background:var(--color-surface-tertiary);animation:dialog-overlay-in var(--duration-transition) var(--easing-out);position:fixed;inset:0}.dialog__overlay[data-state=closed]{animation:dialog-overlay-out var(--duration-transition) var(--easing-out)}@keyframes dialog-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-overlay-out{0%{opacity:1}to{opacity:0}}.dialog__content{width:calc(100% - var(--space-component-gap) * 2);max-width:var(--dialog-max-width);background:var(--color-surface-primary);border:var(--border-width-default) solid var(--color-border-default);border-radius:var(--border-radius-component);padding:var(--space-dialog-padding-mobile);gap:var(--space-element-gap);box-sizing:border-box;animation:dialog-content-in var(--duration-transition) var(--easing-out);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@media (min-width:768px){.dialog__content{padding:var(--space-dialog-padding-tablet)}}@media (min-width:1024px){.dialog__content{padding:var(--space-dialog-padding-desktop)}}.dialog__content[data-state=closed]{animation:dialog-content-out var(--duration-transition) var(--easing-out)}@keyframes dialog-content-in{0%{opacity:0;transform:translate(-50%, calc(-50% + var(--dialog-entrance-offset)))}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes dialog-content-out{0%{opacity:1;transform:translate(-50%,-50%)}to{opacity:0;transform:translate(-50%, calc(-50% + var(--dialog-entrance-offset)))}}.dialog__content--sm{max-width:var(--dialog-max-width-sm)}.dialog__content--lg{max-width:var(--dialog-max-width-lg)}.dialog__content--xl{max-width:var(--dialog-max-width-xl)}.dialog__content--scrollable{max-height:calc(90vh - var(--space-component-gap) * 2)}.dialog__content--scrollable .dialog__body{flex:1;min-height:0;overflow-y:auto}.dialog__header{justify-content:space-between;align-items:flex-start;gap:var(--space-inline-gap);display:flex}.dialog__title{font-family:var(--font-family-heading);font-size:var(--font-size-h4);font-weight:var(--font-weight-title);line-height:var(--line-height-h4);letter-spacing:var(--letter-spacing-heading);color:var(--color-text-primary);margin:0}.dialog__description{font-size:var(--font-size-body);color:var(--color-text-secondary);line-height:var(--line-height-body);margin:0}.dialog__close{width:var(--dialog-close-size);height:var(--dialog-close-size);border-radius:var(--border-radius-interactive);color:var(--color-text-secondary);cursor:pointer;transition:color var(--duration-interaction) var(--easing-default);background:0 0;border:none;outline:none;flex-shrink:0;justify-content:center;align-items:center;margin-top:-2px;padding:0;display:flex;position:relative}.dialog__close:before{content:"";inset:calc((var(--size-touch-target) - var(--dialog-close-size)) / -2);position:absolute}.dialog__close:hover{color:var(--color-text-primary)}.dialog__close:focus-visible{outline:var(--focus-ring-width) solid var(--color-border-focus);outline-offset:var(--focus-ring-offset)}.dialog__body{gap:var(--space-element-gap);flex-direction:column;display:flex}.dialog__footer{justify-content:flex-end;align-items:center;gap:var(--space-inline-gap);margin-top:var(--space-element-gap);display:flex}@media (prefers-reduced-motion:reduce){.dialog__overlay,.dialog__overlay[data-state=closed],.dialog__content,.dialog__content[data-state=closed]{animation:none}}
