.ui-btn{justify-content:center;align-items:center;gap:var(--space-2);min-block-size:36px;padding-inline:var(--space-4);border-radius:var(--radius-md);font-size:var(--fs-base);font-weight:var(--fw-semibold);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);border:1px solid #0000;line-height:1.2;text-decoration:none;display:inline-flex}.ui-btn:hover{text-decoration:none}.ui-btn:disabled,.ui-btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.ui-btn--primary{background:var(--primary);color:var(--on-primary)}.ui-btn--primary:hover:not(:disabled){background:var(--primary-hover)}.ui-btn--secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.ui-btn--secondary:hover:not(:disabled){background:var(--surface-2)}.ui-btn--danger{background:var(--danger-solid);color:var(--on-primary)}.ui-btn--danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger-solid) 86%, #000)}.ui-btn--danger-quiet{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb, var(--danger) 30%, transparent)}.ui-btn--danger-quiet:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 18%, transparent)}.ui-btn--ghost{color:var(--text-2);background:0 0}.ui-btn--ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.ui-btn--sm{min-block-size:30px;padding-inline:var(--space-3);font-size:var(--fs-sm)}.ui-btn--icon{inline-size:36px;padding-inline:0}.ui-btn--icon.ui-btn--sm{inline-size:30px}.ui-btn--block{inline-size:100%}@media (pointer:coarse),(width<=768px){.ui-btn,.ui-btn--sm{min-block-size:var(--touch)}.ui-btn--icon,.ui-btn--icon.ui-btn--sm{inline-size:var(--touch)}}.ui-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);min-inline-size:0}.ui-card--padded{padding:var(--space-5)}.ui-card--flat{box-shadow:none}.ui-card--interactive{transition:border-color var(--dur-fast) var(--ease)}.ui-card--interactive:hover{border-color:var(--border-strong)}.ui-card__header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-block-end:var(--space-4);display:flex}.ui-card__title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text)}.ui-badge{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-xs);font-weight:var(--fw-semibold);white-space:nowrap;line-height:1.4;display:inline-flex}.ui-badge--success{background:var(--success-soft);color:var(--success)}.ui-badge--warning{background:var(--warning-soft);color:var(--warning)}.ui-badge--danger{background:var(--danger-soft);color:var(--danger)}.ui-badge--info,.ui-badge--primary{background:var(--primary-soft);color:var(--primary-text)}.ui-badge__dot{background:currentColor;border-radius:50%;flex-shrink:0;block-size:6px;inline-size:6px}.ui-field{gap:var(--space-1);flex-direction:column;min-inline-size:0;display:flex}.ui-field__label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-2)}.ui-field__hint{font-size:var(--fs-xs);color:var(--text-3)}.ui-field__error{font-size:var(--fs-xs);color:var(--danger)}.ui-input{min-block-size:36px;inline-size:100%;padding:var(--space-2) var(--space-3);background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:var(--fs-base);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}textarea.ui-input{resize:vertical;min-block-size:88px;line-height:var(--lh-base)}.ui-input:hover:not(:disabled){border-color:var(--text-3)}.ui-input:focus-visible{border-color:var(--focus);box-shadow:var(--ring);outline:none}.ui-input:disabled{background:var(--surface-2);color:var(--text-3)}.ui-input[aria-invalid=true]{border-color:var(--danger)}@media (pointer:coarse),(width<=768px){.ui-input{min-block-size:var(--touch);font-size:1rem}}.ui-modal-overlay{z-index:var(--z-modal);padding:var(--space-4);background:var(--overlay);animation:ui-fade var(--dur) var(--ease);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ui-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);max-block-size:calc(100dvh - 2rem);inline-size:100%;max-inline-size:480px;box-shadow:var(--shadow-lg);animation:ui-rise var(--dur) var(--ease);flex-direction:column;display:flex}.ui-modal--sm{max-inline-size:400px}.ui-modal--lg{max-inline-size:720px}.ui-modal__header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-block-end:1px solid var(--border);display:flex}.ui-modal__title{align-items:center;gap:var(--space-2);font-size:var(--fs-lg);font-weight:var(--fw-semibold);display:flex}.ui-modal__body{padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex;overflow-y:auto}.ui-modal__footer{justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-block-start:1px solid var(--border);flex-wrap:wrap;display:flex}:where(.ui-modal__body) label:not(.ui-switch){font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-2)}:where(.ui-modal__body) :is(input:not([type=checkbox],[type=radio],[type=file],[type=range]),select,textarea){min-block-size:36px;inline-size:100%;padding:var(--space-2) var(--space-3);background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:var(--fs-base)}:where(.ui-modal__body) :is(input,select,textarea):focus-visible{border-color:var(--focus);box-shadow:var(--ring)}@keyframes ui-fade{0%{opacity:0}}@keyframes ui-rise{0%{opacity:0;transform:translateY(8px)}}@media (width<=480px){.ui-modal-overlay{align-items:flex-end;padding:0}.ui-modal{border-end-end-radius:0;border-end-start-radius:0;max-inline-size:none}.ui-modal__footer>.ui-btn{flex:auto}}.ui-empty{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-4);text-align:center;color:var(--text-3);flex-direction:column;display:flex}.ui-empty__icon{block-size:48px;inline-size:48px;border-radius:var(--radius-full);background:var(--surface-2);color:var(--text-3);place-items:center;margin-block-end:var(--space-1);display:grid}.ui-empty__title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text)}.ui-empty__text{max-inline-size:38ch;font-size:var(--fs-base)}.ui-empty__action{margin-block-start:var(--space-3)}.page-header{align-items:center;column-gap:var(--space-4);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title actions""subtitle subtitle";inline-size:100%;margin-block-end:var(--space-6);display:grid}.page-header__title-group{align-items:center;gap:var(--space-3);grid-area:title;min-inline-size:0;display:flex}.page-header__title-group h1{overflow-wrap:anywhere}.page-header__badge{display:inline-flex}.page-header__actions{justify-self:end;align-items:center;gap:var(--space-3);flex-wrap:wrap;grid-area:actions;display:flex}.page-header__subtitle{font-size:var(--fs-base);color:var(--text-3);grid-area:subtitle;margin-block-start:var(--space-1)}@media (width<=768px){.page-header{grid-template-columns:minmax(0,1fr);grid-template-areas:"title""subtitle""actions";column-gap:0}.page-header__title-group h1{font-size:var(--fs-xl)}.page-header__actions{justify-self:stretch;margin-block-start:var(--space-3)}}@media (width<=480px){.page-header__actions>*{flex:auto}}.ui-skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-hover) 50%, var(--surface-2) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.4s linear infinite ui-shimmer;display:block}.ui-skeleton--circle{border-radius:50%}@keyframes ui-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.ui-skeleton{background:var(--surface-2);animation:none}}.ui-alert{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);color:var(--text);font-size:var(--fs-base);display:flex}.ui-alert--danger{background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 35%, transparent);color:var(--danger)}.ui-alert--warning{background:var(--warning-soft);border-color:color-mix(in srgb, var(--warning) 35%, transparent);color:var(--warning)}.ui-alert--success{background:var(--success-soft);border-color:color-mix(in srgb, var(--success) 35%, transparent);color:var(--success)}.ui-alert--info{background:var(--primary-soft);border-color:color-mix(in srgb, var(--primary-text) 35%, transparent);color:var(--primary-text)}.ui-switch{cursor:pointer;flex-shrink:0;align-items:center;block-size:24px;inline-size:44px;display:inline-flex;position:relative}.ui-switch__input{opacity:0;block-size:100%;inline-size:100%;cursor:inherit;margin:0;position:absolute;inset:0}.ui-switch__track{border-radius:var(--radius-full);background:var(--border-strong);block-size:100%;inline-size:100%;transition:background-color var(--dur) var(--ease);pointer-events:none}.ui-switch__track:before{content:"";background:var(--surface);block-size:18px;inline-size:18px;box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease);border-radius:50%;position:absolute;inset-block-start:3px;inset-inline-start:3px}.ui-switch__input:checked+.ui-switch__track{background:var(--primary)}.ui-switch__input:checked+.ui-switch__track:before{transform:translate(20px)}[dir=rtl] .ui-switch__input:checked+.ui-switch__track:before{transform:translate(-20px)}.ui-switch__input:focus-visible+.ui-switch__track{outline:2px solid var(--focus);outline-offset:2px}.ui-switch__input:disabled+.ui-switch__track{opacity:.5}@media (pointer:coarse){.ui-switch{block-size:var(--touch);inline-size:52px}.ui-switch__track{align-self:center;block-size:28px}.ui-switch__track:before{block-size:22px;inline-size:22px;margin-block-start:-11px;inset-block-start:50%}.ui-switch__input:checked+.ui-switch__track:before{transform:translate(24px)}[dir=rtl] .ui-switch__input:checked+.ui-switch__track:before{transform:translate(-24px)}}
