/* cody-components.css — Cody Design System v1 */

/* Buttons */
.cody-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);
  height:var(--control-h);padding:0 var(--control-px);font:inherit;font-weight:var(--weight-semibold);
  border:1px solid transparent;border-radius:var(--radius);cursor:pointer;
  background:var(--primary);color:var(--primary-on);transition:filter .12s ease;}
.cody-btn:hover{filter:brightness(.95);}
.cody-btn:disabled{opacity:.5;cursor:not-allowed;}
.cody-btn--secondary{background:transparent;color:var(--on-surface);border-color:var(--border);}
.cody-btn--ghost{background:transparent;color:var(--primary-text);}
.cody-btn--danger{background:var(--danger-solid);color:#fff;}
.cody-btn--sm{height:calc(var(--control-h) - var(--space-2));padding:0 var(--space-3);font-size:var(--text-sm);}

/* Form fields */
.cody-field{display:flex;flex-direction:column;gap:var(--space-1);}
.cody-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--on-surface);}
.cody-input,.cody-select,.cody-textarea{height:var(--control-h);padding:0 var(--control-px);font:inherit;
  color:var(--on-surface);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);}
.cody-textarea{height:auto;min-height:calc(var(--control-h)*2);padding:var(--space-2) var(--control-px);}
.cody-input:focus,.cody-select:focus,.cody-textarea:focus{outline:2px solid var(--focus-ring);outline-offset:1px;border-color:var(--primary);}
.cody-help{font-size:var(--text-xs);color:var(--on-surface-muted);}
.cody-field--error .cody-input,.cody-field--error .cody-select,.cody-field--error .cody-textarea{border-color:var(--danger);}
.cody-field--error .cody-help{color:var(--danger-text);}

/* Card & section */
.cody-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:var(--space-4);box-shadow:var(--shadow-1);}
.cody-section{background:var(--surface);color:var(--on-surface);padding:var(--space-8) var(--space-4);}

/* Badge / chip */
.cody-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);
  font-size:var(--text-sm);font-weight:var(--weight-medium);border-radius:var(--radius-pill);
  background:var(--surface-2);color:var(--on-surface);border:1px solid var(--border);}
.cody-badge--primary{background:color-mix(in srgb,var(--primary) 18%,transparent);color:var(--primary-text);border-color:transparent;}
.cody-badge--success{background:color-mix(in srgb,var(--success) 18%,transparent);color:var(--success-text);border-color:transparent;}
.cody-badge--danger{background:color-mix(in srgb,var(--danger) 18%,transparent);color:var(--danger-text);border-color:transparent;}

/* Table */
.cody-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);}
.cody-table th,.cody-table td{text-align:left;padding:var(--row-py) var(--space-3);border-bottom:1px solid var(--border);}
.cody-table th{font-weight:var(--weight-semibold);color:var(--on-surface-muted);}
.cody-table .num{font-variant-numeric:tabular-nums;text-align:right;}

/* Top app bar (intrinsically dark brand bar) */
.cody-appbar{display:flex;align-items:center;gap:var(--space-4);height:56px;padding:0 var(--space-4);
  background:var(--cody-slate);color:#fff;}
.cody-appbar a{color:#fff;opacity:.85;} .cody-appbar a:hover{opacity:1;text-decoration:none;}
.cody-appbar a.active{opacity:1;border-bottom:2px solid var(--cody-blue);padding-bottom:2px;}
.cody-appbar .brand{height:24px;display:block;}

/* Alert */
.cody-alert{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius);
  border:1px solid var(--border);background:var(--surface-2);color:var(--on-surface);}
.cody-alert--info{border-color:var(--info);}
.cody-alert--success{border-color:var(--success);}
.cody-alert--danger{border-color:var(--danger);}

/* Link */
.cody-link{color:var(--link);} .cody-link:hover{text-decoration:underline;}
