.btn{padding:var(--space-sm)var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);min-height:var(--touch-target-min);min-width:var(--touch-target-min);cursor:pointer;transition:opacity var(--transition-fast),background var(--transition-fast);text-align:center;white-space:nowrap;border:none;justify-content:center;align-items:center;display:inline-flex}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover{background:var(--color-primary-dark)}.btn--secondary{background:var(--color-bg-elevated);color:var(--color-text);border:1px solid var(--color-border)}.btn--secondary:hover{background:var(--color-border)}.btn--sm{padding:var(--space-xs)var(--space-sm);font-size:var(--font-size-xs);min-height:32px}.btn--offline{opacity:.45;cursor:not-allowed}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:1.2}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}p{margin-bottom:var(--space-md)}.text--muted{color:var(--color-text-muted)}.text--error{color:var(--color-error)}.text--success{color:var(--color-success)}