* { box-sizing: border-box; }
html { font-family: var(--ts-font-family); background: var(--ts-bg); color: var(--ts-text); }
body { margin: 0; background: var(--ts-bg); color: var(--ts-text); }
button, input, select, textarea { font: inherit; }
a { color: inherit; }
.ts-shell { min-height: 100vh; }
.ts-shell__header { position: sticky; top: 0; z-index: 20; background: var(--ts-surface); border-bottom: 1px solid var(--ts-border); }
.ts-header { max-width: var(--ts-content-max); margin: 0 auto; min-height: 3.75rem; padding: var(--ts-space-3) var(--ts-space-5); display: flex; align-items: center; gap: var(--ts-space-4); }
.ts-header__title { font-size: var(--ts-font-size-lg); font-weight: 700; }
.ts-header__meta { color: var(--ts-text-muted); font-size: var(--ts-font-size-sm); margin-left: auto; }
.ts-main { max-width: var(--ts-content-max); margin: 0 auto; padding: var(--ts-space-6) var(--ts-space-5); }
.ts-section-header { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--ts-space-4); margin-bottom:var(--ts-space-4); }
.ts-section-header__title { margin:0; font-size:var(--ts-font-size-xl); line-height:1.2; }
.ts-section-header__description { margin:var(--ts-space-1) 0 0; color:var(--ts-text-muted); font-size:var(--ts-font-size-sm); }
.ts-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:var(--ts-space-2); margin-bottom:var(--ts-space-4); }
.ts-card { background:var(--ts-surface); border:1px solid var(--ts-border); border-radius:var(--ts-radius-md); box-shadow:var(--ts-shadow-1); padding:var(--ts-space-4); }
.ts-card + .ts-card { margin-top:var(--ts-space-4); }
.ts-card__title { margin:0 0 var(--ts-space-2); font-size:var(--ts-font-size-md); font-weight:700; }
.ts-card__meta { color:var(--ts-text-muted); font-size:var(--ts-font-size-sm); }
.ts-grid { display:grid; gap:var(--ts-space-4); grid-template-columns:repeat(12,minmax(0,1fr)); }
.ts-grid__6 { grid-column:span 6; }
.ts-grid__12 { grid-column:span 12; }
.ts-action { min-height:var(--ts-control-height); border:1px solid var(--ts-border); border-radius:var(--ts-radius-sm); padding:0 var(--ts-space-3); display:inline-flex; align-items:center; justify-content:center; gap:var(--ts-space-2); background:var(--ts-surface); color:var(--ts-text); cursor:pointer; text-decoration:none; font-weight:600; }
.ts-action--primary { background:var(--ts-brand); color:var(--ts-brand-contrast); border-color:var(--ts-brand); }
.ts-action--danger { color:var(--ts-danger); }
.ts-action--whatsapp { background:var(--ts-whatsapp); border-color:var(--ts-whatsapp); color:var(--ts-text); }
.ts-action--call { color:var(--ts-call); }
.ts-action:focus-visible, .ts-field__control:focus-visible { outline:3px solid var(--ts-focus); outline-offset:2px; }
.ts-badge { display:inline-flex; align-items:center; min-height:1.5rem; border-radius:999px; padding:0 var(--ts-space-2); font-size:var(--ts-font-size-xs); font-weight:700; background:var(--ts-surface-2); }
.ts-badge--success { color:var(--ts-success); }
.ts-badge--warning { color:var(--ts-warning); }
.ts-badge--danger { color:var(--ts-danger); }
.ts-field { display:flex; flex-direction:column; gap:var(--ts-space-1); }
.ts-field__label { font-size:var(--ts-font-size-sm); font-weight:600; }
.ts-field__hint { color:var(--ts-text-muted); font-size:var(--ts-font-size-xs); }
.ts-field__control { width:100%; min-height:var(--ts-control-height); border:1px solid var(--ts-border); border-radius:var(--ts-radius-sm); background:var(--ts-surface); color:var(--ts-text); padding:0 var(--ts-space-3); }
textarea.ts-field__control { padding-top:var(--ts-space-2); min-height:6rem; resize:vertical; }
.ts-field--invalid .ts-field__control { border-color:var(--ts-danger); }
.ts-feedback { border:1px solid var(--ts-border); border-left-width:.25rem; border-radius:var(--ts-radius-sm); padding:var(--ts-space-3); background:var(--ts-surface); margin-bottom:var(--ts-space-4); }
.ts-feedback--success { border-left-color:var(--ts-success); }
.ts-feedback--warning { border-left-color:var(--ts-warning); }
.ts-feedback--validation_error, .ts-feedback--permission_error, .ts-feedback--system_error { border-left-color:var(--ts-danger); }
.ts-feedback--provider_error { border-left-color:var(--ts-warning); }
.ts-table-wrap { overflow:auto; border:1px solid var(--ts-border); border-radius:var(--ts-radius-md); background:var(--ts-surface); }
.ts-table { width:100%; border-collapse:collapse; min-width:42rem; }
.ts-table th, .ts-table td { text-align:left; padding:var(--ts-space-3); border-bottom:1px solid var(--ts-border); vertical-align:top; }
.ts-table th { font-size:var(--ts-font-size-xs); text-transform:uppercase; letter-spacing:.03em; color:var(--ts-text-muted); background:var(--ts-surface-2); position:sticky; top:0; }
.ts-table tr:last-child td { border-bottom:0; }
.ts-tabs { display:flex; gap:var(--ts-space-1); overflow:auto; border-bottom:1px solid var(--ts-border); margin-bottom:var(--ts-space-4); }
.ts-tab { border:0; background:transparent; min-height:var(--ts-control-height); padding:0 var(--ts-space-3); cursor:pointer; color:var(--ts-text-muted); white-space:nowrap; }
.ts-tab[aria-selected="true"] { color:var(--ts-text); border-bottom:2px solid var(--ts-brand); font-weight:700; }
.ts-filter { display:flex; flex-wrap:wrap; gap:var(--ts-space-2); align-items:end; }
.ts-filter .ts-field { min-width:12rem; flex:1 1 12rem; }
.ts-kpi { background:var(--ts-surface); border:1px solid var(--ts-border); border-radius:var(--ts-radius-md); padding:var(--ts-space-4); }
.ts-kpi__value { font-size:var(--ts-font-size-xl); font-weight:800; }
.ts-kpi__label { color:var(--ts-text-muted); font-size:var(--ts-font-size-sm); }
.ts-empty { padding:var(--ts-space-8); text-align:center; color:var(--ts-text-muted); border:1px dashed var(--ts-border); border-radius:var(--ts-radius-md); }
.ts-dialog-backdrop { position:fixed; inset:0; background:rgba(0,0,0,.35); display:none; align-items:center; justify-content:center; padding:var(--ts-space-4); z-index:50; }
.ts-dialog-backdrop[data-open="true"] { display:flex; }
.ts-dialog { width:min(42rem,100%); max-height:90vh; overflow:auto; background:var(--ts-surface); border-radius:var(--ts-radius-lg); border:1px solid var(--ts-border); box-shadow:var(--ts-shadow-1); }
.ts-dialog__header, .ts-dialog__body, .ts-dialog__footer { padding:var(--ts-space-4); }
.ts-dialog__header { display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--ts-border); }
.ts-dialog__footer { display:flex; justify-content:flex-end; gap:var(--ts-space-2); border-top:1px solid var(--ts-border); }
.ts-snapshot { border-left:.25rem solid var(--ts-brand); background:var(--ts-surface); padding:var(--ts-space-4); border-radius:var(--ts-radius-sm); }
.ts-pagination { display:flex; align-items:center; gap:var(--ts-space-2); margin-top:var(--ts-space-4); }
.ts-pagination__meta { color:var(--ts-text-muted); font-size:var(--ts-font-size-sm); margin-right:auto; }
@media (max-width: 760px) {
  .ts-header { padding:var(--ts-space-3); }
  .ts-header__meta { display:none; }
  .ts-main { padding:var(--ts-space-4) var(--ts-space-3); }
  .ts-section-header { flex-direction:column; }
  .ts-grid__6 { grid-column:span 12; }
  .ts-toolbar { align-items:stretch; }
  .ts-toolbar > .ts-action { flex:1 1 auto; }
  .ts-dialog-backdrop { align-items:flex-end; padding:0; }
  .ts-dialog { width:100%; max-height:92vh; border-radius:var(--ts-radius-lg) var(--ts-radius-lg) 0 0; border-bottom:0; }
}
