.button{min-height:var(--tap-target-min);padding:var(--space-2) var(--space-5);border-radius:var(--radius-pill);background:var(--color-primary);color:var(--color-primary-contrast);font-family:var(--font-family-base);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);box-shadow:var(--shadow-soft);cursor:pointer;border:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.button:hover:not(:disabled){background:var(--color-primary-strong);box-shadow:var(--shadow-lifted)}.button:disabled{opacity:.5;cursor:not-allowed}.button--quiet{background:var(--color-surface-muted);color:var(--color-text);box-shadow:none}.card{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-soft);display:block}.card__title{margin:0 0 var(--space-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight)}.field{gap:var(--space-1);flex-direction:column;display:flex}.field__label{color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.field__input{min-height:var(--tap-target-min);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-interactive);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-family:var(--font-family-base);font-size:var(--font-size-md)}.field__input::placeholder{color:var(--color-text-muted)}.field__input--multiline{min-height:calc(var(--tap-target-min) * 2);resize:vertical;line-height:var(--line-height-base)}.page{gap:var(--space-5);max-width:480px;padding:var(--space-5) var(--space-4);flex-direction:column;margin:0 auto;display:flex}.page__title{font-size:var(--font-size-xl);margin:0}.page__lead{color:var(--color-text-muted);margin:0}.page--tabbed{padding-bottom:calc(var(--tap-target-min) + var(--space-6))}.tabbar{z-index:1;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);background:var(--color-surface);display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar__tab{max-width:200px;min-height:var(--tap-target-min);border-radius:var(--radius-pill);color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);flex:1 1 0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.tabbar__tab--active{background:var(--color-primary);color:var(--color-primary-contrast)}.swatches{gap:var(--space-2);border:none;flex-wrap:wrap;margin:0;padding:0;display:flex}.swatches__legend{color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);padding:0}.swatch{align-items:center;gap:var(--space-2);min-height:var(--tap-target-min);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--font-size-sm);cursor:pointer;display:inline-flex}.swatch__input{opacity:0;width:1px;height:1px;position:absolute}.swatch:has(.swatch__input:checked){border-color:var(--color-border-interactive);background:var(--color-surface-muted);font-weight:var(--font-weight-bold)}.swatch:has(.swatch__input:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}.swatch__chip{border:1px solid var(--color-border);border-radius:var(--radius-pill);width:20px;height:20px}.stack{gap:var(--space-4);flex-direction:column;display:flex}.list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.list__link{color:inherit;text-decoration:none;display:block}.muted{color:var(--color-text-muted);margin:0}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-danger);color:var(--color-text);margin:0}.avatar{border-radius:var(--radius-pill);object-fit:cover;flex-shrink:0}
