.button{justify-content:center;align-items:center;gap:var(--space-2);border:var(--focus-width) solid transparent;border-radius:var(--radius-md);cursor:pointer;padding-inline:var(--control-padding-inline);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);transition:background-color var(--motion-fast) ease, border-color var(--motion-fast) ease, color var(--motion-fast) ease, transform var(--motion-fast) ease;display:inline-flex}.button:active:not(:disabled){transform:translateY(var(--focus-width))}.button:disabled{cursor:not-allowed;opacity:.55}.button--small{min-height:var(--control-height-sm);font-size:var(--font-size-sm)}.button--medium{min-height:var(--control-height-md)}.button--full{width:100%}.button--primary{color:var(--color-text-on-action);background:var(--color-action-primary)}.button--primary:hover:not(:disabled){background:var(--color-action-primary-hover)}.button--secondary{color:var(--color-action-primary);background:var(--color-surface-raised);border-color:var(--color-border-strong)}.button--secondary:hover:not(:disabled),.button--quiet:hover:not(:disabled){background:var(--color-action-soft)}.button--quiet{color:var(--color-text-secondary);background:0 0}.button--danger{color:var(--color-status-danger);background:var(--color-status-danger-soft)}.button--danger-quiet{color:var(--color-status-danger);background:0 0}.button--danger-quiet:hover:not(:disabled){background:var(--color-status-danger-soft)}a.button{text-decoration:none}.badge{min-height:var(--control-height-sm);padding-inline:var(--space-3);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);white-space:nowrap;align-items:center;display:inline-flex}.badge--neutral{color:var(--color-text-secondary);background:var(--color-status-neutral-soft)}.badge--success{color:var(--color-status-success);background:var(--color-status-success-soft)}.badge--progress{color:var(--color-status-progress);background:var(--color-status-progress-soft)}.badge--warning{color:var(--color-status-warning);background:var(--color-status-warning-soft)}.badge--danger{color:var(--color-status-danger);background:var(--color-status-danger-soft)}.progress-block{gap:var(--space-2);display:grid}.progress-label-row{justify-content:space-between;align-items:center;gap:var(--space-3);color:var(--color-text-secondary);font-size:var(--font-size-xs);display:flex}.progress-track{block-size:var(--progress-height);border-radius:var(--radius-pill);background:var(--color-surface-sunken);overflow:hidden}.progress-value{border-radius:inherit;background:var(--color-action-primary);block-size:100%;transition:inline-size var(--motion-normal) ease;display:block}.progress-value--success{background:var(--color-status-success)}.progress-value--warning{background:var(--color-status-warning)}.progress-value--danger{background:var(--color-status-danger)}.segmented-control{gap:var(--space-2);min-inline-size:0;margin:var(--space-0);padding:var(--space-1);border:var(--focus-width) solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-surface-soft);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.segment-option{align-content:center;gap:var(--space-1);min-height:var(--control-height-md);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-secondary);text-align:center;display:grid;position:relative}.segment-option:hover{background:var(--color-action-soft)}.segment-option--selected{color:var(--color-action-primary);background:var(--color-surface-raised);box-shadow:var(--shadow-raised)}.segment-option input{inline-size:var(--space-1);block-size:var(--space-1);opacity:0;position:absolute}.segmented-control--disabled .segment-option{cursor:default}.segmented-control--disabled .segment-option:hover{background:0 0}.segmented-control--disabled .segment-option:not(.segment-option--selected){opacity:.55}.segment-option:has(input:focus-visible){outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--space-1)}.segment-option__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.segment-option__description{color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.checkbox-row{align-items:start;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);cursor:pointer;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"control copy";display:grid}.checkbox-row:hover{background:var(--color-surface-soft)}.checkbox-row input{inline-size:var(--space-1);block-size:var(--space-1);opacity:0;position:absolute}.checkbox-control{inline-size:var(--icon-size-md);block-size:var(--icon-size-md);border:var(--focus-width) solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface-raised);grid-area:control;place-items:center;margin-block-start:var(--space-1);display:grid}.checkbox-row input:checked+.checkbox-control{border-color:var(--color-action-primary);background:var(--color-action-primary)}.checkbox-row input:checked+.checkbox-control:after{content:"✓";color:var(--color-text-on-action);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.checkbox-row input:focus-visible+.checkbox-control{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--space-1)}.checkbox-copy{gap:var(--space-1);grid-area:copy;display:grid}.checkbox-label{font-weight:var(--font-weight-medium)}.checkbox-description{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.async-state{justify-items:center;gap:var(--space-3);padding:var(--space-10);border:var(--focus-width) dashed var(--color-border-strong);border-radius:var(--radius-xl);text-align:center;display:grid}.async-state h2,.async-state p{margin:var(--space-0)}.async-state p{max-inline-size:38rem;color:var(--color-text-secondary)}.async-state__mark{inline-size:var(--space-8);block-size:var(--space-8);border-radius:var(--radius-pill);background:var(--color-status-neutral-soft)}.async-state--loading .async-state__mark{border:var(--space-1) solid var(--color-action-soft);border-block-start-color:var(--color-action-primary);animation:1s linear infinite async-spin}.async-state--error .async-state__mark{background:var(--color-status-danger-soft)}.visually-hidden{inline-size:var(--space-1);block-size:var(--space-1);margin:calc(var(--space-1) * -1);padding:var(--space-0);border:var(--space-0);clip:rect(0 0 0 0);white-space:nowrap;position:absolute;overflow:hidden}.direction-preview{padding:var(--space-4);border:var(--focus-width) solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface-raised)}.direction-preview h2{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-block-start:var(--space-0)}@keyframes async-spin{to{transform:rotate(1turn)}}@media (width<=42rem){.segmented-control:has(>.segment-option:nth-of-type(3)){grid-auto-flow:row}}.async-state--loading:after{block-size:4.5rem;inline-size:min(28rem,100%);border-radius:var(--radius-md);background:linear-gradient(90deg, transparent 0%, var(--color-surface-raised) 50%, transparent 100%) 0 0 / 200% 100%, repeating-linear-gradient(var(--color-surface-sunken) 0 .75rem, transparent .75rem 1.25rem);content:"";margin-block-start:var(--space-4);animation:1.4s linear infinite shimmer;display:block}.list-toolbar{justify-content:space-between;align-items:end;gap:var(--space-4);flex-wrap:wrap;display:flex}.list-toolbar .field{flex:1 1 var(--card-min-width);max-inline-size:var(--field-max-width)}.list-footer{justify-content:space-between;align-items:center;gap:var(--space-4);padding-block:var(--space-4);color:var(--color-text-secondary);flex-wrap:wrap;display:flex}.breadcrumb__list{align-items:center;gap:var(--space-1) var(--space-2);margin:var(--space-0);padding:var(--space-0);color:var(--color-text-tertiary);font-size:var(--font-size-sm);flex-wrap:wrap;list-style:none;display:flex}.breadcrumb__item{align-items:center;gap:var(--space-2);min-inline-size:0;display:inline-flex}.breadcrumb__item+.breadcrumb__item:before{color:var(--color-text-tertiary);content:"‹"}.breadcrumb__item a{color:var(--color-text-secondary);text-decoration:none}.breadcrumb__item a:hover{color:var(--color-action-primary);text-decoration:underline}.breadcrumb__item [aria-current=page]{color:var(--color-text-primary)}@media (pointer:coarse){.button,.tabs__tab,.segment-option,.field__control,.menu__trigger,.menu__item,.app-nav__link,.checkbox-row,.list-footer .button{min-block-size:var(--touch-target)}input[type=checkbox],input[type=radio]{block-size:1.25rem;inline-size:1.25rem}}.truncate{text-overflow:ellipsis;white-space:nowrap;min-inline-size:0;display:block;overflow:hidden}.dialog{z-index:var(--z-modal);inset:var(--space-0);padding:var(--space-4);place-items:center;display:grid;position:fixed}.dialog--drawer{padding:var(--space-0);place-items:stretch end}.dialog__backdrop{inset:var(--space-0);background:var(--color-surface-overlay);position:absolute}.dialog__surface{gap:var(--space-4);inline-size:min(100%, var(--dialog-width));max-block-size:100%;padding:var(--space-6);border-radius:var(--radius-lg);background:var(--color-surface-raised);box-shadow:var(--shadow-floating);align-content:start;display:grid;position:relative;overflow-y:auto}.dialog__surface:focus-visible{outline:var(--focus-width) solid var(--color-focus)}.dialog--drawer .dialog__surface{inline-size:min(100%, var(--drawer-width));border-radius:var(--space-0);block-size:100%}.dialog__header{justify-content:space-between;align-items:start;gap:var(--space-3);display:flex}.dialog__title{margin:var(--space-0);font-size:var(--font-size-lg);line-height:var(--line-height-tight)}.dialog__description{margin:var(--space-0);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.dialog__body{gap:var(--space-4);min-inline-size:0;display:grid}.dialog__actions{justify-content:flex-start;gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=30rem){.dialog--modal{padding:var(--space-2)}.dialog__surface{padding:var(--space-4)}}.dialog__backdrop{animation:fade-in var(--motion-normal) ease both}.dialog__surface{animation:scale-in var(--motion-normal) var(--ease-out) both}.dialog--drawer .dialog__surface{animation:drawer-in var(--motion-slow) var(--ease-out) both}@keyframes drawer-in{0%{transform:translate(-100%)}to{transform:none}}.dialog--wide .dialog__surface{inline-size:min(100%,52rem)}
