/* Cervidi DSM v1.5 component contract — consumes design-tokens.css */
.c-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8);min-height:44px;padding:var(--space-12) var(--space-24);border-radius:var(--radius-md);border:1px solid transparent;font:var(--font-weight-bold) var(--font-size-base)/1.4 var(--font-family);cursor:pointer;transition:background-color .15s ease,border-color .15s ease}
.c-btn--primary{background:var(--color-primary);color:white}.c-btn--primary:hover{background:var(--color-primary-hover)}
.c-btn--secondary{background:var(--color-primary-soft);color:var(--color-primary)}
.c-btn--danger{background:var(--color-surface);color:var(--color-danger);border-color:var(--color-danger)}
.c-btn:disabled,.c-btn[aria-disabled=true]{background:var(--color-border);color:var(--color-muted);cursor:not-allowed;opacity:.7}
.c-btn[aria-busy=true]{cursor:progress}
.c-input{min-height:44px;width:100%;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-12) var(--space-16);font:var(--font-weight-regular) var(--font-size-base)/1.4 var(--font-family);background:var(--color-surface);color:var(--color-text)}
.c-input:focus-visible,.c-btn:focus-visible,.c-nav-link:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.c-input[aria-invalid=true]{border-color:var(--color-danger)}.c-input:disabled{background:var(--color-background);color:var(--color-muted)}
.c-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-24)}
.c-card--highlight{border-color:var(--color-mint)}.c-card--notice{background:var(--color-primary-soft)}
.c-nav-link{display:inline-flex;align-items:center;gap:var(--space-8);border-radius:var(--radius-md);padding:var(--space-12) var(--space-16);color:var(--color-text);text-decoration:none;font-weight:var(--font-weight-semibold)}
.c-nav-link[aria-current=page]{background:var(--color-primary-soft);color:var(--color-primary)}
.c-status{display:inline-flex;align-items:center;gap:var(--space-8);border-radius:var(--radius-sm);padding:var(--space-6) var(--space-12);font-size:var(--font-size-sm)}
.c-status--success{background:#E7F9F5;color:#166B5B}.c-status--error{background:#FFF0F0;color:var(--color-danger)}
@media(max-width:600px){.c-btn{min-height:44px}.c-card{padding:var(--space-16)}}
