.ws-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);color:var(--text-body);min-width:0}
.ws-card--interactive{cursor:pointer;transition:box-shadow var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard)}
.ws-card--interactive:hover{box-shadow:var(--shadow-md);border-color:var(--border-default)}
.ws-card--selected,.ws-card--selected:hover{border-color:var(--border-selected);box-shadow:0 0 0 1px var(--border-selected)}
.ws-card--muted{background:var(--surface-muted);box-shadow:none}
.ws-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px 0}
.ws-card__eyebrow{font:var(--type-caption);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-secondary);margin-bottom:4px}
.ws-card__title{font:var(--type-h3);color:var(--text-strong)}
.ws-card__actions{display:flex;gap:8px;flex:none}
.ws-card__body{padding:16px 24px 24px}
.ws-card__body--flush{padding:0}
.ws-card--compact .ws-card__head{padding:16px 18px 0}
.ws-card--compact .ws-card__body{padding:12px 18px 18px}
.ws-card__foot{display:flex;gap:12px;justify-content:flex-end;padding:16px 24px;border-top:1px solid var(--border-subtle)}
.ws-badge{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-muted);color:var(--text-body);font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-semibold);line-height:1;white-space:nowrap}
.ws-badge .ws-icon{font-size:15px}
.ws-badge--primary{background:var(--sage-100);border-color:var(--sage-200);color:var(--sage-700)}
.ws-badge--success{background:var(--success-bg);border-color:var(--success-border);color:var(--success-fg)}
.ws-badge--warning{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-fg)}
.ws-badge--error{background:var(--error-bg);border-color:var(--error-border);color:var(--error-fg)}
.ws-badge--note{background:var(--note-bg);border-color:var(--note-border);color:var(--note-fg)}
.ws-badge--solid{background:var(--action-primary);border-color:var(--action-primary);color:var(--text-on-primary)}
.ws-tag{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-body);font:var(--type-body-sm);font-weight:var(--weight-medium);white-space:nowrap}
.ws-tag .ws-icon{font-size:16px}
button.ws-tag{cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard)}
button.ws-tag:hover{background:var(--surface-hover);border-color:var(--border-control)}
.ws-tag--selected,button.ws-tag--selected:hover{background:var(--surface-selected);border-color:var(--sage-400);color:var(--sage-800)}
.ws-tag__remove{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-right:-6px;border:0;border-radius:50%;background:transparent;color:var(--text-secondary);cursor:pointer}
.ws-tag__remove:hover{background:var(--stone-200);color:var(--text-strong)}
.ws-callout{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;padding:16px 18px;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-muted);color:var(--text-body)}
.ws-callout>.ws-icon{font-size:22px;margin-top:1px}
.ws-callout__title{font:var(--type-label);font-size:var(--text-md);margin-bottom:2px}
.ws-callout__body{font:var(--type-body-sm);font-size:var(--text-md)}
.ws-callout__meta{font:var(--type-caption);color:var(--text-secondary);margin-top:6px}
.ws-callout--note{background:var(--note-bg);border-color:var(--note-border)}
.ws-callout--note>.ws-icon,.ws-callout--note .ws-callout__title{color:var(--note-fg)}
.ws-callout--success{background:var(--success-bg);border-color:var(--success-border)}
.ws-callout--success>.ws-icon,.ws-callout--success .ws-callout__title{color:var(--success-fg)}
.ws-callout--warning{background:var(--warning-bg);border-color:var(--warning-border)}
.ws-callout--warning>.ws-icon,.ws-callout--warning .ws-callout__title{color:var(--warning-fg)}
.ws-callout--error{background:var(--error-bg);border-color:var(--error-border)}
.ws-callout--error>.ws-icon,.ws-callout--error .ws-callout__title{color:var(--error-fg)}
.ws-callout--info{background:var(--sage-50);border-color:var(--sage-200)}
.ws-callout--info>.ws-icon,.ws-callout--info .ws-callout__title{color:var(--sage-700)}
.ws-avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:50%;background:var(--sage-100);color:var(--sage-800);font-family:var(--font-body);font-weight:var(--weight-semibold);overflow:hidden;user-select:none}
.ws-avatar img{width:100%;height:100%;object-fit:cover}
.ws-avatar--sm{width:32px;height:32px;font-size:13px}
.ws-avatar--md{width:40px;height:40px;font-size:15px}
.ws-avatar--lg{width:56px;height:56px;font-size:20px}
.ws-avatar--xl{width:80px;height:80px;font-size:28px}
.ws-avatar--warm{background:var(--avatar-warm-bg);color:var(--avatar-warm-fg)}
.ws-avatar--stone{background:var(--stone-150);color:var(--stone-700)}
