.ws-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1;flex:none;font-style:normal}
.ws-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--control-md);padding:0 20px;border-radius:var(--radius-md);border:1px solid transparent;font-family:var(--font-body);font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:1;letter-spacing:var(--tracking-label);cursor:pointer;white-space:nowrap;text-decoration:none;transition:background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}
.ws-btn .ws-icon{font-size:18px}
.ws-btn--sm{height:var(--control-sm);padding:0 14px;font-size:var(--text-sm);border-radius:var(--radius-sm)}
.ws-btn--sm .ws-icon{font-size:16px}
.ws-btn--lg{height:var(--control-lg);padding:0 26px;font-size:var(--text-lg)}
.ws-btn--lg .ws-icon{font-size:20px}
.ws-btn--full{width:100%}
.ws-btn--primary{background:var(--action-primary);color:var(--text-on-primary)}
.ws-btn--primary:hover{background:var(--action-primary-hover)}
.ws-btn--primary:active{background:var(--action-primary-pressed)}
.ws-btn--secondary{background:var(--action-secondary-bg);color:var(--sage-700);border-color:var(--sage-400)}
.ws-btn--secondary:hover{background:var(--action-secondary-hover);border-color:var(--sage-500)}
.ws-btn--secondary:active{background:var(--sage-100)}
.ws-btn--ghost{background:transparent;color:var(--sage-700)}
.ws-btn--ghost:hover{background:var(--surface-hover)}
.ws-btn--ghost:active{background:var(--stone-150)}
.ws-btn--danger{background:var(--surface-card);color:var(--error-fg);border-color:var(--error-border)}
.ws-btn--danger:hover{background:var(--error-bg);border-color:var(--error-fg)}
.ws-btn:disabled,.ws-btn[aria-disabled="true"]{background:var(--stone-150);color:var(--stone-500);border-color:transparent;cursor:not-allowed}
.ws-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:var(--control-md);height:var(--control-md);border-radius:var(--radius-md);border:1px solid transparent;background:transparent;color:var(--text-secondary);cursor:pointer;flex:none;transition:background-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}
.ws-iconbtn .ws-icon{font-size:20px}
.ws-iconbtn--sm{width:var(--control-sm);height:var(--control-sm);border-radius:var(--radius-sm)}
.ws-iconbtn--sm .ws-icon{font-size:18px}
.ws-iconbtn--ghost:hover{background:var(--surface-hover);color:var(--text-body)}
.ws-iconbtn--secondary{background:var(--surface-card);border-color:var(--border-default);color:var(--sage-700)}
.ws-iconbtn--secondary:hover{background:var(--action-secondary-hover);border-color:var(--sage-400)}
.ws-iconbtn--primary{background:var(--action-primary);color:var(--text-on-primary)}
.ws-iconbtn--primary:hover{background:var(--action-primary-hover)}
.ws-iconbtn:disabled{color:var(--stone-400);background:transparent;cursor:not-allowed}
