/* Shared component styles (Tailwind Play CDN handles utilities). */
.btn { display: inline-flex; align-items: center; gap: .375rem; padding: .5rem .875rem; border-radius: .5rem;
       font-size: .875rem; font-weight: 500; line-height: 1.25rem; border: 1px solid transparent;
       cursor: pointer; white-space: nowrap; }
.btn-primary { background: #0f766e; color: #fff; }
.btn-primary:hover { background: #115e59; }
.btn-secondary { background: #fff; color: #334155; border-color: #cbd5e1; }
.btn-secondary:hover { background: #f8fafc; }
.btn-danger { background: #fff; color: #b91c1c; border-color: #fecaca; }
.btn-danger:hover { background: #fef2f2; }
.btn-sm { padding: .25rem .625rem; font-size: .8125rem; }
.input { width: 100%; border: 1px solid #cbd5e1; border-radius: .5rem; padding: .5rem .75rem; font-size: .875rem;
         background: #fff; }
.input:focus { outline: 2px solid #99f6e4; border-color: #14b8a6; }
.label { display: block; font-size: .8125rem; font-weight: 500; color: #475569; margin-bottom: .25rem; }
.card { background: #fff; border: 1px solid #e2e8f0; border-radius: .75rem; }
.table { width: 100%; font-size: .875rem; border-collapse: collapse; }
.table th { text-align: left; font-weight: 500; color: #64748b; font-size: .75rem; text-transform: uppercase;
            letter-spacing: .03em; padding: .625rem .75rem; border-bottom: 1px solid #e2e8f0; background: #f8fafc; }
.table td { padding: .625rem .75rem; border-bottom: 1px solid #f1f5f9; vertical-align: top; }
.table tr:last-child td { border-bottom: 0; }
.table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.table tfoot td { font-weight: 600; border-top: 1px solid #e2e8f0; background: #f8fafc; }
.badge { display: inline-block; padding: .125rem .5rem; border-radius: 9999px; font-size: .75rem; font-weight: 500; }
.link { color: #0f766e; }
.link:hover { text-decoration: underline; }
.num { font-variant-numeric: tabular-nums; }
