.prim-button{justify-content:center;align-items:center;gap:var(--space-2);font-weight:var(--weight-medium);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);border:1px solid #0000;display:inline-flex}.prim-button:disabled{cursor:not-allowed;opacity:.55}.prim-button--sm{height:2rem;padding-inline:var(--space-3);font-size:var(--text-sm)}.prim-button--md{height:2.5rem;padding-inline:var(--space-4);font-size:var(--text-base)}.prim-button--primary{background:var(--color-accent);color:var(--color-accent-fg);border-color:var(--color-accent)}.prim-button--primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.prim-button--primary:active:not(:disabled){background:var(--color-accent-active);border-color:var(--color-accent-active)}.prim-button--ghost{color:var(--color-text);border-color:var(--color-border);background:0 0}.prim-button--ghost:hover:not(:disabled){background:var(--color-surface-sunken);border-color:var(--color-border-strong)}.prim-button--danger{background:var(--color-danger);color:var(--color-neutral-0);border-color:var(--color-danger)}.prim-button--danger:hover:not(:disabled){filter:brightness(1.1)}
.prim-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.prim-card--padded{padding:var(--space-6)}.prim-card--elevated{box-shadow:var(--shadow-sm);border-color:#0000}
.prim-field{gap:var(--space-1);flex-direction:column;display:flex}.prim-field__label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text)}.prim-field__hint{font-size:var(--text-xs);color:var(--color-text-muted);margin:0}.prim-field__error{font-size:var(--text-xs);color:var(--color-danger);margin:0}
.prim-input{width:100%;height:2.5rem;padding:0 var(--space-3);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);transition:border-color var(--duration-fast) var(--ease-out);display:block}.prim-input::placeholder{color:var(--color-text-subtle)}.prim-input:hover{border-color:var(--color-border-strong)}.prim-input:focus{border-color:var(--color-accent)}.prim-input:disabled{background:var(--color-surface-sunken);color:var(--color-text-muted);cursor:not-allowed}.prim-input--invalid,.prim-input--invalid:focus{border-color:var(--color-danger)}
