/* [project]/app/globals.css [app-client] (css) */
:root {
  --lightningcss-light: ;
  --lightningcss-dark: initial;
  color-scheme: dark;
  --bg: #07111f;
  --panel: #0a1628e0;
  --panel-border: #6ea8ff2e;
  --panel-soft: #0c1d31bd;
  --text: #eff6ff;
  --muted: #9fb3c8;
  --accent: #53b2ff;
  --success: #33d69f;
  --warning: #ffcd57;
  --danger: #ff6b7a;
  --shadow: 0 18px 60px #0000003d;
  --surface: #0c1629;
  --surface-elevated: #0f1c32;
  --border: #6ea8ff26;
  --border-strong: #6ea8ff47;
  --header-bg: #081220f2;
  --sidebar-bg: #060e1afa;
  --sidebar-width: 220px;
  --header-height: 56px;
  --radius: 12px;
  --radius-lg: 16px;
  --tc-bp-mobile: 640px;
  --tc-bp-tablet: 1024px;
}

.app-body {
  position: relative;
}

.session-expired-toast {
  z-index: 100000;
  border-radius: var(--radius);
  background: var(--surface-elevated);
  border: 1px solid var(--danger);
  color: var(--text);
  font-size: var(--tc-text-md);
  box-shadow: var(--shadow);
  max-width: min(360px, 100vw - 2rem);
  padding: .875rem 1.25rem;
  font-weight: 500;
  position: fixed;
  top: 1rem;
  right: 1rem;
}

.app-header {
  min-height: var(--header-height);
  background: var(--header-bg);
  border-bottom: 1px solid var(--border);
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 0 1.25rem;
  display: flex;
}

.app-header-brand {
  font-weight: 700;
  font-size: var(--tc-text-lg);
  color: var(--text);
  align-items: center;
  gap: .75rem;
  display: flex;
}

.app-header-brand-accent {
  color: var(--accent);
  font-weight: 600;
  font-size: var(--tc-text-sm);
  text-transform: uppercase;
  letter-spacing: .06em;
}

.app-header-title {
  color: var(--text);
  margin: 0;
  font-size: 1.1rem;
  font-weight: 600;
}

.app-header-meta {
  color: var(--muted);
  margin: 0;
  font-size: .85rem;
}

.app-header-actions {
  align-items: center;
  gap: .5rem;
  display: flex;
}

.kpi-strip {
  background: var(--surface-elevated);
  border-bottom: 1px solid var(--border);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  padding: .75rem 1rem;
  display: grid;
}

.kpi-item {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #0c1d3199;
  flex-direction: column;
  gap: .25rem;
  padding: .6rem .85rem;
  display: flex;
}

.kpi-item-label {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted);
}

.kpi-item-value {
  color: var(--text);
  font-size: 1.5rem;
  font-weight: 700;
}

.kpi-strip-compact .kpi-item {
  padding: .4rem .6rem;
}

.kpi-strip-compact .kpi-item-value {
  font-size: 1.15rem;
}

.portal-nav-strip {
  background: var(--surface-elevated);
  border-bottom: 1px solid var(--border);
  flex-wrap: wrap;
  gap: .25rem;
  padding: .5rem 1rem;
  display: flex;
}

.portal-nav-item {
  font-size: var(--tc-text-md);
  color: var(--muted);
  border-radius: var(--radius);
  cursor: pointer;
  background: none;
  border: none;
  padding: .5rem 1rem;
  font-weight: 600;
  transition: color .15s, background .15s;
}

.portal-nav-item:hover {
  color: var(--text);
  background: #53b2ff1a;
}

.portal-nav-item.active {
  color: var(--accent);
  background: #53b2ff2e;
}

.portal-view-card {
  max-width: 56rem;
  margin: 1rem auto;
}

.portal-section-secondary {
  margin-top: 1rem;
}

.portal-detail-flow {
  flex-direction: column;
  gap: 1rem;
  display: flex;
}

.portal-detail-section {
  margin-bottom: 0;
}

.portal-detail-close {
  border-color: var(--accent);
}

.portal-address-block {
  margin-top: .5rem;
}

.portal-address-block p {
  font-size: var(--tc-text-md);
  margin: .2rem 0;
}

.portal-list-plain {
  margin: 0;
  padding-left: 1.25rem;
  list-style: outside;
}

.portal-checklist {
  flex-direction: column;
  gap: .5rem;
  display: flex;
}

.portal-checklist-item {
  cursor: pointer;
  align-items: center;
  gap: .5rem;
  display: flex;
}

.portal-block-label {
  margin-bottom: .25rem;
  font-weight: 600;
  display: block;
}

.portal-button-large {
  padding: 1rem 1.5rem;
  font-size: 1.05rem;
}

.panel-operativo {
  --panel-bg: #f6f8fb;
  --panel-card: #fff;
  --panel-border: #e5e8ec;
  --panel-text: #1a1d21;
  --panel-muted: #6b7280;
  --panel-primary: #2563eb;
  --panel-semantic-blue: #2563eb;
  --panel-semantic-green: #059669;
  --panel-semantic-violet: #7c3aed;
  --panel-semantic-red: #dc2626;
  --panel-semantic-orange: #ea580c;
  --panel-semantic-cyan: #0891b2;
  --panel-warning: #d97706;
  --panel-error: #dc2626;
  background: var(--panel-bg);
  max-width: 1400px;
  min-height: 100vh;
  margin: 0 auto;
  padding: 0 1.5rem 2rem;
}

.panel-operativo-header {
  margin-bottom: 1.75rem;
}

.panel-operativo-header .app-header-title {
  color: var(--panel-text);
  margin-bottom: .25rem;
}

.panel-operativo-header .app-header-meta {
  color: var(--panel-muted);
  margin: 0;
}

.panel-metrics-grid {
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: .875rem;
  margin-bottom: 1.75rem;
  display: grid;
}

.panel-metric-card {
  background: var(--panel-card);
  border: 1px solid var(--panel-border);
  border-radius: 12px;
  align-items: flex-start;
  gap: .75rem;
  padding: 1rem 1.1rem;
  transition: box-shadow .2s, border-color .2s;
  display: flex;
  box-shadow: 0 1px 3px #0000000f;
}

.panel-metric-card:hover {
  border-color: #cbd5e1;
  box-shadow: 0 4px 12px #00000014;
}

.panel-metric-icon {
  width: 2.25rem;
  height: 2.25rem;
  font-size: var(--tc-text-lg);
  color: var(--panel-muted);
  background: #f1f5f9;
  border-radius: 10px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
}

.panel-metric-icon--blue {
  color: var(--panel-semantic-blue);
  background: #2563eb1f;
}

.panel-metric-icon--green {
  color: var(--panel-semantic-green);
  background: #0596691f;
}

.panel-metric-icon--violet {
  color: var(--panel-semantic-violet);
  background: #7c3aed1f;
}

.panel-metric-icon--red {
  color: var(--panel-semantic-red);
  background: #dc26261f;
}

.panel-metric-icon--orange {
  color: var(--panel-semantic-orange);
  background: #ea580c1f;
}

.panel-metric-icon--cyan {
  color: var(--panel-semantic-cyan);
  background: #0891b21f;
}

.panel-metric-content {
  flex-direction: column;
  gap: .25rem;
  min-width: 0;
  display: flex;
}

.panel-metric-label {
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--panel-muted);
  font-size: .7rem;
  font-weight: 500;
}

.panel-metric-value {
  color: var(--panel-text);
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.2;
}

.panel-operativo .panel-section {
  margin-bottom: 1.75rem;
}

.panel-operativo .panel-section-title {
  font-size: var(--tc-text-sm);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--panel-muted);
  margin: 0 0 .75rem;
  font-weight: 600;
}

.panel-operacion-wrap {
  background: var(--panel-card);
  border: 1px solid var(--panel-border);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 3px #0000000f;
}

.panel-operacion-loading, .panel-operacion-empty {
  font-size: var(--tc-text-md);
  color: var(--panel-muted);
  margin: 0;
  padding: 1.25rem;
}

.panel-operacion-table-scroll {
  overflow-x: auto;
}

.panel-operacion-table {
  border-collapse: collapse;
  width: 100%;
  font-size: .85rem;
}

.panel-operacion-table th {
  text-align: left;
  color: var(--panel-muted);
  border-bottom: 1px solid var(--panel-border);
  white-space: nowrap;
  background: #f8fafc;
  padding: .75rem 1rem;
  font-weight: 600;
}

.panel-operacion-table td {
  border-bottom: 1px solid var(--panel-border);
  color: var(--panel-text);
  padding: .65rem 1rem;
}

.panel-operacion-table tbody tr:last-child td {
  border-bottom: none;
}

.panel-operacion-table tbody tr:hover {
  background: #f8fafc;
}

.panel-operacion-link {
  color: var(--panel-primary);
  text-decoration: none;
}

.panel-operacion-link:hover {
  text-decoration: underline;
}

.panel-alert-panel {
  background: var(--panel-card);
  border: 1px solid var(--panel-border);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  box-shadow: 0 1px 3px #0000000f;
}

.panel-alert-title {
  font-size: var(--tc-text-sm);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--panel-muted);
  margin: 0 0 .75rem;
  font-weight: 600;
}

.panel-alert-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.panel-alert-item {
  border-bottom: 1px solid var(--panel-border);
  font-size: var(--tc-text-base);
  color: var(--panel-text);
  padding: .5rem 0;
}

.panel-alert-item:last-child {
  border-bottom: none;
}

.panel-alert-item.panel-alert-high {
  color: var(--panel-error);
  font-weight: 500;
}

.panel-alert-item.panel-alert-medium {
  color: var(--panel-warning);
  font-weight: 500;
}

.panel-alert-empty {
  color: var(--panel-muted);
  font-size: var(--tc-text-base);
  padding: .5rem 0;
}

.panel-alert-link {
  color: inherit;
  text-decoration: none;
}

.panel-alert-link:hover {
  text-decoration: underline;
}

.panel-infra-widget {
  background: var(--panel-card);
  border: 1px solid var(--panel-border);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  box-shadow: 0 1px 3px #0000000f;
}

.panel-infra-title {
  font-size: var(--tc-text-sm);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--panel-muted);
  margin: 0 0 .75rem;
  font-weight: 600;
}

.panel-infra-grid {
  gap: .75rem;
  display: grid;
}

.panel-infra-row {
  flex-direction: column;
  gap: .35rem;
  display: flex;
}

.panel-infra-row--bar {
  gap: .25rem;
}

.panel-infra-label {
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--panel-muted);
  font-size: .7rem;
  font-weight: 500;
}

.panel-infra-value {
  font-size: var(--tc-text-md);
  color: var(--panel-text);
  font-weight: 600;
}

.panel-infra-bar-wrap {
  background: #e5e7eb;
  border-radius: 3px;
  height: 6px;
  overflow: hidden;
}

.panel-infra-bar {
  background: linear-gradient(90deg, #93c5fd, #3b82f6);
  border-radius: 3px;
  height: 100%;
  transition: width .3s;
}

.panel-infra-bar--ok {
  background: linear-gradient(90deg, #86efac, #22c55e);
}

.panel-infra-bar--warn {
  background: linear-gradient(90deg, #fcd34d, #f59e0b);
}

.panel-infra-bar--danger {
  background: linear-gradient(90deg, #fca5a5, #ef4444);
}

.panel-infra-loading, .panel-infra-error {
  font-size: var(--tc-text-base);
  color: var(--panel-muted);
  margin: 0;
}

.panel-infra-error {
  color: var(--panel-error);
}

.panel-quick-actions {
  background: var(--panel-card);
  border: 1px solid var(--panel-border);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  box-shadow: 0 1px 3px #0000000f;
}

.panel-quick-actions-title {
  font-size: var(--tc-text-sm);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--panel-muted);
  margin: 0 0 .75rem;
  font-weight: 600;
}

.panel-quick-actions-grid {
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: .6rem;
  display: grid;
}

.panel-quick-action-btn {
  font-size: var(--tc-text-base);
  color: var(--panel-text);
  background: var(--panel-card);
  border: 1px solid var(--panel-border);
  border-radius: 10px;
  justify-content: center;
  align-items: center;
  padding: .75rem 1rem;
  font-weight: 500;
  text-decoration: none;
  transition: background .2s, border-color .2s, color .2s;
  display: flex;
}

.panel-quick-action-btn:hover {
  border-color: var(--panel-primary);
  color: var(--panel-primary);
  background: #2563eb14;
}

.panel-grid-2col {
  grid-template-columns: 1fr 340px;
  align-items: start;
  gap: 1.5rem;
  display: grid;
}

@media (max-width: 1024px) {
  .panel-grid-2col {
    grid-template-columns: 1fr;
  }
}

.panel-sidebar-blocks {
  flex-direction: column;
  gap: 1.25rem;
  display: flex;
}

.config-layout {
  background: #f8fafc;
  width: 100%;
  min-height: 100vh;
  display: flex;
}

.config-sidebar {
  background: #1e293b;
  border-right: 1px solid #ffffff14;
  flex-shrink: 0;
  width: 220px;
  min-width: 220px;
  padding: 1rem 0;
}

.config-nav {
  flex-direction: column;
  gap: .25rem;
  display: flex;
}

.config-nav-section {
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #64748b;
  padding: .75rem 1rem .35rem;
  font-size: .7rem;
}

.config-nav-item {
  font-size: var(--tc-text-md);
  color: #94a3b8;
  border-left: 3px solid #0000;
  padding: .6rem 1rem;
  text-decoration: none;
  transition: color .15s, background .15s, border-color .15s;
  display: block;
}

.config-nav-item:hover {
  color: #f8fafc;
  background: #ffffff0f;
}

.config-nav-item.active {
  color: #38bdf8;
  background: #38bdf81a;
  border-left-color: #38bdf8;
  font-weight: 600;
}

.config-nav-item.sub {
  padding-left: 1.5rem;
  font-size: .85rem;
}

.config-main {
  color: #1e293b;
  background: #f8fafc;
  flex: 1;
  min-width: 0;
  padding: 1.25rem 1.5rem 2rem;
}

.config-main .templates-shell {
  max-width: 100%;
}

.config-main .app-header-title, .config-main h1 {
  color: #1e293b;
}

.config-main .app-header-meta, .config-main .app-header-brand-accent {
  color: #64748b;
}

.config-main-placeholder {
  padding: 2rem 0;
}

.config-main-placeholder .app-header-title {
  color: #1e293b;
  margin-bottom: .25rem;
}

.config-tiles-grid {
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1.25rem;
  display: grid;
}

.config-tile {
  text-align: left;
  color: inherit;
  border-radius: var(--radius, 12px);
  background: #fff;
  border: 1px solid #e2e8f0;
  flex-direction: column;
  align-items: flex-start;
  padding: 1.5rem;
  text-decoration: none;
  transition: border-color .2s, box-shadow .2s, transform .15s;
  display: flex;
  position: relative;
}

.config-tile:hover {
  border-color: #c7d2fe;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px #6366f11a;
}

.config-tile-icon-wrap {
  width: 48px;
  height: 48px;
  color: var(--accent, #6366f1);
  background: #6366f114;
  border-radius: 10px;
  justify-content: center;
  align-items: center;
  margin-bottom: 1rem;
  display: flex;
}

.config-tile-icon {
  display: flex;
}

.config-tile-title {
  font-size: var(--tc-text-lg);
  color: #1e293b;
  margin-bottom: .35rem;
  font-weight: 600;
  display: block;
}

.config-tile-desc {
  font-size: var(--tc-text-sm);
  color: #64748b;
  flex: 1;
  line-height: 1.4;
}

.config-tile-arrow {
  font-size: var(--tc-text-base);
  color: #94a3b8;
  margin-top: .75rem;
  transition: color .2s, transform .2s;
}

.config-tile:hover .config-tile-arrow {
  color: var(--accent, #6366f1);
  transform: translateX(4px);
}

.config-page-wrap {
  max-width: 900px;
}

.config-facturacion-grid {
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1rem;
  display: grid;
}

.config-fact-card {
  border-radius: var(--radius, 12px);
  background: #fff;
  border: 1px solid #e2e8f0;
  flex-direction: column;
  padding: 1.25rem;
  transition: border-color .2s, box-shadow .2s;
  display: flex;
}

.config-fact-card:hover {
  border-color: #c7d2fe;
  box-shadow: 0 4px 12px #0000000a;
}

.config-fact-card-icon {
  border-radius: 10px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  margin-bottom: .75rem;
  display: inline-flex;
}

.config-fact-card-title {
  color: #1e293b;
  margin: 0 0 .35rem;
  font-size: .95rem;
  font-weight: 600;
}

.config-fact-card-desc {
  color: #64748b;
  flex: 1;
  margin: 0 0 1rem;
  font-size: .85rem;
  line-height: 1.45;
}

.config-fact-card .portal-primary-button {
  align-self: flex-start;
}

.config-fact-billing-form {
  flex-direction: column;
  gap: .6rem;
  margin-top: .25rem;
  display: flex;
}

.config-fact-billing-row {
  font-size: var(--tc-text-md);
  color: #374151;
  cursor: pointer;
  align-items: center;
  gap: .5rem;
  display: flex;
}

.config-fact-billing-label {
  color: #475569;
  margin-top: .25rem;
  font-size: .85rem;
  font-weight: 500;
}

.config-fact-billing-input {
  border-radius: var(--radius);
  font-size: var(--tc-text-md);
  box-sizing: border-box;
  border: 1px solid #e2e8f0;
  width: 100%;
  max-width: 180px;
  padding: .45rem .65rem;
}

.config-empresa-msg {
  border-radius: var(--radius);
  font-size: var(--tc-text-md);
  margin-bottom: 1rem;
  padding: .75rem 1rem;
}

.config-empresa-msg--error {
  color: #b91c1c;
  background: #ff6b7a1a;
  border: 1px solid #ff6b7a40;
}

.config-empresa-msg--success {
  color: #15803d;
  background: #22c55e14;
  border: 1px solid #22c55e40;
}

.config-empresa-summary {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--radius);
  color: var(--admin-text-muted, #64748b);
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem .6rem;
  margin-bottom: 1.5rem;
  padding: .75rem 1rem;
  font-size: .85rem;
  display: flex;
  box-shadow: 0 1px 2px #0000000a;
}

.config-empresa-summary-label {
  color: var(--admin-text, #1e293b);
  margin-right: .25rem;
  font-weight: 600;
}

.config-empresa-summary-item {
  color: var(--admin-text, #334155);
}

.config-empresa-summary-sep {
  color: var(--admin-text-muted, #94a3b8);
  opacity: .8;
}

.config-empresa-grid {
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  display: grid;
}

@media (max-width: 1024px) {
  .config-empresa-grid {
    grid-template-columns: 1fr;
  }
}

.config-empresa-card {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--radius);
  background: var(--admin-card-bg, #fff);
  flex-direction: column;
  padding: 1.5rem;
  transition: border-color .2s, box-shadow .2s;
  display: flex;
  box-shadow: 0 1px 3px #0000000d;
}

.config-empresa-card:hover {
  border-color: var(--admin-input-border, #cbd5e1);
  box-shadow: 0 2px 8px #0000000f;
}

.config-empresa-card-title {
  color: var(--admin-text, #1e293b);
  letter-spacing: -.01em;
  margin: 0 0 .5rem;
  font-size: 1.05rem;
  font-weight: 600;
}

.config-empresa-card-desc {
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 1.25rem;
  line-height: 1.5;
}

.config-empresa-form {
  flex-direction: column;
  gap: .9rem;
  display: flex;
}

.config-empresa-label {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #334155);
  margin-bottom: .15rem;
  font-weight: 500;
  display: block;
}

.config-empresa-input {
  border: 1px solid var(--admin-input-border, #e2e8f0);
  font-size: var(--tc-text-md);
  background: var(--admin-input-bg, #fff);
  color: var(--admin-text, #1e293b);
  box-sizing: border-box;
  border-radius: 8px;
  width: 100%;
  padding: .55rem .75rem;
  transition: border-color .15s, box-shadow .15s;
}

.config-empresa-input::placeholder {
  color: var(--admin-text-muted, #94a3b8);
}

.config-empresa-input:focus {
  border-color: var(--admin-primary, #2563eb);
  outline: none;
  box-shadow: 0 0 0 3px #2563eb1f;
}

.config-empresa-hint {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
  line-height: 1.45;
}

.config-empresa-card .portal-primary-button {
  font-size: var(--tc-text-base);
  border-radius: 8px;
  align-self: flex-start;
  min-height: auto;
  margin-top: .5rem;
  padding: .5rem 1rem;
  font-weight: 500;
}

.config-empresa-card select.config-empresa-input {
  cursor: pointer;
  appearance: auto;
}

.config-sistema-card {
  border-radius: var(--radius, 12px);
  text-align: center;
  background: #fff;
  border: 1px solid #e2e8f0;
  max-width: 560px;
  padding: 2rem;
  transition: border-color .2s, box-shadow .2s;
}

.config-sistema-card:hover {
  border-color: #c7d2fe;
  box-shadow: 0 4px 12px #0000000a;
}

.config-sistema-card-icon {
  width: 56px;
  height: 56px;
  color: var(--accent, #6366f1);
  background: #6366f114;
  border-radius: 12px;
  justify-content: center;
  align-items: center;
  margin-bottom: 1rem;
  display: inline-flex;
}

.config-sistema-card-title {
  font-size: var(--tc-text-lg);
  color: #1e293b;
  margin: 0 0 .5rem;
  font-weight: 600;
}

.config-sistema-card-desc {
  color: #64748b;
  margin: 0;
  font-size: .95rem;
  line-height: 1.5;
}

.tc-pasarela-revision-nota {
  padding: var(--tc-space-3) var(--tc-space-5);
  max-width: 60rem;
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-pasarela-revision-nota p {
  margin: 0 0 var(--tc-space-2);
}

.tc-pasarela-revision-nota p:last-child {
  margin-bottom: 0;
}

.tc-pasarela-logo-fallback {
  border-radius: var(--tc-radius-sm);
  background: var(--tc-primary-bg);
  width: 22px;
  height: 22px;
  color: var(--tc-primary-text);
  font-weight: 700;
  font-size: var(--tc-text-xs);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  line-height: 1;
  display: inline-flex;
}

.config-empresa-dl {
  gap: 0;
  margin: 0;
  display: grid;
}

.config-empresa-row {
  border-bottom: 1px solid #f1f5f9;
  justify-content: space-between;
  align-items: center;
  padding: .5rem 0;
  display: flex;
}

.config-empresa-row--last {
  border-bottom: none;
}

.config-empresa-row dt {
  color: #64748b;
  font-weight: 500;
  font-size: var(--tc-text-md);
  margin: 0;
}

.config-empresa-row dd {
  color: #1e293b;
  font-weight: 600;
  font-size: var(--tc-text-md);
  margin: 0;
}

.config-empresa-card--placeholder {
  background: #f8fafc;
}

.config-empresa-placeholder-text {
  color: #475569;
  margin: 0;
  font-size: .95rem;
}

.config-empresa-placeholder-meta {
  color: #64748b;
  font-size: var(--tc-text-base);
  margin: .5rem 0 0;
  line-height: 1.45;
}

.breadcrumb {
  font-size: var(--tc-text-md);
  color: var(--muted);
  align-items: center;
  gap: .5rem;
  margin-bottom: 1rem;
  display: flex;
}

.breadcrumb-item {
  color: var(--muted);
  text-decoration: none;
}

.breadcrumb-item:hover {
  color: var(--accent);
}

.breadcrumb-item.current {
  color: var(--text);
  font-weight: 600;
}

.breadcrumb-sep {
  color: var(--muted);
  opacity: .7;
}

.red-module-widgets {
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: .75rem;
  margin-bottom: 1rem;
  display: grid;
}

.red-module-widget {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  flex-direction: column;
  gap: .25rem;
  padding: .75rem 1rem;
  display: flex;
  box-shadow: 0 1px 3px #0000000d;
}

.red-module-widget-icon {
  color: #64748b;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}

.red-module-widget-value {
  font-size: var(--tc-text-xl);
  color: #1e293b;
  font-weight: 700;
  line-height: 1.2;
}

.red-module-widget-label {
  font-size: var(--tc-text-xs);
  color: #64748b;
  margin-top: .15rem;
}

.red-module-pagination {
  border-top: 1px solid #e2e8f0;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  margin-top: .5rem;
  padding: .75rem 0;
  display: flex;
}

.red-module-pagination-range {
  font-size: var(--tc-text-sm);
  color: #64748b;
}

.red-module-pagination-controls {
  align-items: center;
  gap: .75rem;
  display: flex;
}

.red-module-pagination-nav {
  align-items: center;
  gap: .2rem;
  display: flex;
}

.red-module-pagination-btn {
  min-width: 2rem;
  height: 2rem;
  font-size: var(--tc-text-sm);
  color: #475569;
  cursor: pointer;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 0 .4rem;
  font-weight: 500;
  transition: background .15s, border-color .15s, color .15s;
}

.red-module-pagination-btn:hover:not(:disabled) {
  color: #1e293b;
  background: #f8fafc;
  border-color: #cbd5e1;
}

.red-module-pagination-btn:disabled {
  opacity: .5;
  cursor: not-allowed;
}

.red-module-pagination-btn.active {
  color: #fff;
  background: #2563eb;
  border-color: #2563eb;
}

.red-module-pagination-ellipsis {
  font-size: var(--tc-text-sm);
  color: #64748b;
  -webkit-user-select: none;
  user-select: none;
  padding: 0 .25rem;
}

.data-card {
  background: var(--surface-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  margin-bottom: 1rem;
  padding: 1rem 1.15rem;
}

.data-card-header {
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: .75rem;
  display: flex;
}

.data-card-title {
  font-size: var(--tc-text-lg);
  color: var(--text);
  margin: 0;
  font-weight: 600;
}

.data-card-meta {
  color: var(--muted);
  margin: .2rem 0 0;
  font-size: .85rem;
}

.data-card-body {
  margin-bottom: 1rem;
}

.data-card-actions {
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .75rem;
  display: flex;
}

.form-section {
  border-top: 1px solid var(--border);
  margin-top: 1rem;
  padding-top: 1rem;
}

.form-section-title {
  font-size: var(--tc-text-sm);
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted);
  margin: 0 0 .5rem;
  font-weight: 600;
}

.auth-screen {
  background: var(--bg);
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  padding: 1.5rem;
  display: flex;
}

.auth-card {
  background: var(--surface-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  width: min(420px, 100%);
  box-shadow: var(--shadow);
  padding: 2rem;
}

.auth-card h1 {
  color: var(--text);
  margin: 0 0 .5rem;
  font-size: 1.5rem;
  font-weight: 600;
}

.auth-card .auth-subtitle {
  font-size: var(--tc-text-md);
  color: var(--muted);
  margin: 0 0 1.5rem;
  line-height: 1.5;
}

.auth-form {
  flex-direction: column;
  gap: 1rem;
  display: flex;
}

.auth-form label {
  color: var(--muted);
  font-size: .85rem;
  font-weight: 600;
}

.auth-form input {
  margin-top: .35rem;
}

.auth-form button[type="submit"] {
  border-radius: var(--radius);
  margin-top: .5rem;
  padding: .75rem 1rem;
  font-weight: 600;
}

.login-loading-screen {
  background: #0f172a;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  display: flex;
}

.login-loading-dot {
  background: #38bdf8;
  border-radius: 50%;
  width: 10px;
  height: 10px;
  animation: 1s ease-in-out infinite loginPulse;
}

@keyframes loginPulse {
  0%, 100% {
    opacity: .3;
    transform: scale(.8);
  }

  50% {
    opacity: 1;
    transform: scale(1.2);
  }
}

.login-root {
  flex-direction: row;
  min-height: 100vh;
  display: flex;
}

.login-form-panel {
  background: #fff;
  flex-direction: column;
  flex: 0 0 480px;
  justify-content: space-between;
  min-height: 100vh;
  padding: 3rem 3.5rem;
  display: flex;
}

.login-form-inner {
  flex-direction: column;
  flex: 1;
  justify-content: center;
  width: 100%;
  max-width: 380px;
  display: flex;
}

.login-logo-area {
  flex-direction: column;
  align-items: flex-start;
  gap: .5rem;
  margin-bottom: 2.25rem;
  display: flex;
}

.login-isp-logo {
  object-fit: contain;
  width: auto;
  max-width: 200px;
  height: 60px;
  display: block;
}

.login-isp-name {
  font-size: var(--tc-text-md);
  color: #475569;
  letter-spacing: -.01em;
  font-weight: 600;
}

.login-heading {
  margin-bottom: 2rem;
}

.login-title {
  color: #0f172a;
  letter-spacing: -.03em;
  margin: 0 0 .3rem;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.15;
}

.login-subtitle {
  font-size: var(--tc-text-base);
  color: #64748b;
  margin: 0;
}

.login-form {
  flex-direction: column;
  gap: 1.1rem;
  display: flex;
}

.login-field {
  flex-direction: column;
  gap: .35rem;
  display: flex;
}

.login-label {
  font-size: var(--tc-text-sm);
  color: #374151;
  letter-spacing: .01em;
  font-weight: 600;
}

.login-input {
  color: #0f172a;
  box-sizing: border-box;
  background: #f8fafc;
  border: 1.5px solid #e2e8f0;
  border-radius: 8px;
  outline: none;
  width: 100%;
  padding: .7rem .9rem;
  font-size: .93rem;
  transition: border-color .15s, box-shadow .15s;
}

.login-input:focus {
  background: #fff;
  border-color: #38bdf8;
  box-shadow: 0 0 0 3px #38bdf826;
}

.login-field .tc-dropdown-trigger {
  color: #0f172a;
  background: #f8fafc;
  border: 1.5px solid #e2e8f0;
  border-radius: 8px;
  min-height: 0;
  padding: .7rem .9rem;
  font-size: .93rem;
}

.login-field .tc-dropdown-trigger:focus, .login-field .tc-dropdown-trigger:focus-visible {
  background: #fff;
  border-color: #38bdf8;
  box-shadow: 0 0 0 3px #38bdf826;
}

.login-input-wrap {
  position: relative;
}

.login-input-wrap .login-input {
  padding-right: 2.8rem;
}

.login-eye-btn {
  color: #94a3b8;
  cursor: pointer;
  background: none;
  border: none;
  align-items: center;
  padding: .2rem;
  transition: color .12s;
  display: flex;
  position: absolute;
  top: 50%;
  right: .75rem;
  transform: translateY(-50%);
}

.login-eye-btn:hover {
  color: #475569;
}

.login-error {
  font-size: var(--tc-text-sm);
  color: #b91c1c;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 7px;
  align-items: center;
  gap: .45rem;
  padding: .6rem .75rem;
  display: flex;
}

.login-submit-btn {
  color: #fff;
  cursor: pointer;
  letter-spacing: .01em;
  background: linear-gradient(135deg, #0ea5e9 0%, #38bdf8 100%);
  border: none;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  gap: .5rem;
  width: 100%;
  margin-top: .4rem;
  padding: .78rem 1rem;
  font-size: .95rem;
  font-weight: 600;
  transition: opacity .15s, transform .1s;
  display: flex;
}

.login-submit-btn:hover:not(:disabled) {
  opacity: .92;
  transform: translateY(-1px);
}

.login-submit-btn:active:not(:disabled) {
  transform: translateY(0);
}

.login-submit-btn:disabled {
  opacity: .6;
  cursor: not-allowed;
}

@keyframes loginSpinBtn {
  to {
    transform: rotate(360deg);
  }
}

.login-btn-spinner {
  border: 2px solid #ffffff59;
  border-top-color: #fff;
  border-radius: 50%;
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  animation: .7s linear infinite loginSpinBtn;
  display: inline-block;
}

.login-poweredby {
  color: #94a3b8;
  align-items: center;
  gap: .35rem;
  margin: 0;
  padding-top: 1.5rem;
  font-size: .78rem;
  display: flex;
}

.login-poweredby strong {
  color: #64748b;
  font-weight: 600;
}

.login-poweredby-icon {
  object-fit: contain;
  border-radius: 3px;
  width: 16px;
  height: 16px;
}

.login-brand-panel {
  background: linear-gradient(145deg, #0a1628 0%, #0f2044 40%, #0c1a38 100%);
  flex-direction: column;
  flex: 1;
  justify-content: flex-end;
  padding: 3.5rem;
  display: flex;
  position: relative;
  overflow: hidden;
}

.login-brand-deco {
  pointer-events: none;
  position: absolute;
  inset: 0;
}

.login-brand-ring {
  border: 1px solid #38bdf81f;
  border-radius: 50%;
  position: absolute;
}

.login-brand-ring-1 {
  border-color: #38bdf81a;
  width: 420px;
  height: 420px;
  top: -120px;
  right: -100px;
}

.login-brand-ring-2 {
  border-color: #38bdf826;
  width: 280px;
  height: 280px;
  top: -20px;
  right: 50px;
}

.login-brand-ring-3 {
  background: #0ea5e90a;
  border-color: #38bdf833;
  width: 160px;
  height: 160px;
  top: 80px;
  right: 160px;
}

.login-brand-node {
  background: #38bdf840;
  border-radius: 50%;
  position: absolute;
}

.login-brand-node-a {
  width: 8px;
  height: 8px;
  top: 80px;
  right: 162px;
  box-shadow: 0 0 12px #38bdf880;
}

.login-brand-node-b {
  background: #22d3ee4d;
  width: 6px;
  height: 6px;
  top: 170px;
  right: 80px;
  box-shadow: 0 0 10px #22d3ee66;
}

.login-brand-node-c {
  background: #6366f166;
  width: 5px;
  height: 5px;
  top: 40px;
  right: 220px;
  box-shadow: 0 0 8px #6366f166;
}

.login-brand-text {
  z-index: 1;
  position: relative;
}

.login-brand-headline {
  color: #ffffffd9;
  letter-spacing: -.03em;
  margin: 0;
  font-size: 2.1rem;
  font-weight: 700;
  line-height: 1.2;
}

.login-brand-headline-accent {
  color: #38bdf8;
  margin-bottom: 1rem;
}

.login-brand-body {
  color: #fff6;
  max-width: 380px;
  margin: 0;
  font-size: .95rem;
  line-height: 1.6;
}

@media (max-width: 800px) {
  .login-root {
    flex-direction: column;
  }

  .login-brand-panel {
    display: none;
  }

  .login-form-panel {
    flex: 1;
    min-height: 100vh;
    padding: 2.5rem 1.75rem;
  }

  .login-form-inner {
    max-width: 100%;
  }
}

.admin-login-screen {
  background: #0f172a;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  padding: 1.5rem;
  display: flex;
}

.tc-acceso-bloqueado {
  background: var(--admin-bg);
  min-height: 100vh;
  color: var(--admin-text);
  padding: 1.25rem 1.5rem 2rem;
  overflow-y: auto;
}

.tc-acceso-bloqueado-acciones {
  justify-content: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.config-logos-card {
  padding: 1.75rem 1.75rem 1.5rem;
}

.config-logos-header {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1.5rem;
  margin-bottom: 1rem;
  display: flex;
}

.config-logos-note {
  font-size: var(--tc-text-sm);
  color: #64748b;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 7px;
  align-items: center;
  gap: .45rem;
  margin-bottom: 1.25rem;
  padding: .55rem .8rem;
  display: flex;
}

.config-logos-list {
  flex-direction: column;
  gap: 0;
  display: flex;
}

.logo-slot {
  border-bottom: 1px solid #f1f5f9;
  align-items: center;
  gap: 1.5rem;
  padding: 1.1rem 0;
  display: flex;
}

.logo-slot:last-child {
  border-bottom: none;
}

.logo-slot-meta {
  flex: 1;
  min-width: 0;
}

.logo-slot-title {
  font-size: var(--tc-text-base);
  color: #1e293b;
  margin-bottom: .2rem;
  font-weight: 600;
  display: block;
}

.logo-slot-desc {
  font-size: var(--tc-text-sm);
  color: #64748b;
  margin: 0 0 .55rem;
  line-height: 1.4;
}

.logo-slot-specs {
  flex-wrap: wrap;
  gap: .3rem;
  display: flex;
}

.logo-slot-spec {
  color: #475569;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 4px;
  padding: .15rem .45rem;
  font-size: .72rem;
  font-weight: 500;
}

.logo-slot-right {
  flex-shrink: 0;
  align-items: center;
  gap: 1rem;
  display: flex;
}

.logo-slot-preview {
  background: #f8fafc;
  border: 1.5px dashed #e2e8f0;
  border-radius: 8px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 110px;
  height: 60px;
  display: flex;
  overflow: hidden;
}

.logo-slot-img {
  object-fit: contain;
  max-width: 100%;
  max-height: 100%;
}

.logo-slot-empty {
  color: #cbd5e1;
  flex-direction: column;
  align-items: center;
  gap: .25rem;
  font-size: .7rem;
  display: flex;
}

.logo-slot-actions {
  flex-direction: column;
  gap: .4rem;
  min-width: 92px;
  display: flex;
}

.logo-slot-upload-btn {
  font-size: var(--tc-text-sm);
  color: #0ea5e9;
  cursor: pointer;
  white-space: nowrap;
  background: #0ea5e912;
  border: 1.5px solid #0ea5e940;
  border-radius: 7px;
  justify-content: center;
  align-items: center;
  gap: .35rem;
  padding: .45rem .75rem;
  font-weight: 600;
  transition: background .13s, border-color .13s;
  display: flex;
}

.logo-slot-upload-btn:hover:not(:disabled) {
  background: #0ea5e91f;
  border-color: #0ea5e966;
}

.logo-slot-upload-btn:disabled {
  opacity: .6;
  cursor: not-allowed;
}

.logo-slot-delete-btn {
  color: #b91c1c;
  cursor: pointer;
  text-align: center;
  background: none;
  border: 1px solid #fecaca;
  border-radius: 7px;
  padding: .4rem .75rem;
  font-size: .78rem;
  font-weight: 500;
  transition: background .12s;
}

.logo-slot-delete-btn:hover:not(:disabled) {
  background: #fef2f2;
}

.logo-slot-delete-btn:disabled {
  opacity: .5;
  cursor: not-allowed;
}

@keyframes logoSlotSpin {
  to {
    transform: rotate(360deg);
  }
}

.logo-slot-spinner {
  border: 2px solid #0ea5e94d;
  border-top-color: #0ea5e9;
  border-radius: 50%;
  flex-shrink: 0;
  width: 11px;
  height: 11px;
  animation: .65s linear infinite logoSlotSpin;
  display: inline-block;
}

@media (max-width: 700px) {
  .logo-slot {
    flex-direction: column;
    align-items: flex-start;
  }

  .logo-slot-right {
    flex-direction: row;
    width: 100%;
  }

  .logo-slot-actions {
    flex-direction: row;
  }
}

.admin-shell {
  background: #eef2f7;
  width: 100%;
  height: 100vh;
  position: relative;
  overflow: hidden;
}

.admin-shell.sidebar-collapsed .admin-main {
  margin-left: 60px;
}

.admin-main {
  background: var(--admin-bg, #f8fafc);
  flex-direction: column;
  height: 100vh;
  margin-left: 240px;
  transition: margin-left .2s;
  display: flex;
  overflow: hidden;
}

.admin-shell[data-theme="light"] {
  --lightningcss-light: initial;
  --lightningcss-dark: ;
  color-scheme: light;
  --admin-bg: #f1f5f9;
  --admin-card-bg: #fff;
  --admin-text: #1e293b;
  --admin-text-muted: #64748b;
  --admin-border: #e2e8f0;
  --admin-table-header: #f8fafc;
  --admin-table-hover: #f8fafc;
  --admin-input-bg: #fff;
  --admin-input-border: #e2e8f0;
  --admin-primary: #2563eb;
  --admin-topbar-bg: #fff;
  --admin-topbar-text: #1e293b;
  --admin-shadow: 0 1px 3px #00000014;
}

.tc-alertas-cliente {
  gap: var(--tc-space-2);
  margin-bottom: var(--tc-space-4);
  flex-direction: column;
  display: flex;
}

.tc-alertas-cliente-fila {
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-alertas-cliente .tc-alert {
  margin-top: 0;
}

.admin-shell[data-theme="light"] {
  --tc-alertas-bg: #fef2f2;
  --tc-alertas-border: #fecaca;
  --tc-alertas-accent: #ef4444;
  --tc-alertas-text: #991b1b;
  --tc-alertas-text-sub: #b91c1c;
  --tc-alerta-graf: #854d0e;
  --tc-estado-desconocido: #475569;
}

.admin-shell[data-theme="dark"] {
  --lightningcss-light: ;
  --lightningcss-dark: initial;
  color-scheme: dark;
  --tc-alerta-graf: #fbbf24;
  --tc-estado-desconocido: #94a3b8;
  --admin-bg: #0f172a;
  --admin-card-bg: #1e293b;
  --admin-text: #f1f5f9;
  --admin-text-muted: #94a3b8;
  --admin-border: #ffffff1a;
  --admin-table-header: #1e293b;
  --admin-table-hover: #ffffff0d;
  --admin-input-bg: #1e293b;
  --admin-input-border: #ffffff26;
  --admin-primary: #3b82f6;
  --admin-topbar-bg: #1e293b;
  --admin-topbar-text: #f1f5f9;
  --admin-shadow: 0 4px 12px #0000004d;
  --tc-fila-zebra: #ffffff06;
  --tc-fila-hover: #ffffff14;
  --tc-alertas-bg: #ef44441a;
  --tc-alertas-border: #ef444440;
  --tc-alertas-accent: #f87171;
  --tc-alertas-text: #fca5a5;
  --tc-alertas-text-sub: #f87171;
}

html:has(.admin-shell[data-theme="light"]) {
  --lightningcss-light: initial;
  --lightningcss-dark: ;
  color-scheme: light;
}

html:has(.admin-shell[data-theme="dark"]) {
  --lightningcss-light: ;
  --lightningcss-dark: initial;
  color-scheme: dark;
}

.admin-shell[data-theme="light"] select, .admin-shell[data-theme="light"] input, .admin-shell[data-theme="light"] textarea {
  --lightningcss-light: initial;
  --lightningcss-dark: ;
  color-scheme: light;
}

.admin-shell[data-theme="light"] option, .admin-shell[data-theme="light"] optgroup {
  background-color: var(--admin-card-bg, #fff);
  color: var(--admin-text, #1e293b);
}

.admin-sidebar-backdrop {
  z-index: 40;
  opacity: 0;
  background: #0006;
  transition: opacity .2s;
  display: none;
  position: fixed;
  inset: 0;
}

.admin-sidebar-backdrop.open {
  opacity: 1;
  display: block;
}

.admin-sidebar {
  --sidebar-accent: #38bdf8;
  --sidebar-bg: #1e293b;
  background: var(--sidebar-bg);
  border-right: 1px solid #ffffff0f;
  border-top: 3px solid var(--sidebar-accent);
  z-index: 50;
  flex-direction: column;
  width: 240px;
  height: 100vh;
  transition: width .2s;
  display: flex;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  box-shadow: 1px 0 #0000000d;
}

.admin-sidebar.collapsed {
  width: 60px;
}

.admin-sidebar.collapsed .nav-link-text, .admin-sidebar.collapsed .nav-group-chevron {
  opacity: 0;
  white-space: nowrap;
  width: 0;
  margin: 0;
  padding: 0;
  display: inline-block;
  overflow: hidden;
}

.admin-sidebar.collapsed .nav-link, .admin-sidebar.collapsed .nav-group-btn {
  justify-content: center;
  padding-left: .85rem;
  padding-right: .85rem;
}

.admin-sidebar.collapsed .nav-link.sub {
  padding-left: .85rem;
}

.admin-sidebar.collapsed .nav-group-children {
  padding-left: 0;
}

.admin-sidebar.collapsed .admin-sidebar-section-title {
  opacity: 0;
  visibility: hidden;
  height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.admin-sidebar-header {
  border-bottom: 1px solid #ffffff12;
  flex-shrink: 0;
  align-items: center;
  gap: .75rem;
  min-height: 56px;
  padding: .875rem 1rem;
  display: flex;
  overflow: hidden;
}

.admin-sidebar.collapsed .admin-sidebar-header {
  justify-content: center;
  padding: .875rem .5rem;
}

.admin-sidebar-brand-icon {
  background: var(--sidebar-accent);
  border-radius: 8px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  display: flex;
  overflow: hidden;
}

.admin-sidebar-brand-img {
  object-fit: contain;
  width: 100%;
  height: 100%;
}

.admin-sidebar-brand-initial {
  font-size: var(--tc-text-md);
  color: #0f172a;
  text-transform: uppercase;
  font-weight: 800;
  line-height: 1;
}

.admin-sidebar-brand-name {
  font-size: var(--tc-text-base);
  color: #f1f5f9;
  text-overflow: ellipsis;
  white-space: nowrap;
  letter-spacing: -.01em;
  flex: 1;
  min-width: 0;
  font-weight: 600;
  overflow: hidden;
}

.admin-sidebar-footer {
  border-top: 1px solid #ffffff0f;
  flex-shrink: 0;
  align-items: center;
  gap: .5rem;
  padding: .55rem .75rem .7rem;
  display: flex;
}

.admin-sidebar.collapsed .admin-sidebar-footer {
  justify-content: center;
  padding: .55rem .5rem .7rem;
}

.admin-sidebar-user-row {
  flex: 1;
  align-items: center;
  gap: .55rem;
  min-width: 0;
  display: flex;
  overflow: hidden;
}

.admin-sidebar-user-avatar {
  color: #ffffffb3;
  letter-spacing: 0;
  background: #ffffff1a;
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 26px;
  height: 26px;
  font-size: .72rem;
  font-weight: 700;
  display: flex;
}

.admin-sidebar-user-name {
  color: #94a3b8;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
  font-size: .79rem;
  overflow: hidden;
}

.admin-sidebar-collapse-btn {
  color: #ffffff4d;
  cursor: pointer;
  background: #ffffff0a;
  border: 1px solid #ffffff14;
  border-radius: 6px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 26px;
  height: 26px;
  transition: background .15s, color .15s, border-color .15s;
  display: flex;
}

.admin-sidebar-collapse-btn:hover {
  color: var(--sidebar-accent);
  background: #ffffff14;
  border-color: #ffffff26;
}

.admin-sidebar.collapsed .admin-sidebar-collapse-btn {
  color: #fff6;
  border-radius: 8px;
  width: 30px;
  height: 30px;
}

.admin-sidebar-nav {
  scrollbar-width: thin;
  scrollbar-color: #ffffff1f transparent;
  flex: 1;
  min-height: 0;
  padding: .65rem 0 .5rem;
  overflow: hidden auto;
}

.admin-sidebar-nav::-webkit-scrollbar {
  width: 3px;
}

.admin-sidebar-nav::-webkit-scrollbar-track {
  background: none;
}

.admin-sidebar-nav::-webkit-scrollbar-thumb {
  background: #ffffff1f;
  border-radius: 4px;
}

.admin-sidebar-nav::-webkit-scrollbar-thumb:hover {
  background: #ffffff38;
}

.admin-sidebar-nav .nav-section {
  margin-bottom: .25rem;
}

.admin-sidebar-nav .nav-link {
  font-size: var(--tc-text-base);
  color: #94a3b8;
  border-left: 3px solid #0000;
  align-items: center;
  gap: .75rem;
  padding: .5rem 1rem;
  text-decoration: none;
  transition: color .18s, background .18s, border-color .18s;
  display: flex;
}

.admin-sidebar-nav .nav-link .nav-link-icon {
  color: #94a3b8;
}

.admin-sidebar-nav .nav-link .nav-link-text {
  color: #94a3b8;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

.admin-sidebar-nav .nav-link:hover {
  color: #f8fafc;
  background: #ffffff0f;
}

.admin-sidebar-nav .nav-link:hover .nav-link-icon, .admin-sidebar-nav .nav-link:hover .nav-link-text {
  color: #f8fafc;
}

.admin-sidebar-nav .nav-link.active {
  color: var(--sidebar-accent);
  border-left-color: var(--sidebar-accent);
  background: #ffffff14;
  font-weight: 600;
}

.admin-sidebar-nav .nav-link.active .nav-link-icon, .admin-sidebar-nav .nav-link.active .nav-link-text {
  color: var(--sidebar-accent);
}

.admin-sidebar-nav .nav-link-icon {
  color: inherit;
  opacity: .95;
  width: var(--sidebar-icon-size, 20px);
  height: var(--sidebar-icon-size, 20px);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
}

.admin-sidebar-nav .nav-link-icon svg {
  width: 100%;
  height: 100%;
}

.admin-sidebar-nav .nav-link.nav-link-logout {
  text-align: left;
  cursor: pointer;
  width: 100%;
  font: inherit;
  background: none;
  border: none;
}

.admin-sidebar-spacer {
  flex-shrink: 0;
  min-height: .5rem;
}

.admin-sidebar-logout-wrap {
  border-top: 1px solid #ffffff1a;
  margin-top: auto;
  padding: .5rem 0 3rem;
}

.admin-sidebar-logout-wrap .nav-link {
  border-radius: 6px;
  margin: 0 .5rem;
}

.admin-sidebar[data-radius="rounded"] .nav-link, .admin-sidebar[data-radius="rounded"] .nav-group-btn, .admin-sidebar[data-radius="rounded"] .admin-sidebar-personalize-btn {
  border-radius: 8px;
}

.admin-sidebar[data-density="compact"] .admin-sidebar-nav .nav-link, .admin-sidebar[data-density="compact"] .admin-sidebar-nav .nav-group-btn {
  font-size: var(--tc-text-sm);
  padding: .35rem .85rem;
}

.admin-sidebar[data-density="compact"] .admin-sidebar-nav .nav-link.sub {
  padding-left: 2rem;
}

.admin-sidebar-personalize-float {
  pointer-events: none;
  justify-content: center;
  display: flex;
  position: absolute;
  bottom: .75rem;
  left: .75rem;
  right: .75rem;
}

.admin-sidebar-personalize-float > .admin-sidebar-personalize-btn {
  pointer-events: auto;
}

.admin-sidebar-personalize-btn {
  color: #94a3b8;
  cursor: pointer;
  background: #00000040;
  border: 1px solid #ffffff1a;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 36px;
  height: 36px;
  transition: background .15s, color .15s;
  display: flex;
  box-shadow: 0 2px 8px #0003;
}

.admin-sidebar-personalize-btn:hover {
  color: #e2e8f0;
  background: #ffffff1a;
}

.admin-sidebar-personalize-panel {
  background: var(--sidebar-bg);
  z-index: 60;
  border: 1px solid #ffffff1f;
  border-radius: 10px;
  min-width: 200px;
  margin-bottom: .5rem;
  padding: .75rem;
  animation: .15s admin-personalize-in;
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  box-shadow: 0 8px 24px #00000059;
}

@keyframes admin-personalize-in {
  from {
    opacity: 0;
    transform: translateY(4px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.admin-sidebar-personalize-title {
  text-transform: uppercase;
  letter-spacing: .05em;
  color: #94a3b8;
  border-bottom: 1px solid #ffffff14;
  margin-bottom: .65rem;
  padding-bottom: .35rem;
  font-size: .7rem;
  font-weight: 600;
}

.admin-sidebar-personalize-row {
  margin-bottom: .6rem;
}

.admin-sidebar-personalize-row:last-child {
  margin-bottom: 0;
}

.admin-sidebar-personalize-label {
  color: #64748b;
  margin-bottom: .3rem;
  font-size: .7rem;
  display: block;
}

.admin-sidebar-personalize-themes {
  flex-wrap: wrap;
  gap: .35rem;
  display: flex;
}

.admin-sidebar-theme-btn {
  cursor: pointer;
  border: 2px solid #0000;
  border-radius: 6px;
  width: 22px;
  height: 22px;
  transition: transform .15s, box-shadow .15s;
}

.admin-sidebar-theme-btn:hover {
  transform: scale(1.08);
  box-shadow: 0 0 0 2px #ffffff4d;
}

.admin-sidebar-theme-btn.active {
  border-color: #f8fafc;
  box-shadow: 0 0 0 2px #ffffff80;
}

.admin-sidebar-personalize-options {
  flex-wrap: wrap;
  gap: .35rem;
  display: flex;
}

.admin-sidebar-personalize-options button {
  font-size: var(--tc-text-xs);
  color: #94a3b8;
  cursor: pointer;
  background: #ffffff0f;
  border: 1px solid #0000;
  border-radius: 6px;
  padding: .3rem .6rem;
  transition: background .15s, color .15s;
}

.admin-sidebar-personalize-options button:hover {
  color: #e2e8f0;
  background: #ffffff14;
}

.admin-sidebar-personalize-options button.active {
  color: var(--sidebar-accent);
  background: #ffffff1a;
  border-color: #ffffff26;
}

.admin-sidebar.collapsed .admin-sidebar-personalize-panel {
  min-width: 180px;
}

.admin-topbar {
  min-height: var(--header-height);
  height: var(--header-height);
  background: var(--admin-topbar-bg, #fff);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  --tc-buscador-fondo: #f1f5f9;
  --tc-buscador-fondo-hover: #e8edf3;
  align-items: center;
  gap: 1rem;
  padding: 0 1.5rem;
  display: flex;
}

.admin-shell[data-theme="dark"] .admin-topbar {
  --tc-buscador-fondo: #ffffff0f;
  --tc-buscador-fondo-hover: #ffffff1a;
}

.admin-topbar-actions {
  flex-shrink: 0;
  align-items: center;
  gap: .5rem;
  margin-left: auto;
  display: flex;
}

.admin-search-wrap {
  flex: 0 420px;
  min-width: 0;
}

.admin-search-trigger {
  width: 100%;
  height: 34px;
  font-size: var(--tc-text-md);
  text-align: left;
  border-radius: var(--tc-radius);
  background: var(--tc-buscador-fondo, #f1f5f9);
  color: var(--admin-text-muted, #64748b);
  cursor: pointer;
  border: 1px solid #0000;
  align-items: center;
  gap: .5rem;
  padding: 0 .55rem 0 .7rem;
  font-family: inherit;
  transition: background .15s, color .15s, opacity .16s;
  display: flex;
}

.admin-search-trigger:hover {
  background: var(--tc-buscador-fondo-hover, #e8edf3);
  color: var(--admin-text, #1e293b);
}

.admin-search-wrap[data-panel-abierto="true"] .admin-search-trigger, .admin-search-btn-mobile[data-panel-abierto="true"] {
  opacity: .35;
  pointer-events: none;
}

.admin-search-trigger-icon {
  color: var(--admin-text-muted, #94a3b8);
  flex-shrink: 0;
  align-items: center;
  display: flex;
}

.admin-search-trigger-label {
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

.admin-search-trigger-kbd {
  font-family: inherit;
  font-size: var(--tc-text-xs);
  border-radius: var(--tc-radius-sm);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-table-header, #f8fafc);
  color: var(--admin-text-muted, #94a3b8);
  flex-shrink: 0;
  padding: .1rem .35rem;
  line-height: 1.4;
}

.admin-search-btn-mobile {
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-table-header, #f8fafc);
  width: 34px;
  height: 34px;
  color: var(--admin-text-muted, #475569);
  cursor: pointer;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: none;
}

.admin-search-btn-mobile:hover {
  background: var(--admin-table-hover, #f1f5f9);
  color: var(--admin-text, #1e293b);
}

.admin-topbar-user {
  font-size: var(--tc-text-md);
  color: var(--admin-text-muted, #64748b);
}

.admin-topbar-brand {
  flex-shrink: 0;
  align-items: center;
  display: flex;
}

.admin-topbar-brand-slot {
  justify-content: flex-start;
  align-items: center;
  min-width: 160px;
  min-height: 44px;
  display: flex;
}

.admin-topbar-brand-logo-img {
  object-fit: contain;
  width: auto;
  max-width: 180px;
  height: 44px;
  display: block;
}

.admin-topbar-brand-fallback {
  font-weight: 700;
  font-size: var(--tc-text-2xl);
  color: var(--admin-topbar-text, #1e293b);
  letter-spacing: -.02em;
  line-height: 1.2;
}

.admin-shell[data-theme="dark"] .admin-topbar-brand-fallback {
  color: var(--admin-topbar-text, #f1f5f9);
}

.admin-topbar-user-wrap {
  position: relative;
}

.admin-topbar-user-btn {
  font-size: var(--tc-text-md);
  color: var(--admin-text-muted, #475569);
  background: var(--admin-table-header, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--radius);
  cursor: pointer;
  align-items: center;
  gap: .35rem;
  padding: .4rem .75rem;
  display: flex;
}

.admin-topbar-user-btn:hover {
  background: var(--admin-table-hover, #f1f5f9);
  color: var(--admin-text, #1e293b);
}

.admin-topbar-user-label {
  font-size: var(--tc-text-sm);
}

.admin-topbar-user-dropdown {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--radius);
  min-width: 180px;
  box-shadow: var(--admin-shadow, 0 4px 12px #00000014);
  z-index: 50;
  margin-top: .25rem;
  padding: .35rem 0;
  position: absolute;
  top: 100%;
  right: 0;
}

.admin-topbar-user-item {
  width: 100%;
  font-size: var(--tc-text-md);
  color: var(--admin-text, #334155);
  text-align: left;
  cursor: pointer;
  background: none;
  border: none;
  padding: .5rem 1rem;
  text-decoration: none;
  display: block;
}

.admin-topbar-user-item:hover {
  background: var(--admin-table-hover, #f8fafc);
  color: var(--admin-text, #1e293b);
}

.admin-topbar-user-item-theme {
  border-bottom: 1px solid var(--admin-border);
  margin-bottom: .25rem;
  padding-bottom: .5rem;
}

.tc-infra-indicator {
  align-items: center;
  margin-right: .25rem;
  display: flex;
  position: relative;
}

.tc-infra-indicator-btn {
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-table-header, #f8fafc);
  width: 34px;
  height: 34px;
  color: var(--admin-text-muted, #475569);
  cursor: pointer;
  justify-content: center;
  align-items: center;
  transition: background .15s, color .15s;
  display: flex;
  position: relative;
}

.tc-infra-indicator-btn:hover {
  background: var(--admin-table-hover, #f1f5f9);
  color: var(--admin-text, #1e293b);
}

.tc-infra-badge {
  background: var(--tc-warning, #eab308);
  color: #fff;
  pointer-events: none;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  min-width: 16px;
  height: 16px;
  padding: 0 3px;
  font-size: .65rem;
  font-weight: 700;
  line-height: 1;
  display: flex;
  position: absolute;
  top: -5px;
  right: -5px;
}

.tc-infra-badge[data-critica="true"] {
  background: var(--tc-danger, #ef4444);
}

.tc-infra-dropdown {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
  width: 300px;
  box-shadow: var(--admin-shadow, 0 4px 12px #00000014);
  z-index: 50;
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  overflow: hidden;
}

.tc-infra-dropdown-header {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--tc-text-muted, #64748b);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  padding: .6rem 1rem;
  font-weight: 700;
}

.tc-infra-dropdown-empty {
  font-size: var(--tc-text-sm);
  color: var(--tc-text-muted, #64748b);
  text-align: center;
  padding: 1rem;
}

.tc-infra-dropdown-list {
  max-height: 240px;
  overflow-y: auto;
}

.tc-infra-dropdown-item {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  align-items: flex-start;
  gap: .5rem;
  padding: .6rem 1rem;
  text-decoration: none;
  transition: background .1s;
  display: flex;
}

.tc-infra-dropdown-item:last-child {
  border-bottom: none;
}

.tc-infra-dropdown-item:hover {
  background: var(--admin-table-hover, #f8fafc);
}

.tc-infra-dropdown-dot {
  border-radius: 50%;
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  margin-top: 4px;
}

.tc-infra-dropdown-item-body {
  flex-direction: column;
  gap: 1px;
  min-width: 0;
  display: flex;
}

.tc-infra-dropdown-item-titulo {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
  overflow: hidden;
}

.tc-infra-dropdown-item-desde {
  font-size: var(--tc-text-xs);
  color: var(--tc-text-muted, #64748b);
}

.tc-infra-dropdown-footer {
  font-size: var(--tc-text-sm);
  color: var(--tc-primary-text, #4338ca);
  text-align: center;
  border-top: 1px solid var(--admin-border, #e2e8f0);
  background: var(--tc-primary-bg, #eef2ff);
  padding: .6rem 1rem;
  font-weight: 600;
  text-decoration: none;
  transition: background .1s;
  display: block;
}

.tc-infra-dropdown-footer:hover {
  background: var(--admin-table-hover, #e0e7ff);
}

.admin-topbar-user-item-logout {
  color: #dc2626;
  border-top: 1px solid #e2e8f0;
  margin-top: .25rem;
  padding-top: .5rem;
}

.admin-topbar-user-item-logout:hover {
  color: #b91c1c;
  background: #fef2f2;
}

.admin-sidebar-nav .nav-group {
  margin: 0;
}

.admin-sidebar-nav .nav-group-btn {
  width: 100%;
  font-size: var(--tc-text-base);
  color: #94a3b8;
  cursor: pointer;
  text-align: left;
  background: none;
  border: none;
  border-left: 3px solid #0000;
  align-items: center;
  gap: .75rem;
  padding: .5rem 1rem;
  transition: color .18s, background .18s, border-color .18s;
  display: flex;
}

.admin-sidebar-nav .nav-group-btn .nav-link-icon, .admin-sidebar-nav .nav-group-btn .nav-link-text {
  color: #94a3b8;
}

.admin-sidebar-nav .nav-group-btn .nav-link-text {
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

.admin-sidebar-nav .nav-group-btn .nav-group-chevron {
  flex-shrink: 0;
  align-items: center;
  transition: transform .18s;
  display: flex;
}

.admin-sidebar-nav .nav-group-btn.open .nav-group-chevron {
  transform: rotate(180deg);
}

.admin-sidebar-nav .nav-group-btn:hover {
  color: #f8fafc;
  background: #ffffff14;
}

.admin-sidebar-nav .nav-group-btn.open {
  color: #e2e8f0;
  font-weight: 500;
}

.admin-sidebar-nav .nav-group-children {
  opacity: 0;
  pointer-events: none;
  border-left: 1px solid #ffffff1a;
  max-height: 0;
  margin-left: .5rem;
  padding-left: .5rem;
  transition: max-height .2s, opacity .18s;
  overflow: hidden;
}

.admin-sidebar-nav .nav-group-children.open {
  opacity: 1;
  pointer-events: auto;
  max-height: 800px;
}

.admin-sidebar-nav .nav-link.sub {
  font-size: var(--tc-text-sm);
  margin-left: .25rem;
  padding-left: 1.25rem;
}

.admin-sidebar-nav .nav-link.sub .nav-link-icon {
  width: 20px;
}

.admin-sidebar-nav .nav-subgroup {
  margin-top: .15rem;
  margin-bottom: .15rem;
}

.admin-sidebar-nav .nav-subgroup .nav-subgroup-btn {
  font-size: var(--tc-text-sm);
  min-height: 2rem;
  padding-left: 1.25rem;
}

.admin-sidebar-nav .nav-subgroup .nav-subgroup-children {
  opacity: 0;
  pointer-events: none;
  border-left: 1px solid #ffffff14;
  max-height: 0;
  margin-left: 1rem;
  padding-left: .5rem;
  transition: max-height .2s, opacity .18s;
  overflow: hidden;
}

.admin-sidebar-nav .nav-subgroup .nav-subgroup-children.open {
  opacity: 1;
  pointer-events: auto;
  max-height: 400px;
}

.admin-sidebar-nav .nav-subgroup .nav-subgroup-children .nav-link.sub {
  margin-left: .25rem;
  padding-left: 1.5rem;
}

@media (max-width: 768px) {
  .admin-main {
    margin-left: 0;
  }

  .admin-sidebar {
    height: 100vh;
    transition: transform .25s, width .2s;
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    transform: translateX(-100%);
    box-shadow: 4px 0 24px #00000026;
  }

  .admin-sidebar.mobile-open {
    transform: translateX(0);
  }

  .admin-sidebar-backdrop {
    pointer-events: none;
    display: block;
  }

  .admin-sidebar-backdrop.open {
    pointer-events: auto;
  }

  .admin-sidebar.collapsed.mobile-open {
    width: 240px;
    min-width: 240px;
  }

  .admin-sidebar.collapsed .nav-link-text, .admin-sidebar.collapsed .nav-group-chevron {
    opacity: 1;
    white-space: normal;
    width: auto;
    padding: revert;
    margin: revert;
    display: revert;
    overflow: visible;
  }

  .admin-sidebar.collapsed .nav-link, .admin-sidebar.collapsed .nav-group-btn {
    justify-content: flex-start;
    padding-left: 1rem;
  }

  .admin-sidebar.collapsed .nav-link.sub {
    padding-left: 2.25rem;
  }
}

.admin-topbar-menu-btn {
  border-radius: var(--radius);
  color: #475569;
  cursor: pointer;
  background: none;
  border: none;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  display: none;
}

.admin-topbar-menu-btn:hover {
  color: #1e293b;
  background: #f1f5f9;
}

@media (max-width: 768px) {
  .admin-topbar-menu-btn {
    display: flex;
  }

  .admin-topbar {
    gap: .5rem;
    padding: 0 .75rem;
  }

  .admin-search-wrap {
    display: none;
  }

  .admin-search-btn-mobile {
    display: flex;
  }

  .admin-topbar-user-label {
    display: none;
  }

  .admin-topbar-user-btn {
    gap: .25rem;
    padding: .3rem .5rem;
  }

  .admin-topbar-brand-logo-img {
    height: 28px;
    max-height: 28px;
  }
}

.admin-content-area {
  flex: 1;
  min-width: 0;
  display: flex;
  overflow: hidden;
}

.admin-config-nav {
  background: #fff;
  border-right: 1px solid #e2e8f0;
  flex-direction: column;
  gap: .15rem;
  width: 200px;
  min-width: 200px;
  padding: 1rem 0;
  display: flex;
}

.admin-config-nav-title {
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #64748b;
  padding: 0 1rem .5rem;
  font-size: .7rem;
}

.admin-config-nav-link {
  font-size: var(--tc-text-md);
  color: #475569;
  border-left: 3px solid #0000;
  padding: .5rem 1rem;
  text-decoration: none;
  display: block;
}

.admin-config-nav-link:hover {
  color: #1e293b;
  background: #f8fafc;
}

.admin-config-nav-link.active {
  color: #2563eb;
  background: #eff6ff;
  border-left-color: #2563eb;
  font-weight: 600;
}

.admin-content-with-config {
  flex: 1;
  min-width: 0;
  overflow-y: auto;
}

@media (max-width: 1024px) {
  .admin-content .mikrotik-layout {
    grid-template-columns: 1fr !important;
  }
}

.admin-content {
  background: var(--admin-bg, #f8fafc);
  color: var(--admin-text, #1e293b);
  flex: 1;
  padding: 1.25rem 1.5rem 2rem;
  overflow-y: auto;
}

.admin-content .app-header-title, .admin-content h1 {
  color: var(--admin-text, #1e293b);
}

.admin-content .app-header-meta, .admin-content .portal-meta-text {
  color: var(--admin-text-muted, #64748b);
}

.admin-content .portal-stat-card, .admin-content [data-card], .admin-content .module-placeholder {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  color: var(--admin-text, #334155);
}

.admin-content .portal-stat-card span, .admin-content .kpi-item-label {
  color: var(--admin-text-muted, #64748b);
}

.admin-content .portal-stat-card strong, .admin-content .kpi-item-value, .admin-content .module-placeholder h1 {
  color: var(--admin-text, #1e293b);
}

.admin-content .breadcrumb, .admin-content .breadcrumb-item {
  color: var(--admin-text-muted, #64748b);
}

.admin-content .breadcrumb-item.current {
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.admin-content .breadcrumb-sep {
  color: var(--admin-text-muted, #94a3b8);
}

.admin-content .templates-shell, .admin-content .templates-list-item, .admin-content .templates-block-card, .admin-content .templates-panel-editor, .admin-content .templates-panel-preview, .admin-content .templates-panel-logos, .admin-content .templates-panel-versions {
  color: #1e293b !important;
  background: #fff !important;
  border-color: #e2e8f0 !important;
}

.admin-content .templates-list-item span, .admin-content .templates-list-item small, .admin-content .templates-checkbox-group label, .admin-content .templates-toggle, .admin-content .templates-variable-group strong {
  color: #475569 !important;
}

.admin-content .templates-list-item.is-active {
  border-color: #2563eb !important;
  box-shadow: inset 0 0 0 1px #2563eb26 !important;
}

.admin-content .templates-token-button {
  border: 1px solid #e2e8f0;
  color: #1e293b !important;
  background: #f1f5f9 !important;
}

.admin-content .templates-preview-raw summary {
  color: #2563eb;
}

.admin-content .templates-preview-raw pre, .admin-content .module-placeholder p {
  color: #64748b;
}

.admin-content .kpi-strip {
  border-radius: var(--radius);
  background: #fff;
  border: 1px solid #e2e8f0;
}

.admin-content .kpi-item {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.admin-content .data-card {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  color: var(--admin-text, #334155);
  box-shadow: var(--admin-shadow, 0 1px 3px #00000014);
  border-radius: 8px;
}

.asignar-tecnico-wrap {
  max-width: 700px;
  margin: 0 auto;
}

.asignar-tecnico-card {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: #fff;
  border-radius: 10px;
  padding: 2rem 2.25rem;
  box-shadow: 0 2px 8px #0000000f;
}

.asignar-tecnico-header {
  margin-bottom: 0;
}

.asignar-tecnico-title {
  font-size: var(--tc-text-xl);
  color: var(--admin-text, #1e293b);
  align-items: center;
  gap: .75rem;
  margin: 0 0 1.25rem;
  font-weight: 600;
  display: flex;
}

.asignar-tecnico-title-icon {
  color: var(--admin-primary, #2563eb);
  justify-content: center;
  align-items: center;
  display: flex;
}

.asignar-tecnico-meta {
  flex-wrap: wrap;
  gap: .75rem 2rem;
  margin: 0;
  display: flex;
}

.asignar-tecnico-meta-row {
  align-items: baseline;
  gap: .35rem;
  margin: 0;
  display: flex;
}

.asignar-tecnico-meta-row dt {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
  font-weight: 600;
}

.asignar-tecnico-meta-row dd {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-size: .9375rem;
}

.asignar-tecnico-error {
  margin: 1rem 0 0;
}

.asignar-tecnico-message {
  color: var(--admin-text-muted, #64748b);
  margin: 1rem 0 0;
  font-size: .9375rem;
}

.asignar-tecnico-sep {
  border: none;
  border-top: 1px solid var(--admin-border, #e2e8f0);
  margin: 1.5rem 0;
}

.asignar-tecnico-form {
  margin-top: 0;
}

.asignar-tecnico-field {
  margin-bottom: 1.25rem;
}

.asignar-tecnico-field:last-of-type {
  margin-bottom: 1.5rem;
}

.asignar-tecnico-label {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  margin-bottom: .4rem;
  font-weight: 600;
  display: block;
}

.asignar-tecnico-select, .asignar-tecnico-input {
  width: 100%;
  color: var(--admin-text, #1e293b);
  border: 1px solid var(--admin-border, #cbd5e1);
  background: #fff;
  border-radius: 6px;
  padding: .55rem .75rem;
  font-size: .9375rem;
}

.asignar-tecnico-hint {
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
  margin: .35rem 0 0;
}

.asignar-tecnico-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: .75rem;
  display: flex;
}

.orden-servicio-dashboard {
  width: 100%;
  max-width: 90rem;
  margin: 0 auto;
  padding: 0 1rem;
}

.orden-header {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  margin-bottom: 1.5rem;
  padding-bottom: 1.25rem;
}

.orden-header-compact .orden-header-block {
  gap: .2rem;
  margin-top: .5rem;
  display: grid;
}

.orden-header-compact .orden-header-line {
  font-size: var(--tc-text-md);
  color: var(--admin-text, #334155);
  margin: 0;
}

.orden-header-subtitle {
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.orden-modal-overlay {
  z-index: 1000;
  background: #00000080;
  justify-content: center;
  align-items: center;
  padding: 1rem;
  display: flex;
  position: fixed;
  inset: 0;
}

.orden-modal {
  background: var(--panel, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--radius);
  width: 100%;
  max-width: 24rem;
  box-shadow: var(--shadow);
  padding: 1.25rem 1.5rem;
}

.orden-panel-acciones {
  flex-wrap: wrap;
  align-items: flex-start;
  gap: .75rem 1.25rem;
  margin-bottom: .75rem;
  display: flex;
}

.orden-panel-acciones-top {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  gap: .6rem 1rem;
  margin-bottom: 1rem;
  padding: .5rem 0 .75rem;
}

.orden-btn-destructive {
  color: var(--danger, #dc2626) !important;
  border-color: var(--danger, #dc2626) !important;
}

.orden-btn-destructive:hover:not(:disabled) {
  background: var(--danger, #dc2626) !important;
  color: #fff !important;
}

.orden-acciones-grupo {
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  display: flex;
}

.orden-acciones-label {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted, #64748b);
  min-width: 4rem;
  font-weight: 600;
}

.orden-acciones-btns {
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem;
  display: flex;
}

.orden-accion-inline {
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  display: inline-flex;
}

.orden-table-wrap {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 8px;
  overflow-x: auto;
}

.orden-equipos-table {
  margin: 0;
}

.orden-muted {
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-md);
}

.orden-materiales-add {
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  margin-bottom: .75rem;
  display: flex;
}

.orden-historial-time {
  min-width: 2.5rem;
  color: var(--admin-text-muted, #64748b);
  font-size: .85rem;
}

.orden-header-top {
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  margin-bottom: .25rem;
  display: flex;
}

.orden-numero {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-size: 1.5rem;
  font-weight: 700;
}

.orden-estado {
  font-size: var(--tc-text-sm);
  border-radius: 8px;
  padding: .3rem .65rem;
  font-weight: 600;
}

.orden-estado--no-asignada {
  color: #92400e;
  background: #fef3c7;
  border: 1px solid #fcd34d;
}

.orden-estado--asignada {
  color: #1e40af;
  background: #dbeafe;
  border: 1px solid #93c5fd;
}

.orden-estado--en-camino {
  color: #0369a1;
  background: #e0f2fe;
  border: 1px solid #7dd3fc;
}

.orden-estado--en-progreso {
  color: #166534;
  background: #dcfce7;
  border: 1px solid #86efac;
}

.orden-estado--pausada {
  color: #c2410c;
  background: #ffedd5;
  border: 1px solid #fdba74;
}

.orden-estado--en-aprobacion {
  color: #5b21b6;
  background: #ede9fe;
  border: 1px solid #c4b5fd;
}

.orden-estado--pendiente {
  color: #854d0e;
  background: #fef9c3;
  border: 1px solid #fde047;
}

.orden-estado--completada {
  color: #166534;
  background: #dcfce7;
  border: 1px solid #86efac;
}

.orden-estado--cancelada {
  color: #991b1b;
  background: #fee2e2;
  border: 1px solid #fca5a5;
}

.orden-estado--anulada {
  color: #475569;
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
}

.orden-estado--neutral {
  color: #475569;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
}

.orden-tipo {
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 .35rem;
  font-size: .9375rem;
}

.orden-header-meta {
  margin: 0;
}

.orden-meta-item {
  color: var(--admin-text, #334155);
  font-size: .9375rem;
}

.orden-error {
  margin-bottom: 1rem;
}

.orden-grid {
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
  display: grid;
}

.orden-grid-cards {
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
}

.orden-grid-cards .orden-card {
  min-height: 0;
  padding: .9rem 1.1rem;
}

.orden-card-full {
  grid-column: 1 / -1;
}

@media (max-width: 1024px) {
  .orden-grid {
    grid-template-columns: 1fr;
  }

  .orden-grid-cards {
    grid-template-columns: 1fr 1fr;
  }

  .orden-card-full {
    grid-column: 1;
  }
}

@media (max-width: 600px) {
  .orden-grid-cards {
    grid-template-columns: 1fr;
  }
}

.orden-col-izq, .orden-col-der {
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
  display: flex;
}

.orden-card {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: #fff;
  border-radius: 10px;
  padding: 1.25rem 1.5rem;
  box-shadow: 0 2px 8px #0000000f;
}

.orden-card-title {
  font-size: var(--tc-text-sm);
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted, #64748b);
  align-items: center;
  gap: .5rem;
  margin: 0 0 .4rem;
  font-weight: 600;
  display: flex;
}

.orden-grid-cards .orden-card-title {
  margin-bottom: .25rem;
}

.orden-card-icon {
  font-size: var(--tc-text-lg);
}

.orden-card-value {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-size: .9375rem;
  line-height: 1.4;
}

.orden-direccion-completa {
  font-size: var(--tc-text-md);
  grid-template-columns: auto 1fr;
  gap: .25rem 1rem;
  margin: 0;
  display: grid;
}

.orden-direccion-completa dt {
  color: var(--admin-text-muted, #64748b);
  font-weight: 500;
}

.orden-direccion-completa dd {
  margin: 0;
}

.orden-card-meta {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: .35rem 0 0;
}

.orden-card-muted {
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 .5rem;
  font-size: .9375rem;
}

.orden-card-tecnico .orden-btn-reasignar {
  margin-top: .75rem;
  display: inline-block;
}

.orden-card-acciones .orden-acciones-list {
  flex-wrap: wrap;
  gap: .5rem;
  display: flex;
}

.orden-section {
  margin-bottom: 1rem;
}

.orden-section-title {
  font-size: var(--tc-text-md);
  color: var(--admin-text, #1e293b);
  margin: 0 0 .5rem;
  font-weight: 600;
}

.orden-section-card {
  background: var(--admin-table-header, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 10px;
  padding: 1.25rem 1.5rem;
  box-shadow: 0 2px 8px #0000000f;
}

.orden-historial {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: #fff;
  border-radius: 10px;
  padding: 1rem 1.25rem;
  box-shadow: 0 2px 8px #0000000f;
}

.orden-historial-compact {
  padding: .6rem .9rem;
}

.orden-historial-compact .orden-section-title {
  margin-bottom: .4rem;
}

.orden-historial-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.orden-historial-item {
  font-size: var(--tc-text-md);
  color: var(--admin-text, #334155);
  align-items: center;
  gap: .5rem;
  padding: .35rem 0;
  display: flex;
}

.orden-historial-compact .orden-historial-item {
  gap: .4rem;
  padding: .15rem 0;
  font-size: .85rem;
}

.orden-historial-item .orden-historial-time {
  flex-shrink: 0;
}

.orden-historial-compact .orden-historial-time {
  min-width: 2.25rem;
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.orden-historial-dot {
  background: var(--admin-primary, #2563eb);
  border-radius: 50%;
  flex-shrink: 0;
  width: 8px;
  height: 8px;
}

.orden-link-back {
  margin-top: .5rem;
  display: inline-block;
}

.admin-content .admin-table {
  border-collapse: collapse;
  width: 100%;
  font-size: var(--tc-text-md);
}

.admin-content .admin-table th, .admin-content .admin-table td {
  text-align: left;
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  padding: .75rem 1rem;
}

.admin-content .admin-table thead th {
  background: var(--admin-table-header, #f8fafc);
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.admin-content .admin-table tbody tr:hover {
  background: var(--admin-table-hover, #f8fafc);
}

.admin-content .admin-table-toolbar input[type="search"] {
  border: 1px solid var(--admin-input-border, #e2e8f0);
  border-radius: var(--radius);
  background: var(--admin-input-bg, #fff);
  color: var(--admin-text, #1e293b);
  padding: .5rem .75rem;
}

.admin-content .data-card-title {
  color: var(--admin-text, #1e293b);
}

.admin-content .portal-body-text {
  color: var(--admin-text-muted, #64748b);
}

.admin-content .usuarios-toggle-wrap {
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: .5rem 0;
  display: flex;
}

.admin-content .usuarios-toggle-label {
  font-size: var(--tc-text-md);
  color: var(--admin-text, #1e293b);
  font-weight: 500;
}

.admin-content .usuarios-toggle {
  background: var(--admin-border, #cbd5e1);
  cursor: pointer;
  border-radius: 999px;
  flex-shrink: 0;
  width: 2.75rem;
  height: 1.5rem;
  transition: background .2s;
  position: relative;
}

.admin-content .usuarios-toggle.is-on {
  background: var(--admin-primary, #2563eb);
}

.admin-content .usuarios-toggle:after {
  content: "";
  background: #fff;
  border-radius: 50%;
  width: 1.25rem;
  height: 1.25rem;
  transition: transform .2s;
  position: absolute;
  top: 2px;
  left: 2px;
  box-shadow: 0 1px 3px #0003;
}

.admin-content .usuarios-toggle.is-on:after {
  transform: translateX(1.25rem);
}

.admin-content .usuarios-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
}

.admin-content .usuarios-page-title {
  font-size: var(--tc-text-xl);
  color: var(--admin-text, #1e293b);
  margin: 0 0 .25rem;
  font-weight: 600;
}

.admin-content .usuarios-page-meta {
  font-size: var(--tc-text-md);
  color: var(--admin-text-muted, #475569);
  margin: 0 0 1.25rem;
}

.admin-content .usuarios-table-wrap {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 1px 3px #0000000f;
}

.admin-content .usuarios-table {
  border-collapse: collapse;
  width: 100%;
  font-size: var(--tc-text-md);
}

.admin-content .usuarios-table th, .admin-content .usuarios-table td {
  text-align: left;
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  color: var(--admin-text, #334155);
  padding: .875rem 1.25rem;
}

.admin-content .usuarios-table thead th {
  background: var(--admin-table-header, #f1f5f9);
  font-weight: 600;
  font-size: var(--tc-text-sm);
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text, #1e293b);
}

.admin-content .usuarios-table tbody tr:hover {
  background: var(--admin-table-hover, #f8fafc);
}

.admin-content .usuarios-table tbody tr:last-child td {
  border-bottom: none;
}

.admin-content .usuarios-edit-page {
  background: #f6f7fb;
  border-radius: 10px;
  margin-top: .5rem;
  padding: 1.5rem;
}

.admin-content .usuarios-edit-top {
  flex-direction: column;
  align-items: stretch;
  gap: 1.5rem;
  display: flex;
}

.admin-content .usuarios-section-card {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: #fff;
  border-radius: 10px;
  padding: 1.5rem 1.75rem;
  box-shadow: 0 2px 8px #0000000f;
}

.admin-content .usuarios-card-datos, .admin-content .usuarios-card-seguridad {
  min-width: 0;
}

.admin-content .usuarios-section-title {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--admin-text, #1e293b);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  margin: 0 0 1.25rem;
  padding-bottom: .5rem;
  font-weight: 600;
}

.admin-content .usuarios-form-label {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  margin-bottom: .4rem;
  font-weight: 600;
  display: block;
}

.admin-content .usuarios-form-input, .admin-content .usuarios-form-select {
  width: 100%;
  max-width: 100%;
  font-size: var(--tc-text-md);
  color: var(--admin-text, #1e293b);
  border: 1px solid var(--admin-border, #cbd5e1);
  background: #fff;
  border-radius: 6px;
  padding: .55rem .75rem;
}

.admin-content .usuarios-form-input--readonly {
  background: var(--admin-table-header, #f1f5f9);
  color: var(--admin-text-muted, #64748b);
  cursor: default;
}

.admin-content .usuarios-form-input::placeholder {
  color: #94a3b8;
}

.admin-content .usuarios-form-grid {
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem 1.5rem;
  display: grid;
}

.admin-content .usuarios-form-grid.usuarios-form-grid--datos .usuarios-form-full {
  grid-column: auto;
}

.admin-content .usuarios-form-grid .usuarios-inline-toggle, .admin-content .usuarios-form-grid .usuarios-form-full {
  grid-column: 1 / -1;
}

.admin-content .usuarios-inline-toggle {
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: .25rem 0;
  display: flex;
}

.admin-content .usuarios-inline-toggle .usuarios-form-label {
  margin-bottom: 0;
}

.admin-content .usuarios-form-fields {
  flex-direction: column;
  gap: 1.25rem;
  display: flex;
}

.admin-content .usuarios-form-actions {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  display: flex;
}

@media (max-width: 600px) {
  .admin-content .usuarios-form-grid {
    grid-template-columns: 1fr;
  }
}

.admin-content .usuarios-edit-layout {
  grid-template-columns: 3fr 2fr;
  align-items: start;
  gap: 1.75rem 2rem;
  display: grid;
}

@media (max-width: 1024px) {
  .admin-content .usuarios-edit-layout {
    grid-template-columns: 1fr;
  }
}

.admin-content .usuarios-edit-form {
  min-width: 0;
}

.admin-content .usuarios-permissions-section {
  border-top: none;
  min-width: 0;
  margin-top: 0;
  padding: 0;
}

.admin-content .usuarios-permissions-section-title {
  font-size: var(--tc-text-lg);
  color: var(--admin-text, #1e293b);
  margin: 0 0 .4rem;
  font-weight: 600;
}

.admin-content .usuarios-permissions-section-meta {
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 1.25rem;
}

.admin-content .usuarios-permissions-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  display: grid;
}

@media (max-width: 1024px) {
  .admin-content .usuarios-permissions-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .admin-content .usuarios-permissions-list {
    grid-template-columns: 1fr;
  }
}

.admin-content .usuarios-permissions-card {
  border: 1px solid var(--admin-border, #e2e8f0);
  cursor: pointer;
  background: #fff;
  border-radius: 10px;
  transition: transform .2s, box-shadow .2s, border-color .2s;
  box-shadow: 0 2px 8px #0000000f;
}

.admin-content .usuarios-permissions-card:hover {
  border-color: #cbd5e1;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px #0000001a;
}

.admin-content .usuarios-permissions-card-inner {
  flex-direction: column;
  align-items: stretch;
  gap: .5rem;
  padding: 1.25rem;
  display: flex;
}

.admin-content .usuarios-permissions-card-head {
  align-items: center;
  gap: .6rem;
  display: flex;
}

.admin-content .usuarios-permissions-card-icon {
  border-radius: 50%;
  flex-shrink: 0;
  width: 10px;
  height: 10px;
}

.admin-content .usuarios-permissions-card-name {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-size: .9375rem;
  font-weight: 600;
  line-height: 1.3;
}

.admin-content .usuarios-permissions-card-btn {
  font-size: var(--tc-text-sm);
  cursor: pointer;
  border-radius: 6px;
  margin-top: .35rem;
  padding: .5rem .85rem;
  transition: background .15s, border-color .15s, color .15s;
}

.admin-content .usuarios-permissions-card-btn--outline {
  color: #2563eb;
  background: none;
  border: 1px solid #2563eb;
  font-weight: 600;
}

.admin-content .usuarios-permissions-card-btn--outline:hover {
  color: #1d4ed8;
  background: #2563eb14;
  border-color: #1d4ed8;
}

.usuarios-permissions-modal-backdrop {
  z-index: 1000;
  background: #0f172a66;
  justify-content: center;
  align-items: center;
  padding: 1rem;
  animation: .2s usuarios-modal-fade;
  display: flex;
  position: fixed;
  inset: 0;
}

@keyframes usuarios-modal-fade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.usuarios-permissions-modal {
  background: var(--admin-card-bg, #fff);
  border-radius: 12px;
  flex-direction: column;
  width: 100%;
  max-width: 520px;
  max-height: 90vh;
  animation: .25s usuarios-modal-scale;
  display: flex;
  box-shadow: 0 20px 40px #00000026;
}

@keyframes usuarios-modal-scale {
  from {
    opacity: 0;
    transform: scale(.96);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.usuarios-permissions-modal-title {
  color: var(--admin-text, #1e293b);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  margin: 0;
  padding: 1.25rem 1.5rem;
  font-size: 1.125rem;
  font-weight: 600;
}

.usuarios-permissions-modal-body {
  grid-template-columns: 1fr 1fr;
  align-items: start;
  gap: 1rem 1.5rem;
  padding: 1.25rem 1.5rem;
  display: grid;
  overflow-y: auto;
}

.usuarios-permissions-modal-body--single {
  grid-template-columns: 1fr;
}

.usuarios-permissions-modal .usuarios-permissions-col {
  flex-direction: column;
  gap: 0;
  min-width: 0;
  display: flex;
}

.usuarios-permissions-modal .usuarios-permissions-col .usuarios-permission-row {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  padding: .625rem 0;
}

.usuarios-permissions-modal .usuarios-permissions-col .usuarios-permission-row:last-child {
  border-bottom: none;
}

.usuarios-permissions-modal .usuarios-permission-row {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #334155);
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  padding: .625rem 0;
  display: flex;
}

.usuarios-permissions-modal .usuarios-permission-label {
  color: var(--admin-text, #1e293b);
  flex: 1;
  min-width: 0;
  margin-right: .5rem;
  font-weight: 500;
}

.usuarios-permissions-modal .usuarios-permission-row .usuarios-toggle {
  flex-shrink: 0;
}

.usuarios-permissions-modal-actions {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  background: #f8fafc;
  border-radius: 0 0 12px 12px;
  justify-content: flex-end;
  gap: .75rem;
  padding: 1rem 1.5rem;
  display: flex;
}

@media (max-width: 1024px) {
  .admin-content .usuarios-edit-grid {
    grid-template-columns: 1fr !important;
  }
}

.server-metrics-widget .server-metrics-message {
  margin: 0;
  padding: .5rem 0;
}

.server-metrics-widget .server-metrics-error {
  color: #b91c1c;
  border-radius: var(--radius);
  background: #fef2f2;
  border: 1px solid #fecaca;
  padding: .75rem 1rem;
}

.server-metrics-body {
  flex-direction: column;
  gap: .5rem;
  display: flex;
}

.server-metrics-row {
  font-size: var(--tc-text-base);
  grid-template-columns: 1.5rem 1fr auto;
  align-items: center;
  gap: .75rem;
  min-height: 1.75rem;
  display: grid;
}

.server-metrics-bar-row {
  grid-template-columns: 1fr;
  margin-top: -.25rem;
  margin-bottom: .25rem;
  padding-left: 0;
}

.server-metrics-icon {
  color: #64748b;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
}

.server-metrics-label {
  color: #64748b;
  font-weight: 500;
}

.server-metrics-value {
  color: #1e293b;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.server-metrics-bar-wrap {
  background: #e2e8f0;
  border-radius: 999px;
  height: 8px;
  overflow: hidden;
}

.server-metrics-bar {
  background: #3b82f6;
  border-radius: 999px;
  height: 100%;
  transition: width .3s;
}

.server-metrics-bar-mem {
  background: #0ea5e9;
}

.server-metrics-bar-disk {
  background: #8b5cf6;
}

.admin-content .server-metrics-widget .data-card-title {
  color: #1e293b;
}

.admin-modal-backdrop {
  z-index: 10000;
  background: #00000080;
  justify-content: center;
  align-items: center;
  padding: 1.5rem;
  animation: .15s admin-modal-fade-in;
  display: flex;
  position: fixed;
  inset: 0;
}

@keyframes admin-modal-fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.admin-modal-card, .admin-modal-floating {
  background: var(--admin-card-bg, #fff);
  border-radius: var(--radius-lg);
  border: 1px solid var(--admin-border, #e2e8f0);
  flex-direction: column;
  width: 100%;
  max-width: 28rem;
  max-height: calc(100vh - 3rem);
  animation: .2s admin-modal-scale-in;
  display: flex;
  position: relative;
  overflow: hidden;
  box-shadow: 0 25px 50px -12px #00000040;
}

@keyframes admin-modal-scale-in {
  from {
    opacity: 0;
    transform: scale(.96)translateY(-8px);
  }

  to {
    opacity: 1;
    transform: scale(1)translateY(0);
  }
}

.admin-modal-header {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-table-header, #f8fafc);
  flex-shrink: 0;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 1.25rem;
  display: flex;
}

.admin-modal-title {
  font-size: var(--tc-text-lg);
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 600;
}

.admin-modal-close {
  width: 2rem;
  height: 2rem;
  color: var(--admin-text-muted, #64748b);
  cursor: pointer;
  border-radius: var(--radius);
  background: none;
  border: none;
  justify-content: center;
  align-items: center;
  font-size: 1.5rem;
  line-height: 1;
  display: flex;
}

.admin-modal-close[disabled] {
  opacity: .4;
  cursor: not-allowed;
}

.admin-modal-close:hover {
  background: var(--admin-table-hover, #e2e8f0);
  color: var(--admin-text, #1e293b);
}

.smartolt-modal-backdrop {
  animation: .15s admin-modal-fade-in;
}

.smartolt-modal {
  animation: .2s admin-modal-scale-in;
}

.smartolt-modal-close:hover {
  background: var(--admin-table-hover, #e2e8f0);
  color: var(--admin-text, #1e293b);
  border-radius: 6px;
}

.smartolt-modal-light .smartolt-subdomain-row, .smartolt-modal-light .smartolt-apikey-row {
  align-items: stretch;
}

.smartolt-modal-light .smartolt-subdomain-row input, .smartolt-modal-light .smartolt-apikey-row input {
  outline: none;
  line-height: 1.25;
}

.smartolt-modal-light .smartolt-icon-btn:hover:not(:disabled) {
  color: #1e293b !important;
  background: #f1f5f9 !important;
}

.smartolt-modal-light .smartolt-btn-probar:not(:disabled):hover {
  background: #2563eb !important;
}

.admin-modal-card > form {
  flex-direction: column;
  flex: 1;
  min-height: 0;
  display: flex;
}

.admin-modal-body {
  flex: 1;
  min-height: 0;
  padding: 1.25rem;
  overflow-y: auto;
}

.admin-modal-footer {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-table-header, #f8fafc);
  flex-shrink: 0;
  padding: 1rem 1.25rem;
}

.vpn-config-toggle-wrap {
  align-items: center;
  gap: .75rem;
  padding: .5rem 0;
  display: flex;
}

.vpn-config-toggle-wrap .vpn-config-toggle-label {
  font-size: var(--tc-text-md);
  color: #334155;
  flex: 1;
  font-weight: 500;
  line-height: 1.4;
}

.vpn-config-toggle-wrap .vpn-config-toggle-helper {
  font-size: var(--tc-text-xs);
  color: #64748b;
  margin-top: .25rem;
  font-weight: 400;
}

.admin-shell[data-theme="dark"] .vpn-config-toggle-wrap .vpn-config-toggle-label {
  color: var(--admin-text);
}

.admin-shell[data-theme="dark"] .vpn-config-toggle-wrap .vpn-config-toggle-helper {
  color: var(--admin-text-muted);
}

.vpn-config-toggle-track {
  cursor: pointer;
  background: #cbd5e1;
  border: none;
  border-radius: 9999px;
  flex-shrink: 0;
  align-items: center;
  width: 2.75rem;
  height: 1.5rem;
  transition: background .2s;
  display: inline-flex;
  position: relative;
}

.vpn-config-toggle-track:hover {
  background: #94a3b8;
}

.vpn-config-toggle-track.has-checked {
  background: var(--sidebar-accent, #0ea5e9);
}

.vpn-config-toggle-track.has-checked:hover {
  filter: brightness(1.05);
}

.vpn-config-toggle-input {
  opacity: 0;
  pointer-events: none;
  width: 0;
  height: 0;
  position: absolute;
}

.vpn-config-toggle-thumb {
  pointer-events: none;
  background: #fff;
  border-radius: 50%;
  width: 1.25rem;
  height: 1.25rem;
  transition: transform .2s;
  position: absolute;
  left: 2px;
  box-shadow: 0 1px 2px #0003;
}

.vpn-config-toggle-track.has-checked .vpn-config-toggle-thumb {
  transform: translateX(1.25rem);
}

.vpn-config-toggle-track:focus-within {
  outline: 2px solid var(--sidebar-accent, #0ea5e9);
  outline-offset: 2px;
}

.module-placeholder {
  background: var(--surface-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  max-width: 640px;
  padding: 2rem;
}

.module-placeholder h1 {
  font-size: var(--tc-text-2xl);
  color: var(--text);
  margin: 0 0 .5rem;
}

.module-placeholder p {
  color: var(--muted);
  margin: 0;
  line-height: 1.6;
}

.btn-sm {
  font-size: var(--tc-text-base);
  border-radius: var(--radius);
  padding: .5rem .75rem;
}

* {
  box-sizing: border-box;
}

html, body {
  background: radial-gradient(circle at top left, #53b2ff38, transparent 28%),
    radial-gradient(circle at bottom right, #33d69f29, transparent 24%),
    var(--bg);
  min-height: 100%;
  color: var(--text);
  text-rendering: optimizelegibility;
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;
  line-height: 1.5;
}

body {
  min-height: 100vh;
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

label {
  display: block;
}

::selection {
  color: #fff;
  background: #53b2ff52;
}

button, input, select, textarea {
  font: inherit;
  transition: border-color .18s, box-shadow .18s, background .18s, color .18s, opacity .18s, transform .18s;
}

input, select, textarea {
  width: 100%;
  color: var(--text);
  background: #040c1699;
  border: 1px solid #9fb3c838;
  border-radius: 14px;
  margin-top: .45rem;
  padding: .85rem .95rem;
}

input::placeholder, textarea::placeholder {
  color: #9fb3c8ad;
}

:where(a, button, input, select, textarea):focus-visible {
  outline-offset: 2px;
  outline: 2px solid #53b2ff66;
}

input:focus, select:focus, textarea:focus {
  border-color: #53b2ff7a;
  box-shadow: 0 0 0 4px #53b2ff1f;
}

textarea {
  resize: vertical;
  min-height: 96px;
}

button {
  cursor: pointer;
  border: none;
}

button:disabled {
  opacity: .58;
  cursor: not-allowed;
  transform: none !important;
}

.portal-login-card, .portal-section-card, .portal-stat-card, .portal-task-card, .portal-mini-card, .portal-empty-card {
  background: var(--panel);
  border: 1px solid var(--panel-border);
  box-shadow: var(--shadow);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border-radius: 24px;
}

.inline-link:hover, a:hover {
  color: #8be0ff;
}

.portal-login-shell, .portal-shell {
  width: min(1240px, 100% - 1.25rem);
  margin: 0 auto;
  padding: 1rem 0 2.5rem;
}

.portal-login-shell {
  place-items: center;
  min-height: 100vh;
  display: grid;
}

.portal-login-card {
  grid-template-columns: 1.2fr .95fr;
  gap: 1rem;
  width: min(980px, 100%);
  padding: 1rem;
  display: grid;
}

.portal-login-copy, .portal-login-form, .portal-profile-card {
  background: var(--panel-soft);
  border: 1px solid #6ea8ff1f;
  border-radius: 22px;
  padding: 1.3rem;
}

.portal-login-copy h1, .portal-topbar h1 {
  margin: .3rem 0 .9rem;
  font-size: clamp(2rem, 5vw, 3.2rem);
}

.portal-login-copy p, .portal-login-form label, .portal-topbar-subtitle, .portal-body-text, .portal-meta-text, .portal-profile-card p, .portal-empty-card p, .portal-section-heading p {
  color: var(--muted);
  line-height: 1.5;
}

.portal-login-form {
  gap: 1rem;
  display: grid;
}

.portal-login-form label, .portal-form-grid > label {
  font-weight: 600;
}

.portal-kicker {
  text-transform: uppercase;
  letter-spacing: .16em;
  color: var(--accent);
  margin: 0;
  font-size: .78rem;
}

.portal-topbar {
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
  display: flex;
}

.portal-topbar h1 {
  font-size: clamp(1.8rem, 4vw, 2.8rem);
}

.portal-topbar-actions {
  flex-wrap: wrap;
  gap: .75rem;
  display: flex;
}

.portal-primary-button, .portal-secondary-button, .portal-ghost-button {
  border-radius: 14px;
  padding: .9rem 1rem;
  font-weight: 700;
  transition: transform .18s, opacity .18s, background .18s;
}

.portal-primary-button:hover, .portal-secondary-button:hover, .portal-ghost-button:hover {
  transform: translateY(-1px);
}

.portal-primary-button {
  color: #04101d;
  background: linear-gradient(135deg, var(--accent), #8be0ff);
}

.admin-content .portal-primary-button {
  color: #fff;
  background: var(--admin-primary, #2563eb);
}

.admin-content .portal-primary-button:hover {
  filter: brightness(1.08);
}

.portal-secondary-button {
  color: var(--text);
  background: #53b2ff24;
}

.admin-content .portal-secondary-button {
  color: var(--admin-primary, #2563eb);
  background: #2563eb1a;
}

.admin-shell[data-theme="dark"] .admin-content .portal-secondary-button {
  color: #93c5fd;
  background: #3b82f633;
}

.portal-ghost-button {
  color: var(--muted);
  background: #9fb3c81a;
}

.admin-content .portal-ghost-button {
  color: var(--admin-text-muted, #64748b);
}

.admin-content .portal-ghost-button:hover {
  color: var(--admin-text, #1e293b);
  background: var(--admin-table-hover, #0000000a);
}

.portal-feedback-text, .portal-error-text {
  border-radius: 16px;
  margin: 0 0 1rem;
  padding: .95rem 1rem;
}

.portal-feedback-text {
  color: var(--success);
  background: #33d69f1f;
}

.portal-error-text {
  color: var(--danger);
  background: #ff6b7a1f;
}

.portal-alert {
  font-size: var(--tc-text-md);
  border-radius: 8px;
  padding: .95rem 1rem;
  line-height: 1.5;
}

.portal-alert-error {
  color: var(--danger);
  background: #ff6b7a1f;
  border: 1px solid #ff6b7a4d;
}

.portal-alert-success {
  color: #166534;
  background: #33d69f1f;
  border: 1px solid #33d69f59;
}

.portal-stat-grid, .portal-content-grid {
  gap: 1rem;
  display: grid;
}

.portal-stat-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 1rem;
}

.portal-stat-card {
  padding: 1rem 1.1rem;
}

.portal-stat-card span {
  color: var(--muted);
  margin-bottom: .5rem;
  display: block;
}

.portal-stat-card strong {
  font-size: 2rem;
}

.portal-content-grid {
  grid-template-columns: minmax(0, 1.8fr) minmax(320px, .95fr);
  align-items: start;
}

.portal-quick-nav-card {
  background: var(--panel);
  border: 1px solid var(--panel-border);
  box-shadow: var(--shadow);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border-radius: 24px;
  margin-bottom: 1rem;
  padding: 1rem;
}

.portal-main-column, .portal-side-column, .portal-card-stack, .portal-mini-list {
  gap: 1rem;
  display: grid;
}

.portal-section-card {
  padding: 1rem;
}

.portal-section-heading {
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
  display: flex;
}

.portal-section-heading h2 {
  margin: 0;
  font-size: 1.2rem;
}

.portal-section-heading p {
  margin: .35rem 0 0;
}

.facturacion-electronica-card .facturacion-electronica-icon {
  color: var(--accent, #6366f1);
  opacity: .85;
}

.portal-task-card {
  padding: 1rem;
}

.portal-task-card textarea {
  min-height: 120px;
}

.portal-task-header {
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: .8rem;
  display: flex;
}

.portal-task-header strong, .portal-empty-card strong, .portal-mini-card strong {
  font-size: var(--tc-text-lg);
}

.portal-task-header p, .portal-mini-card p {
  color: var(--muted);
  margin: .3rem 0 0;
}

.portal-body-text, .portal-meta-text {
  margin: 0 0 .75rem;
}

.portal-helper-text {
  color: var(--muted);
  margin: .4rem 0 0;
  font-size: .92rem;
}

.portal-inline-actions, .portal-form-grid {
  gap: .75rem;
  margin-top: .85rem;
  display: grid;
}

.portal-inline-actions {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

.portal-form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-form-grid-compact {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.portal-full-width {
  grid-column: 1 / -1;
}

.portal-mini-list {
  grid-template-columns: 1fr;
}

.portal-mini-card, .portal-empty-card {
  padding: .9rem 1rem;
}

.portal-mini-card p, .portal-empty-card p {
  margin: .35rem 0;
}

.portal-mini-card span {
  color: var(--accent);
  text-transform: capitalize;
  font-size: .92rem;
}

.portal-anchor-nav {
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1rem;
  display: flex;
}

.portal-anchor-link {
  background: #0c1d317a;
  border: 1px solid #6ea8ff24;
  border-radius: 16px;
  justify-content: space-between;
  align-items: center;
  gap: .8rem;
  min-width: 150px;
  padding: .85rem .95rem;
  display: flex;
}

.portal-anchor-link strong, .portal-anchor-link span {
  display: block;
}

.portal-anchor-link span {
  color: var(--accent);
  font-weight: 700;
}

.portal-tecnico-root {
  color: #111827;
  background: #f5f7fb;
  width: 100%;
  min-height: 100vh;
}

.portal-tecnico-root input, .portal-tecnico-root select, .portal-tecnico-root textarea {
  color: #111827;
  border-color: #e5e7eb;
}

.portal-tecnico-root .portal-shell, .portal-tecnico-root .auth-screen {
  background: none;
}

.portal-tecnico-root .auth-screen {
  justify-content: center;
}

.portal-tecnico-root {
  --portal-bg: #f5f7fb;
  --portal-card: #fff;
  --portal-primary: #2563eb;
  --portal-text: #111827;
  --portal-muted: #6b7280;
  --portal-border: #e5e7eb;
  --portal-secondary-bg: #f3f4f6;
}

.portal-tecnico-root .app-header {
  background: var(--portal-card);
  border-bottom: 1px solid var(--portal-border);
  box-shadow: 0 1px 3px #0000000f;
}

.portal-tecnico-root .app-header-brand, .portal-tecnico-root .app-header-title {
  color: #111827;
}

.portal-tecnico-root .app-header-meta {
  color: #6b7280;
}

.portal-tecnico-root .portal-nav-strip {
  background: var(--portal-card);
  border-bottom: 1px solid var(--portal-border);
}

.portal-tecnico-root .portal-nav-item {
  color: #6b7280;
}

.portal-tecnico-root .portal-nav-item:hover {
  color: #111827;
  background: var(--portal-secondary-bg);
}

.portal-tecnico-root .portal-nav-item.active {
  color: var(--portal-primary);
  background: #2563eb1a;
}

.portal-tecnico-root .portal-section-card, .portal-tecnico-root .portal-view-card, .portal-tecnico-root .portal-detail-section, .portal-tecnico-root .portal-empty-card, .portal-tecnico-root .portal-mini-card, .portal-tecnico-root .portal-profile-card, .portal-tecnico-root .portal-task-card, .portal-tecnico-root .data-card {
  background: var(--portal-card);
  border: 1px solid var(--portal-border);
  border-radius: 12px;
  box-shadow: 0 1px 3px #00000014;
}

.portal-tecnico-root .portal-section-heading h2, .portal-tecnico-root .portal-body-text, .portal-tecnico-root .portal-profile-card p, .portal-tecnico-root .portal-empty-card p, .portal-tecnico-root .data-card-title {
  color: #111827;
}

.portal-tecnico-root .portal-section-heading p, .portal-tecnico-root .portal-meta-text, .portal-tecnico-root .data-card-meta {
  color: #6b7280;
}

.portal-tecnico-root .data-card-title a.portal-order-link {
  color: var(--portal-primary);
  font-weight: 700;
}

.portal-tecnico-root .portal-primary-button {
  background: var(--portal-primary);
  color: #fff;
  border: none;
}

.portal-tecnico-root .portal-primary-button:hover {
  filter: brightness(1.08);
  transform: none;
}

.portal-tecnico-root .portal-secondary-button {
  background: var(--portal-secondary-bg);
  color: #111827;
  border: 1px solid var(--portal-border);
}

.portal-tecnico-root .portal-secondary-button:hover {
  background: #e5e7eb;
  transform: none;
}

.portal-tecnico-root .portal-ghost-button {
  color: #6b7280;
  background: none;
}

.portal-tecnico-root .portal-ghost-button:hover {
  color: #111827;
  background: var(--portal-secondary-bg);
  transform: none;
}

.portal-tecnico-root .portal-anchor-link {
  background: var(--portal-card);
  border: 1px solid var(--portal-border);
  color: var(--portal-primary);
}

.portal-tecnico-root .portal-anchor-link span {
  color: var(--portal-primary);
}

.portal-tecnico-root .portal-feedback-text {
  color: #065f46;
  background: #d1fae5;
  border: 1px solid #a7f3d0;
}

.portal-tecnico-root .portal-error-text {
  color: #b91c1c;
  background: #fee2e2;
  border: 1px solid #fecaca;
}

.portal-tecnico-root .portal-helper-text {
  color: #6b7280;
}

.portal-wizard-steps {
  background: var(--portal-card);
  border: 1px solid var(--portal-border);
  border-radius: 12px;
  flex-wrap: wrap;
  gap: .5rem 1rem;
  margin-bottom: 1.25rem;
  padding: .75rem 1rem;
  display: flex;
}

.portal-wizard-step {
  font-size: var(--tc-text-base);
  color: #9ca3af;
}

.portal-wizard-step.active {
  color: var(--portal-primary);
  font-weight: 600;
}

.portal-tecnico-root .portal-detail-header {
  border: 1px solid var(--portal-border);
  background: #fff;
  border-radius: 12px;
  margin-bottom: 1.25rem;
  padding: 1rem 1.25rem;
}

.portal-detail-header-top {
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  margin-bottom: .75rem;
  display: flex;
}

.portal-detail-back {
  color: var(--portal-primary);
  font-size: var(--tc-text-md);
  font-weight: 500;
  text-decoration: none;
}

.portal-detail-back:hover {
  text-decoration: underline;
}

.portal-detail-order-num {
  font-size: var(--tc-text-2xl);
  color: #111827;
  letter-spacing: -.02em;
  margin: 0 0 .25rem;
  font-weight: 700;
}

.portal-detail-client {
  font-size: var(--tc-text-lg);
  color: #374151;
  margin: 0 0 .2rem;
  font-weight: 600;
}

.portal-detail-meta {
  font-size: var(--tc-text-base);
  color: #6b7280;
  margin: 0 0 .5rem;
}

.portal-detail-state {
  font-size: var(--tc-text-xs);
  color: #4b5563;
  background: #f3f4f6;
  border-radius: 6px;
  padding: .25rem .6rem;
  font-weight: 600;
  display: inline-block;
}

.portal-detail-state--en-proceso {
  color: #1d4ed8;
  background: #dbeafe;
}

.portal-detail-state--pendiente-aprovisionamiento {
  color: #c2410c;
  background: #ffedd5;
}

.portal-detail-state--pendiente-validacion-tecnica {
  color: #047857;
  background: #d1fae5;
}

.portal-detail-state--pendiente-revision-final {
  color: #b45309;
  background: #fef3c7;
}

.portal-detail-state--finalizada {
  color: #fff;
  background: #065f46;
}

.portal-detail-stepper {
  border: 1px solid var(--portal-border);
  background: #f9fafb;
  border-radius: 10px;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 .5rem;
  margin-bottom: 1.25rem;
  padding: .85rem 1rem;
  display: flex;
}

.portal-detail-step {
  align-items: center;
  gap: .35rem;
  display: flex;
}

.portal-detail-step-marker {
  width: 1.75rem;
  height: 1.75rem;
  font-size: var(--tc-text-sm);
  color: #9ca3af;
  background: #e5e7eb;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  font-weight: 700;
  display: inline-flex;
}

.portal-detail-step.done .portal-detail-step-marker {
  background: var(--portal-primary);
  color: #fff;
}

.portal-detail-step.current .portal-detail-step-marker {
  background: var(--portal-primary);
  color: #fff;
  box-shadow: 0 0 0 2px #2563eb4d;
}

.portal-detail-step.locked .portal-detail-step-marker {
  color: #9ca3af;
  background: #f3f4f6;
}

.portal-detail-step-label {
  font-size: var(--tc-text-sm);
  color: #9ca3af;
  font-weight: 500;
}

.portal-detail-step.done .portal-detail-step-label, .portal-detail-step.current .portal-detail-step-label {
  color: #111827;
}

.portal-detail-step.current .portal-detail-step-label {
  color: var(--portal-primary);
  font-weight: 600;
}

.portal-detail-step-connector {
  background: #e5e7eb;
  width: 1.25rem;
  height: 2px;
  margin: 0 .25rem 0 .5rem;
}

.portal-detail-step-content {
  margin-bottom: 1.5rem;
}

.portal-detail-tabs {
  border-bottom: 1px solid var(--portal-border);
  gap: .25rem;
  margin-bottom: 1rem;
  padding-bottom: 0;
  display: flex;
}

.portal-detail-tab {
  font-size: var(--tc-text-md);
  color: #6b7280;
  cursor: pointer;
  background: none;
  border: none;
  border-bottom: 2px solid #0000;
  border-radius: 6px 6px 0 0;
  margin-bottom: -1px;
  padding: .5rem 1rem;
  font-weight: 500;
}

.portal-detail-tab:hover {
  color: #111827;
}

.portal-detail-tab.active {
  color: var(--portal-primary);
  border-bottom-color: var(--portal-primary);
}

.portal-detail-tab-content {
  margin-bottom: 1.5rem;
}

.portal-detail-panel {
  border: 1px solid var(--portal-border);
  background: #fff;
  border-radius: 12px;
  margin-bottom: 1rem;
  padding: 1.25rem;
}

.portal-detail-panel--waiting {
  background: #fffbeb;
  border-color: #fcd34d;
}

.portal-detail-panel--close {
  border-color: var(--portal-primary);
}

.portal-detail-panel-title {
  color: #111827;
  margin: 0 0 .35rem;
  font-size: 1.1rem;
  font-weight: 700;
}

.portal-detail-panel-lead {
  font-size: var(--tc-text-md);
  color: #6b7280;
  margin: 0 0 1rem;
  line-height: 1.45;
}

.portal-detail-panel-meta {
  color: #6b7280;
  margin: 0 0 .75rem;
  font-size: .85rem;
}

.portal-detail-info-grid {
  grid-template-columns: repeat(2, 1fr);
  gap: .5rem 1.5rem;
  margin-bottom: 1rem;
  display: grid;
}

.portal-detail-info-item {
  font-size: var(--tc-text-md);
  flex-direction: column;
  gap: .15rem;
  display: flex;
}

.portal-detail-info-label {
  font-size: var(--tc-text-xs);
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: .03em;
  font-weight: 600;
}

.portal-detail-maps-btn {
  margin-bottom: 1rem;
  text-decoration: none;
  display: inline-block;
}

.portal-detail-coords {
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  display: flex;
}

.portal-detail-input-sm {
  border: 1px solid var(--portal-border);
  border-radius: 6px;
  width: 6rem;
  padding: .35rem .5rem;
}

.portal-detail-select {
  min-width: 14rem;
  padding: .5rem;
}

.portal-detail-textarea {
  border: 1px solid var(--portal-border);
  border-radius: 8px;
  width: 100%;
  max-width: 28rem;
  margin-top: .35rem;
  margin-bottom: .75rem;
  padding: .5rem;
  display: block;
}

.portal-detail-form-row {
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  display: flex;
}

.portal-detail-input-num {
  border: 1px solid var(--portal-border);
  border-radius: 6px;
  width: 4rem;
  padding: .35rem .5rem;
}

.portal-detail-subsection {
  margin-top: 1.25rem;
}

.portal-detail-subsection:first-child {
  margin-top: 0;
}

.portal-detail-subtitle {
  color: #374151;
  margin: 0 0 .5rem;
  font-size: .95rem;
  font-weight: 600;
}

.portal-detail-list {
  margin: .35rem 0 0;
}

.portal-detail-next-hint {
  color: #6b7280;
  margin: 1rem 0 0;
  font-size: .85rem;
  font-style: italic;
}

.portal-tecnico-root .auth-card {
  background: var(--portal-card);
  border: 1px solid var(--portal-border);
  border-radius: 12px;
  box-shadow: 0 1px 3px #00000014;
}

.portal-tecnico-root .auth-card h1 {
  color: #111827;
}

.portal-tecnico-root .auth-card .auth-subtitle, .portal-tecnico-root .auth-form label {
  color: #6b7280;
}

.portal-tecnico-root .auth-form input {
  border: 1px solid var(--portal-border);
  color: #111827;
  background: #fff;
}

.portal-tecnico-root .app-header-brand-accent {
  color: var(--portal-primary);
}

.portal-tecnico-root .portal-page-title {
  color: #111827;
  margin: 0 0 1rem;
  font-size: 1.2rem;
  font-weight: 600;
}

.portal-tecnico-root .portal-inventory-item {
  padding: 1rem;
}

.portal-tecnico-root .portal-inventory-item strong {
  margin-bottom: .25rem;
  display: block;
}

.portal-tecnico-root .portal-inventory-item p {
  color: #6b7280;
  margin: .2rem 0;
}

.portal-inventario-view .portal-page-meta {
  color: var(--muted);
  font-size: var(--tc-text-md);
}

.portal-inventario-sections {
  flex-direction: column;
  gap: 1.5rem;
  display: flex;
}

.portal-inventario-section {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  overflow: hidden;
}

.portal-inventario-section-head {
  background: var(--panel-soft);
  border-bottom: 1px solid var(--border);
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  padding: .75rem 1rem;
  display: flex;
}

.portal-inventario-section-title {
  font-size: var(--tc-text-lg);
  margin: 0;
  font-weight: 700;
}

.portal-inventario-section-count {
  font-size: var(--tc-text-base);
  color: var(--muted);
  font-weight: 500;
}

.portal-inventario-by-category {
  padding: 0;
}

.portal-inventario-categoria-block {
  border-bottom: 1px solid var(--border);
}

.portal-inventario-categoria-block:last-child {
  border-bottom: none;
}

.portal-inventario-categoria-head {
  background: var(--surface-elevated);
  border-bottom: 1px solid var(--border);
  justify-content: space-between;
  align-items: center;
  gap: .5rem;
  padding: .6rem 1rem;
  display: flex;
}

.portal-inventario-categoria-title {
  margin: 0;
  font-size: .95rem;
  font-weight: 700;
}

.portal-inventario-categoria-count {
  font-size: var(--tc-text-sm);
  color: var(--muted);
}

.portal-inventario-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.portal-inventario-equipos .portal-inventario-equipo-card, .portal-inventario-materiales .portal-inventario-material-card {
  border-bottom: 1px solid var(--border);
  padding: .75rem 1rem;
}

.portal-inventario-equipos .portal-inventario-equipo-card:last-child, .portal-inventario-materiales .portal-inventario-material-card:last-child {
  border-bottom: none;
}

.portal-inventario-equipo-card {
  flex-direction: column;
  align-items: flex-start;
  gap: .2rem;
  display: flex;
}

.portal-inventario-equipo-nombre {
  font-weight: 700;
  font-size: var(--tc-text-lg);
  display: block;
}

.portal-inventario-equipo-serial {
  font-family: ui-monospace, monospace;
  font-size: var(--tc-text-md);
  color: var(--accent);
  font-weight: 600;
  display: block;
}

.portal-inventario-equipo-mac, .portal-inventario-equipo-estado {
  color: var(--muted);
  font-size: .85rem;
  display: block;
}

.portal-inventario-equipo-codigo {
  font-size: var(--tc-text-sm);
  color: var(--muted);
  opacity: .85;
  display: block;
}

.portal-inventario-equipo-meta {
  color: var(--muted);
  flex-wrap: wrap;
  gap: .75rem 1rem;
  margin-top: .5rem;
  font-size: .85rem;
  display: flex;
}

.portal-inventario-meta-item {
  white-space: nowrap;
}

.portal-inventario-material-card {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  display: flex;
}

.portal-inventario-material-nombre {
  font-size: .95rem;
  font-weight: 600;
}

.portal-inventario-material-stock {
  font-size: var(--tc-text-md);
  color: var(--muted);
  font-weight: 500;
}

.portal-inventario-empty {
  text-align: center;
  color: var(--muted);
  font-size: var(--tc-text-md);
  padding: 1rem;
}

.portal-inventario-empty strong {
  color: var(--text);
}

.portal-tecnico-root .portal-inventario-view .portal-page-meta {
  color: #6b7280;
}

.portal-tecnico-root .portal-inventario-section {
  border-color: var(--portal-border);
  background: var(--portal-card);
}

.portal-tecnico-root .portal-inventario-section-head {
  border-color: var(--portal-border);
  background: #f9fafb;
}

.portal-tecnico-root .portal-inventario-section-title {
  color: #111827;
}

.portal-tecnico-root .portal-inventario-section-count {
  color: #6b7280;
}

.portal-tecnico-root .portal-inventario-categoria-head {
  border-color: var(--portal-border);
  background: #f3f4f6;
}

.portal-tecnico-root .portal-inventario-categoria-title {
  color: #111827;
}

.portal-tecnico-root .portal-inventario-categoria-count {
  color: #6b7280;
}

.portal-tecnico-root .portal-inventario-equipo-card, .portal-tecnico-root .portal-inventario-material-card {
  border-color: var(--portal-border);
}

.portal-tecnico-root .portal-inventario-equipo-nombre {
  color: #111827;
}

.portal-tecnico-root .portal-inventario-equipo-serial {
  color: var(--portal-primary);
}

.portal-tecnico-root .portal-inventario-equipo-mac, .portal-tecnico-root .portal-inventario-equipo-estado, .portal-tecnico-root .portal-inventario-equipo-codigo, .portal-tecnico-root .portal-inventario-equipo-meta {
  color: #6b7280;
}

.portal-tecnico-root .portal-inventario-material-nombre {
  color: #111827;
}

.portal-tecnico-root .portal-inventario-material-stock, .portal-tecnico-root .portal-inventario-empty {
  color: #6b7280;
}

.portal-tecnico-root .portal-inventario-empty strong {
  color: #111827;
}

.portal-tecnico-root .portal-bandeja .portal-bandeja-title {
  font-size: var(--tc-text-xl);
  color: #111827;
  margin: 0 0 1rem;
  font-weight: 700;
}

.portal-tecnico-root .portal-bandeja-table-wrap {
  overflow-x: auto;
}

.portal-tecnico-root .portal-bandeja-table {
  border-collapse: collapse;
  width: 100%;
  font-size: var(--tc-text-md);
}

.portal-tecnico-root .portal-bandeja-table th {
  text-align: left;
  color: #6b7280;
  border-bottom: 1px solid var(--portal-border);
  background: #f9fafb;
  padding: .6rem .75rem;
  font-weight: 600;
}

.portal-tecnico-root .portal-bandeja-table tbody tr {
  min-height: 2.75rem;
}

.portal-tecnico-root .portal-bandeja-table td {
  border-bottom: 1px solid var(--portal-border);
  vertical-align: middle;
  padding: .6rem .75rem;
  line-height: 1.4;
}

.portal-tecnico-root .portal-bandeja-table .portal-bandeja-row:hover {
  background: #fafafa;
}

.portal-tecnico-root .portal-bandeja-order-cell {
  align-items: center;
  gap: .4rem;
  min-height: 2rem;
  display: flex;
}

.portal-tecnico-root .portal-bandeja-table .portal-bandeja-action {
  white-space: nowrap;
  vertical-align: middle;
}

.portal-tecnico-root .portal-bandeja-table .portal-bandeja-action .portal-primary-button, .portal-tecnico-root .portal-bandeja-table .portal-bandeja-action .portal-secondary-button, .portal-tecnico-root .portal-bandeja-table .portal-bandeja-action a {
  vertical-align: middle;
}

.portal-tecnico-root .portal-bandeja-icon {
  flex-shrink: 0;
  font-size: 1.1rem;
  line-height: 1;
}

.portal-tecnico-root .portal-bandeja-address {
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #6b7280;
  max-width: 12rem;
  overflow: hidden;
}

.portal-tecnico-root .portal-bandeja-agenda {
  color: #111827;
  white-space: nowrap;
  font-weight: 600;
}

.portal-tecnico-root .portal-bandeja-action-text {
  color: #6b7280;
  font-size: var(--tc-text-base);
  font-style: italic;
}

.portal-tecnico-root .portal-bandeja-cards {
  display: none;
}

.portal-tecnico-root .portal-bandeja-card {
  border: 1px solid var(--portal-border);
  background: #fff;
  border-radius: 10px;
  margin-bottom: .75rem;
  padding: .9rem 1rem;
}

.portal-tecnico-root .portal-bandeja-card:last-child {
  margin-bottom: 0;
}

.portal-tecnico-root .portal-bandeja-card-header {
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  margin-bottom: .35rem;
  display: flex;
}

.portal-tecnico-root .portal-bandeja-card-header .portal-order-link {
  font-weight: 700;
}

.portal-tecnico-root .portal-bandeja-card-meta {
  font-size: var(--tc-text-md);
  color: #111827;
  margin: 0;
  font-weight: 500;
}

.portal-tecnico-root .portal-bandeja-card-address {
  color: #6b7280;
  margin: .25rem 0 0;
  font-size: .85rem;
}

.portal-tecnico-root .portal-bandeja-card-agenda {
  font-size: var(--tc-text-md);
  color: #111827;
  margin: .25rem 0 .5rem;
  font-weight: 600;
}

.portal-tecnico-root .portal-bandeja-card-action {
  border-top: 1px solid var(--portal-border);
  margin-top: .5rem;
  padding-top: .5rem;
}

@media (max-width: 768px) {
  .portal-tecnico-root .app-header {
    flex-wrap: wrap;
    padding: .75rem 1rem;
  }

  .portal-tecnico-root .portal-content-grid {
    grid-template-columns: 1fr;
  }

  .portal-tecnico-root .portal-nav-strip {
    padding: .5rem;
  }

  .portal-tecnico-root .portal-detail-flow {
    padding: 0 .5rem;
  }

  .portal-tecnico-root .portal-bandeja-table-wrap {
    display: none;
  }

  .portal-tecnico-root .portal-bandeja-cards {
    display: block;
  }
}

.templates-page-header {
  border-bottom: 1px solid #6ea8ff1f;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
  padding-bottom: .75rem;
  display: flex;
}

.templates-page-header .app-header-title {
  margin-bottom: .2rem;
}

.templates-panel {
  background: #0c1d3159;
  border-left: 3px solid #53b2ff59;
}

.templates-panel-list {
  border-left-color: var(--accent);
}

.templates-panel-config {
  border-left-color: #53b2ff80;
}

.templates-panel-editor {
  border-left-color: #53b2ff73;
}

.templates-panel-variables {
  border-left-color: #53b2ff66;
}

.templates-panel-preview {
  border-left-color: #6ea8ff66;
}

.templates-panel-logos {
  border-left-color: #6ea8ff59;
}

.templates-panel-versions {
  border-left-color: #6ea8ff4d;
}

.templates-shell {
  width: min(1400px, 100% - 1.25rem);
}

.templates-summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1rem;
  display: grid;
}

.templates-grid, .templates-editor-grid, .templates-version-grid, .templates-checkbox-group, .templates-code-editor, .templates-linked-logos, .templates-list, .templates-variable-palette, .templates-token-list, .templates-visual-editor {
  gap: 1rem;
  display: grid;
}

.templates-grid {
  grid-template-columns: minmax(320px, .92fr) minmax(0, 1.8fr);
}

.templates-editor-grid, .templates-version-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 1rem;
}

.templates-sidebar, .templates-main, .templates-version-list, .templates-history-list {
  gap: 1rem;
  display: grid;
}

.templates-sidebar {
  align-self: start;
}

.templates-guide-list, .templates-summary-inline {
  flex-wrap: wrap;
  gap: .75rem;
  display: flex;
}

.templates-summary-inline {
  margin-bottom: 1rem;
}

.templates-list-item {
  text-align: left;
  color: var(--text);
  background: #0c1d3194;
  border: 1px solid #6ea8ff24;
  border-radius: 18px;
  padding: 1rem;
}

.templates-list-item.is-active {
  border-color: #53b2ff80;
  box-shadow: inset 0 0 0 1px #53b2ff33;
}

.templates-list-item strong, .templates-list-item span, .templates-list-item small {
  display: block;
}

.templates-list-item span, .templates-list-item small {
  color: var(--muted);
  margin-top: .35rem;
}

.templates-checkbox-group {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.templates-checkbox-group label, .templates-toggle {
  color: var(--muted);
  align-items: center;
  gap: .6rem;
  display: flex;
}

.templates-toggle input, .templates-checkbox-group input {
  width: auto;
  margin: 0;
}

.templates-block-card {
  background: #0c1d317a;
  border: 1px solid #6ea8ff1f;
  border-radius: 18px;
  padding: 1rem;
}

.templates-variable-group strong {
  margin-bottom: .65rem;
  display: block;
}

.templates-token-list {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.templates-token-button {
  text-align: left;
  color: var(--text);
  background: #53b2ff1f;
  border-radius: 14px;
  padding: .8rem .9rem;
}

.templates-preview-pane {
  gap: 1rem;
  display: grid;
}

.templates-preview-html {
  color: #111827;
  background: #fffffffa;
  border: 1px solid #6ea8ff24;
  border-radius: 18px;
  min-height: 240px;
  padding: 1rem;
  overflow-x: auto;
  box-shadow: inset 0 0 0 1px #0f172a0f;
}

.templates-preview-raw summary {
  cursor: pointer;
  color: var(--accent);
}

.templates-preview-raw pre {
  white-space: pre-wrap;
  word-break: break-word;
  color: var(--muted);
}

@media (max-width: 720px) {
  .portal-shell, .portal-login-shell {
    width: min(100%, 100% - .8rem);
    padding-top: .65rem;
  }

  .portal-login-card, .portal-content-grid, .portal-stat-grid, .templates-summary-grid, .portal-form-grid, .portal-inline-actions, .templates-grid, .templates-editor-grid, .templates-version-grid, .templates-token-list {
    grid-template-columns: 1fr;
  }

  .portal-topbar, .portal-section-heading, .portal-task-header {
    flex-direction: column;
  }

  .portal-topbar-actions, .portal-topbar-actions button, .portal-primary-button, .portal-secondary-button, .portal-ghost-button, .portal-anchor-link {
    width: 100%;
  }

  .app-header {
    flex-direction: column;
    align-items: flex-start;
    padding: .75rem 1rem;
  }

  .app-header-actions {
    width: 100%;
  }

  .app-header-actions button {
    flex: 1;
  }

  .kpi-strip {
    grid-template-columns: repeat(2, 1fr);
  }

  .config-layout {
    flex-direction: column;
  }

  .config-sidebar {
    border-right: none;
    border-bottom: 1px solid var(--border);
    width: 100%;
    min-width: 100%;
    padding: .75rem;
  }

  .config-nav {
    flex-flow: wrap;
    gap: .5rem;
  }

  .config-nav-section {
    width: 100%;
    padding-top: .5rem;
  }

  .config-nav-item.sub {
    padding-left: 1rem;
  }

  .config-main {
    padding: 1rem;
  }
}

.clientes-lista-wrap {
  --cl-border: var(--admin-border, #e2e8f0);
  --cl-bg-header: var(--admin-table-header, #f8fafc);
  --cl-bg-row-hover: var(--admin-table-hover, #0f172a08);
  --cl-text: var(--admin-text, #1e293b);
  --cl-muted: var(--admin-text-muted, #64748b);
  --cl-accent: var(--admin-primary, #0ea5e9);
  --cl-radius: 8px;
}

.clientes-lista-header {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.25rem;
  display: flex;
}

.clientes-lista-header-left .app-header-title {
  color: var(--cl-text);
  margin: 0 0 .2rem;
  font-size: 1.2rem;
}

.clientes-lista-header-left .app-header-meta {
  color: var(--cl-muted);
  margin: 0;
  font-size: .85rem;
}

.clientes-lista-header-right {
  flex-wrap: wrap;
  align-items: center;
  gap: .6rem;
  display: flex;
}

.clientes-lista-search-wrap {
  align-items: center;
  display: flex;
  position: relative;
}

.clientes-lista-search-icon {
  color: var(--cl-muted);
  pointer-events: none;
  justify-content: center;
  align-items: center;
  display: flex;
  position: absolute;
  left: .65rem;
}

.clientes-lista-search {
  border: 1px solid var(--cl-border);
  border-radius: var(--cl-radius);
  width: 200px;
  font-size: var(--tc-text-md);
  color: var(--cl-text);
  background: #fff;
  padding: .5rem .75rem .5rem 2.25rem;
  transition: border-color .15s, box-shadow .15s;
}

.clientes-lista-search:focus {
  border-color: var(--cl-accent);
  outline: none;
  box-shadow: 0 0 0 3px #0ea5e926;
}

.clientes-lista-filter-select {
  border: 1px solid var(--cl-border);
  border-radius: var(--cl-radius);
  font-size: var(--tc-text-md);
  color: var(--cl-text);
  cursor: pointer;
  background: #fff;
  min-width: 160px;
  padding: .5rem .75rem;
}

.clientes-lista-btn-icon {
  border: 1px solid var(--cl-border);
  border-radius: var(--cl-radius);
  width: 38px;
  height: 38px;
  color: var(--cl-muted);
  cursor: pointer;
  background: #fff;
  justify-content: center;
  align-items: center;
  padding: 0;
  transition: background .15s, color .15s;
  display: inline-flex;
}

.clientes-lista-btn-icon:hover:not(:disabled) {
  background: var(--cl-bg-header);
  color: var(--cl-accent);
}

.clientes-lista-btn-icon:disabled {
  opacity: .6;
  cursor: not-allowed;
}

.clientes-lista-btn-nuevo {
  font-size: var(--tc-text-md);
  white-space: nowrap;
  padding: .5rem 1rem;
}

.clientes-lista-toolbar {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  margin-bottom: .75rem;
  display: flex;
}

.clientes-lista-page-size-label {
  color: var(--cl-muted);
  cursor: default;
  align-items: center;
  gap: .4rem;
  font-size: .85rem;
  display: inline-flex;
}

.clientes-lista-page-size-select {
  border: 1px solid var(--cl-border);
  color: var(--cl-text);
  cursor: pointer;
  background: #fff;
  border-radius: 6px;
  padding: .35rem .5rem;
  font-size: .85rem;
}

.clientes-lista-count {
  color: var(--cl-muted);
  font-size: .85rem;
}

.clientes-lista-error {
  margin-bottom: 1rem;
}

.clientes-lista-loading {
  text-align: center;
  color: var(--cl-muted);
  padding: 2rem;
  font-size: .95rem;
}

.clientes-lista-table-wrap {
  border: 1px solid var(--cl-border);
  border-radius: var(--cl-radius);
  background: var(--admin-card-bg, #fff);
  box-shadow: var(--admin-shadow, 0 1px 3px #0000000d);
  overflow-x: auto;
}

.clientes-lista-table {
  border-collapse: collapse;
  width: 100%;
  font-size: var(--tc-text-base);
}

.clientes-lista-table thead {
  background: var(--cl-bg-header);
  border-bottom: 1px solid var(--cl-border);
}

.clientes-lista-table th {
  text-align: left;
  color: var(--cl-text);
  white-space: nowrap;
  padding: .65rem .85rem;
  font-weight: 600;
}

.clientes-lista-th-btn {
  font: inherit;
  color: inherit;
  cursor: pointer;
  text-align: left;
  background: none;
  border: none;
  align-items: center;
  gap: .25rem;
  padding: 0;
  font-weight: 600;
  display: inline-flex;
}

.clientes-lista-th-btn:hover {
  color: var(--cl-accent);
}

.clientes-lista-sort {
  font-size: var(--tc-text-xs);
  color: var(--cl-accent);
}

.clientes-lista-th-actions {
  text-align: center;
  width: 1%;
}

.clientes-lista-table tbody tr {
  border-bottom: 1px solid #f1f5f9;
  transition: background .12s;
}

.clientes-lista-table tbody tr:hover {
  background: var(--cl-bg-row-hover);
}

.clientes-lista-table td {
  color: var(--cl-text);
  vertical-align: middle;
  padding: .6rem .85rem;
}

.clientes-lista-cell-id {
  font-variant-numeric: tabular-nums;
  color: var(--cl-muted);
}

.clientes-lista-cell-nombre {
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 200px;
  font-weight: 500;
  overflow: hidden;
}

.clientes-lista-cell-doc, .clientes-lista-cell-phone {
  font-family: ui-monospace, monospace;
  font-size: var(--tc-text-sm);
  color: var(--cl-muted);
}

.clientes-lista-cell-email {
  font-size: var(--tc-text-sm);
  color: var(--cl-muted);
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 180px;
  overflow: hidden;
}

.clientes-lista-cell-servicios {
  text-align: center;
  font-variant-numeric: tabular-nums;
  color: var(--cl-muted);
}

.clientes-lista-cell-actions {
  white-space: nowrap;
  text-align: center;
}

.clientes-lista-action-btn {
  width: 32px;
  height: 32px;
  color: var(--cl-muted);
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  margin: 0 2px;
  transition: background .15s, color .15s;
  display: inline-flex;
}

.clientes-lista-action-btn:hover {
  color: var(--cl-accent);
  background: #0ea5e91f;
}

.clientes-lista-empty {
  text-align: center;
  color: var(--cl-muted);
  font-size: var(--tc-text-md);
  padding: 2.5rem 1rem !important;
}

.clientes-lista-pagination {
  justify-content: center;
  align-items: center;
  gap: 1rem;
  margin-top: 1rem;
  padding: .75rem 0;
  display: flex;
}

.clientes-lista-page-btn {
  border: 1px solid var(--cl-border);
  font-size: var(--tc-text-base);
  color: var(--cl-text);
  cursor: pointer;
  background: #fff;
  border-radius: 6px;
  padding: .45rem .9rem;
  transition: background .15s, border-color .15s;
}

.clientes-lista-page-btn:hover:not(:disabled) {
  background: var(--cl-bg-header);
  border-color: var(--cl-accent);
  color: var(--cl-accent);
}

.clientes-lista-page-btn:disabled {
  opacity: .5;
  cursor: not-allowed;
}

.clientes-lista-page-info {
  font-size: var(--tc-text-base);
  color: var(--cl-muted);
}

@media (max-width: 768px) {
  .clientes-lista-header {
    flex-direction: column;
  }

  .clientes-lista-header-right {
    width: 100%;
  }

  .clientes-lista-search {
    width: 100%;
    min-width: 0;
  }

  .clientes-lista-filter-select {
    flex: 1;
    min-width: 0;
  }

  .clientes-lista-btn-nuevo {
    flex: 1;
    justify-content: center;
  }

  .clientes-lista-table-wrap {
    font-size: var(--tc-text-sm);
  }

  .clientes-lista-cell-nombre {
    max-width: 120px;
  }

  .clientes-lista-cell-email {
    max-width: 100px;
  }
}

.solicitudes-lista-wrap, .solicitudes-form-wrap, .solicitudes-detail-wrap {
  --sol-border: #e2e8f0;
  --sol-bg: #f8fafc;
  --sol-text: #1e293b;
  --sol-muted: #64748b;
  --sol-accent: #0ea5e9;
  --sol-radius: 10px;
}

.solicitudes-lista-header {
  flex-direction: column;
  gap: .5rem;
  margin-bottom: .75rem;
  display: flex;
}

.solicitudes-header-top {
  width: 100%;
}

.solicitudes-lista-header .app-header-title {
  color: var(--sol-text);
  font-size: var(--tc-text-xl);
  margin: 0 0 .15rem;
}

.solicitudes-lista-header .app-header-meta {
  font-size: var(--tc-text-sm);
  color: var(--sol-muted);
  margin: 0;
}

.solicitudes-toolbar {
  flex-wrap: nowrap;
  align-items: center;
  gap: .5rem;
  width: 100%;
  min-width: 0;
  display: flex;
  overflow-x: auto;
}

.solicitudes-search-wrap {
  flex: 1;
  align-items: center;
  min-width: 320px;
  max-width: 420px;
  display: flex;
  position: relative;
}

.solicitudes-search-icon {
  color: var(--sol-muted);
  pointer-events: none;
  position: absolute;
  top: 50%;
  left: .65rem;
  transform: translateY(-50%);
}

.solicitudes-search {
  border: 1px solid var(--sol-border);
  width: 100%;
  font-size: var(--tc-text-base);
  background: var(--admin-card-bg, #fff);
  color: var(--sol-text);
  border-radius: 8px;
  padding: .5rem .75rem .5rem 2.25rem;
}

.solicitudes-search:focus {
  border-color: var(--sol-accent);
  outline: none;
}

.solicitudes-filter-select {
  border: 1px solid var(--sol-border);
  font-size: var(--tc-text-base);
  background: var(--admin-card-bg, #fff);
  color: var(--sol-text);
  border-radius: 8px;
  flex-shrink: 0;
  min-width: 130px;
  padding: .5rem .75rem;
}

.solicitudes-filter-estado-compact {
  border: 1px solid var(--sol-border);
  width: auto;
  max-width: 7rem;
  font-size: var(--tc-text-sm);
  background: var(--admin-card-bg, #fff);
  color: var(--sol-text);
  border-radius: 6px;
  flex-shrink: 0;
  padding: .4rem .5rem;
}

.solicitudes-page-size-wrap {
  flex-shrink: 0;
  align-items: center;
  gap: .35rem;
  display: inline-flex;
}

.solicitudes-page-size-label {
  font-size: var(--tc-text-sm);
  color: var(--sol-muted);
}

.solicitudes-page-size-select {
  border: 1px solid var(--sol-border);
  font-size: var(--tc-text-sm);
  background: var(--admin-card-bg, #fff);
  color: var(--sol-text);
  border-radius: 6px;
  width: 4.5rem;
  padding: .4rem .5rem;
}

.solicitudes-export-wrap {
  flex-shrink: 0;
  position: relative;
}

.solicitudes-export-wrap-open {
  z-index: 200;
}

.solicitudes-export-wrap-open .solicitudes-export-menu {
  z-index: 201;
}

.solicitudes-btn-export {
  font-size: var(--tc-text-base);
  align-items: center;
  gap: .35rem;
  padding: .5rem .75rem;
  display: inline-flex;
}

.solicitudes-btn-export svg {
  flex-shrink: 0;
}

.solicitudes-export-menu {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--sol-border);
  z-index: 50;
  border-radius: 8px;
  min-width: 10rem;
  margin-bottom: 2px;
  padding: .35rem 0;
  position: absolute;
  bottom: 100%;
  right: 0;
  box-shadow: 0 -4px 12px #0000001a;
}

.solicitudes-export-menu button {
  text-align: left;
  width: 100%;
  font-size: var(--tc-text-base);
  color: var(--sol-text);
  cursor: pointer;
  background: none;
  border: none;
  padding: .5rem 1rem;
  display: block;
}

.solicitudes-export-menu button:hover {
  background: var(--sol-bg);
}

.solicitudes-export-menu-fixed {
  z-index: 1000;
  margin-top: 0;
  margin-bottom: 0;
  bottom: auto;
  right: auto;
}

.solicitudes-export-menu-portal {
  margin: 0;
  position: fixed;
  box-shadow: 0 4px 12px #00000026;
  background: #fff !important;
  bottom: auto !important;
  right: auto !important;
}

.solicitudes-export-menu-portal button {
  color: #1e293b !important;
}

.solicitudes-export-menu-portal button:hover {
  background: #f1f5f9 !important;
}

.solicitudes-export-backdrop {
  z-index: 199;
  position: fixed;
  inset: 0;
}

.solicitudes-btn-bulk {
  font-size: var(--tc-text-sm);
  flex-shrink: 0;
  padding: .5rem .75rem;
}

.solicitudes-btn-bulk-danger:hover {
  color: #dc2626;
  background: #ef44441a;
}

.solicitudes-table-operativa .solicitudes-thead-row-filters th {
  vertical-align: middle;
  padding: .35rem .5rem;
}

.solicitudes-th-filter {
  border-bottom: 1px solid var(--sol-border);
  background: #f8fafc;
}

.solicitudes-col-filter {
  border: 1px solid var(--sol-border);
  width: 100%;
  font-size: var(--tc-text-sm);
  background: #fff;
  border-radius: 4px;
  padding: .35rem .5rem;
}

.solicitudes-col-filter:focus {
  border-color: var(--sol-accent);
  outline: none;
}

.solicitudes-th-checkbox {
  text-align: center;
  vertical-align: middle;
  width: 2.5rem;
}

.solicitudes-th-checkbox input, .solicitudes-cell-checkbox input {
  cursor: pointer;
}

.solicitudes-cell-checkbox {
  text-align: center;
  vertical-align: middle;
  width: 2.5rem;
}

.solicitudes-cell-checkbox-empty {
  width: 1rem;
  height: 1rem;
  display: inline-block;
}

.solicitudes-pagination {
  font-size: var(--tc-text-sm);
  color: var(--sol-muted);
  margin-top: .75rem;
}

.solicitudes-pagination-info {
  display: block;
}

.solicitudes-modal-overlay {
  z-index: 100;
  background: #0006;
  justify-content: center;
  align-items: center;
  display: flex;
  position: fixed;
  inset: 0;
}

.solicitudes-modal {
  background: var(--admin-card-bg, #fff);
  border-radius: var(--sol-radius);
  min-width: 360px;
  max-width: 90vw;
  padding: 1.25rem;
  box-shadow: 0 8px 24px #00000026;
}

.solicitudes-modal-title {
  color: var(--sol-text);
  margin: 0 0 .5rem;
  font-size: 1.1rem;
}

.solicitudes-modal-text {
  font-size: var(--tc-text-base);
  color: var(--sol-muted);
  margin: 0 0 .75rem;
}

.solicitudes-modal-label {
  font-size: var(--tc-text-base);
  color: var(--sol-text);
  margin-bottom: 1rem;
  font-weight: 600;
  display: block;
}

.solicitudes-modal-textarea {
  border: 1px solid var(--sol-border);
  width: 100%;
  font-size: var(--tc-text-base);
  resize: vertical;
  border-radius: 6px;
  margin-top: .35rem;
  padding: .5rem .75rem;
  font-family: inherit;
  display: block;
}

.solicitudes-modal-textarea:focus {
  border-color: var(--sol-accent);
  outline: none;
}

.solicitudes-modal-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .5rem;
  display: flex;
}

.solicitudes-modal-cancelar {
  min-width: 400px;
  max-width: 480px;
}

.solicitudes-modal-cancelar .solicitudes-modal-title {
  font-size: var(--tc-text-xl);
  color: var(--sol-text, #1f2937);
  margin-bottom: .5rem;
  font-weight: 600;
}

.solicitudes-modal-cancelar .solicitudes-modal-text {
  color: var(--sol-muted, #6b7280);
  margin-bottom: 1rem;
  line-height: 1.5;
}

.solicitudes-modal-required {
  color: var(--portal-error, #dc2626);
}

.solicitudes-modal-btn-confirm-cancel {
  background: var(--portal-error, #dc2626);
}

.solicitudes-modal-btn-confirm-cancel:hover:not(:disabled) {
  background: #b91c1c;
}

.solicitudes-modal-btn-confirm-delete {
  background: var(--portal-error, #dc2626);
}

.solicitudes-modal-btn-confirm-delete:hover:not(:disabled) {
  background: #b91c1c;
}

.solicitudes-detail-cancelacion {
  border-left: 3px solid var(--portal-error, #dc2626);
  margin-top: 1rem;
}

.solicitudes-action-eliminar:hover {
  color: #dc2626;
  background: #ef444426;
}

.solicitudes-btn-refresh {
  font-size: var(--tc-text-base);
  cursor: pointer;
  border-radius: 8px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  gap: .4rem;
  padding: .5rem .75rem;
  transition: background .15s, color .15s;
  display: inline-flex;
}

.solicitudes-lista-wrap .solicitudes-btn-refresh.portal-secondary-button {
  padding: .5rem .75rem;
}

.solicitudes-btn-refresh:hover {
  filter: brightness(1.05);
}

.solicitudes-btn-refresh:disabled {
  opacity: .6;
  cursor: not-allowed;
}

.solicitudes-btn-refresh-text {
  white-space: nowrap;
}

.solicitudes-btn-nuevo {
  font-size: var(--tc-text-md);
  white-space: nowrap;
  flex-shrink: 0;
  padding: .5rem 1rem;
}

.solicitudes-cell-doc {
  font-variant-numeric: tabular-nums;
  font-size: var(--tc-text-base);
}

.solicitudes-error, .solicitudes-form-error {
  margin-top: 0;
  margin-bottom: .5rem;
}

.solicitudes-loading {
  text-align: center;
  font-size: var(--tc-text-md);
  color: var(--sol-muted);
  padding: 1rem;
}

.solicitudes-table-wrap {
  border: 1px solid var(--sol-border);
  border-radius: var(--sol-radius);
  background: var(--admin-card-bg, #fff);
  margin-top: 0;
  overflow-x: auto;
  box-shadow: 0 1px 3px #0000000d;
}

.solicitudes-table {
  border-collapse: collapse;
  width: 100%;
  font-size: var(--tc-text-base);
}

.solicitudes-table thead {
  background: var(--sol-bg);
  border-bottom: 1px solid var(--sol-border);
}

.solicitudes-table th {
  text-align: left;
  color: var(--sol-text);
  padding: .65rem .85rem;
  font-weight: 600;
}

.solicitudes-th-actions {
  text-align: center;
  width: 1%;
}

.solicitudes-table tbody tr {
  border-bottom: 1px solid #f1f5f9;
}

.solicitudes-table tbody tr:hover {
  background: #0f172a08;
}

.solicitudes-table td {
  color: var(--sol-text);
  vertical-align: middle;
  padding: .6rem .85rem;
}

.solicitudes-cell-codigo {
  font-family: ui-monospace, monospace;
  font-weight: 500;
}

.solicitudes-cell-nombre {
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 180px;
  overflow: hidden;
}

.solicitudes-cell-phone, .solicitudes-cell-dir {
  color: var(--sol-muted);
  font-size: .85rem;
}

.solicitudes-cell-dir {
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 220px;
  overflow: hidden;
}

.solicitudes-cell-fecha {
  font-variant-numeric: tabular-nums;
  color: var(--sol-muted);
  font-size: .85rem;
}

.solicitudes-cell-actions {
  white-space: nowrap;
  text-align: center;
}

.solicitudes-action-btn {
  width: 2rem;
  height: 2rem;
  font-size: var(--tc-text-sm);
  color: var(--sol-accent);
  background: #0ea5e91a;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  margin: 0 2px;
  padding: 0;
  text-decoration: none;
  transition: background .15s, color .15s;
  display: inline-flex;
}

.solicitudes-action-btn:hover {
  color: #0284c7;
  background: #0ea5e933;
}

button.solicitudes-action-btn {
  cursor: pointer;
  font: inherit;
  border: none;
}

button.solicitudes-action-btn:disabled {
  opacity: .7;
  cursor: not-allowed;
}

.solicitudes-action-convertir {
  margin-left: .25rem;
}

.solicitudes-empty {
  text-align: center;
  color: var(--sol-muted);
  font-size: var(--tc-text-md);
  padding: 2.5rem 1rem !important;
}

.solicitudes-form-header {
  margin-bottom: 1.5rem;
}

.solicitudes-back-link {
  font-size: var(--tc-text-md);
  color: var(--sol-muted);
  margin-bottom: .75rem;
  text-decoration: none;
  display: inline-block;
}

.solicitudes-back-link:hover {
  color: var(--sol-accent);
}

.solicitudes-form-header .app-header-title {
  color: var(--sol-text);
  margin: 0 0 .2rem;
}

.solicitudes-form-header .app-header-meta {
  color: var(--sol-muted);
  margin: 0;
  font-size: .85rem;
}

.solicitudes-form {
  max-width: 520px;
}

.solicitudes-form-grid {
  grid-template-columns: 1fr 1fr;
  gap: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  display: grid;
}

.solicitudes-form-field-full {
  grid-column: 1 / -1;
}

.solicitudes-form-field {
  flex-direction: column;
  gap: .35rem;
  display: flex;
}

.solicitudes-form-label {
  color: var(--sol-text);
  font-size: .85rem;
  font-weight: 600;
}

.solicitudes-form-actions {
  flex-wrap: wrap;
  gap: .75rem;
  display: flex;
}

.solicitudes-form-hint {
  font-size: var(--tc-text-sm);
  color: #22c55e;
  margin-top: .25rem;
}

.solicitudes-wizard-steps {
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: 1.5rem;
  display: flex;
}

.solicitudes-wizard-step {
  border-radius: var(--sol-radius);
  color: #64748b;
  background: #f1f5f9;
  align-items: center;
  gap: .5rem;
  padding: .5rem 1rem;
  display: flex;
}

.solicitudes-wizard-step-active {
  color: #0369a1;
  background: #e0f2fe;
}

.solicitudes-wizard-step-current {
  background: var(--sol-accent);
  color: #fff;
}

.solicitudes-wizard-step-num {
  min-width: 1.5rem;
  font-weight: 700;
}

.solicitudes-wizard-divider {
  border: none;
  border-top: 1px solid var(--sol-border);
  margin: 1.5rem 0;
}

.solicitudes-cliente-existente-card {
  background: var(--sol-bg, #f3f4f6);
  border: 1px solid var(--sol-border);
  border-radius: var(--sol-radius);
  border-left: 4px solid var(--sol-accent, #3b82f6);
  margin-top: 1.5rem;
  padding: 1.25rem;
}

.solicitudes-cliente-existente-title {
  color: var(--sol-text);
  margin: 0 0 .5rem;
  font-size: 1.1rem;
  font-weight: 600;
}

.solicitudes-cliente-existente-text {
  font-size: var(--tc-text-md);
  color: var(--sol-muted);
  margin: 0 0 1rem;
  line-height: 1.5;
}

.solicitudes-cliente-existente-dl {
  margin-bottom: 0;
}

.solicitudes-form-wrap .solicitudes-wizard-card, .solicitudes-form-wrap .solicitudes-form {
  width: 100%;
  max-width: 960px;
}

.solicitudes-form-wrap .solicitudes-form-grid {
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem 1.5rem;
}

@media (min-width: 900px) {
  .solicitudes-form-wrap .solicitudes-form-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .solicitudes-form-wrap .solicitudes-form-grid {
    grid-template-columns: 1fr;
  }
}

.solicitudes-doc-preview {
  object-fit: contain;
  border: 1px solid var(--sol-border);
  background: var(--sol-bg);
  border-radius: 8px;
  width: auto;
  max-width: 280px;
  height: auto;
  max-height: 200px;
  margin-top: .5rem;
  display: block;
}

.solicitudes-doc-preview-wrap {
  margin-top: .5rem;
}

@media (max-width: 600px) {
  .solicitudes-doc-preview {
    max-width: 100%;
  }
}

.solicitudes-detail-header {
  margin-bottom: 1.5rem;
}

.solicitudes-detail-header .solicitudes-back-link {
  margin-bottom: .75rem;
}

.solicitudes-detail-header .app-header-title {
  color: var(--sol-text);
  margin: 0 0 .2rem;
}

.solicitudes-detail-header .app-header-meta {
  color: var(--sol-muted);
  margin: 0;
  font-size: .85rem;
}

.solicitudes-detail-card {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--sol-border);
  border-radius: var(--sol-radius);
  max-width: 720px;
  margin-bottom: 1rem;
  padding: 1.25rem;
}

.solicitudes-detail-wrap .solicitudes-detail-card {
  max-width: 720px;
}

.solicitudes-detail-subtitle {
  color: var(--sol-text);
  margin: 0 0 .75rem;
  font-size: .95rem;
  font-weight: 600;
}

.solicitudes-detail-dl {
  grid-template-columns: auto 1fr;
  gap: .35rem 1.5rem;
  margin: 0;
  display: grid;
}

.solicitudes-detail-dl dt {
  color: var(--sol-muted);
  font-size: .85rem;
}

.solicitudes-detail-dl dd {
  margin: 0;
}

.solicitudes-detail-address {
  color: var(--sol-text);
  margin: 0;
  font-size: .95rem;
}

.solicitudes-detail-docs {
  flex-wrap: wrap;
  gap: 1.25rem;
  margin-top: .5rem;
  display: flex;
}

.solicitudes-doc-item {
  flex-direction: column;
  gap: .35rem;
  display: flex;
}

.solicitudes-doc-item-label {
  font-size: var(--tc-text-sm);
  color: var(--sol-muted);
  font-weight: 600;
}

.solicitudes-detail-actions {
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.25rem;
  display: flex;
}

.sol-review-wrap {
  --sol-review-bg: #f8fafc;
  --sol-review-card: #fff;
  --sol-review-border: #e2e8f0;
  --sol-review-text: #1e293b;
  --sol-review-muted: #64748b;
  --sol-review-primary: #2563eb;
  background: var(--sol-review-bg);
  max-width: 1280px;
  min-height: 100vh;
  margin: 0 auto;
  padding: 0 1.5rem 2rem;
}

.sol-review-loading {
  text-align: center;
  color: var(--sol-review-muted);
  padding: 2rem;
}

.sol-review-header {
  margin-bottom: 1.75rem;
}

.sol-review-back {
  font-size: var(--tc-text-md);
  color: var(--sol-review-muted);
  margin-bottom: .75rem;
  text-decoration: none;
  transition: color .15s;
  display: inline-block;
}

.sol-review-back:hover {
  color: var(--sol-review-primary);
}

.sol-review-header-row {
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  margin-bottom: .35rem;
  display: flex;
}

.sol-review-title {
  color: var(--sol-review-text);
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
}

.sol-review-meta {
  color: var(--sol-review-muted);
  margin: 0;
  font-size: .85rem;
}

.sol-review-card {
  background: var(--sol-review-card);
  border: 1px solid var(--sol-review-border);
  border-radius: 12px;
  margin-bottom: 1.25rem;
  padding: 1.5rem 1.75rem;
  box-shadow: 0 1px 3px #0000000d;
}

.sol-review-card-title {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--sol-review-muted);
  margin: 0 0 1rem;
  font-weight: 600;
}

.sol-review-cancelacion {
  background: #fee2e24d;
  border-color: #ef444433;
  margin-top: 1rem;
}

.sol-review-grid-2 {
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  margin-bottom: 1.25rem;
  display: grid;
}

.sol-review-grid-3 {
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1.25rem;
  margin-bottom: 1.25rem;
  display: grid;
}

@media (max-width: 960px) {
  .sol-review-grid-3 {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .sol-review-grid-2 {
    grid-template-columns: 1fr;
  }
}

.sol-review-dl {
  font-size: var(--tc-text-md);
  grid-template-columns: auto 1fr;
  gap: .5rem 1.5rem;
  margin: 0;
  display: grid;
}

.sol-review-dl dt {
  color: var(--sol-review-muted);
  font-weight: 500;
}

.sol-review-dl dd {
  color: var(--sol-review-text);
  margin: 0;
}

.sol-review-dl-stack {
  grid-template-columns: auto 1fr;
  gap: .6rem 1.5rem;
}

.sol-review-docs {
  flex-wrap: wrap;
  gap: 1.25rem;
  display: flex;
}

.sol-review-doc-item {
  flex-direction: column;
  gap: .5rem;
  display: flex;
}

.sol-review-doc-label {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--sol-review-muted);
  font-weight: 600;
}

.sol-review-doc-thumb-wrap {
  cursor: pointer;
  background: #f1f5f9;
  border: none;
  border-radius: 12px;
  padding: 0;
  transition: transform .2s, box-shadow .2s;
  display: block;
  overflow: hidden;
  box-shadow: 0 2px 8px #00000014;
}

.sol-review-doc-thumb-wrap:hover {
  transform: scale(1.02);
  box-shadow: 0 4px 16px #0000001f;
}

.sol-review-doc-thumb {
  object-fit: cover;
  vertical-align: middle;
  width: 100%;
  min-width: 200px;
  max-width: 280px;
  height: auto;
  max-height: 220px;
  display: block;
}

.sol-review-address-grid {
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: .75rem 1.5rem;
  margin-bottom: 1rem;
  display: grid;
}

.sol-review-address-item {
  flex-direction: column;
  gap: .2rem;
  display: flex;
}

.sol-review-address-label {
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--sol-review-muted);
  font-size: .7rem;
  font-weight: 600;
}

.sol-review-address-item span:not(.sol-review-address-label) {
  font-size: var(--tc-text-md);
  color: var(--sol-review-text);
  font-weight: 500;
}

.sol-review-address-full {
  border-top: 1px solid var(--sol-review-border);
  color: var(--sol-review-text);
  margin: 0;
  padding-top: .75rem;
  font-size: .95rem;
  line-height: 1.5;
}

.sol-review-actions {
  border-top: 1px solid var(--sol-review-border);
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  display: flex;
}

.sol-review-btn {
  font-size: var(--tc-text-md);
  border: 1px solid var(--sol-review-border);
  background: var(--sol-review-card);
  color: var(--sol-review-text);
  cursor: pointer;
  border-radius: 10px;
  justify-content: center;
  align-items: center;
  padding: .75rem 1.25rem;
  font-weight: 500;
  text-decoration: none;
  transition: background .2s, border-color .2s, color .2s;
  display: inline-flex;
}

.sol-review-btn.sec:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
}

.sol-review-btn.primary {
  background: var(--sol-review-primary);
  border-color: var(--sol-review-primary);
  color: #fff;
}

.sol-review-btn.primary:hover:not(:disabled) {
  filter: brightness(1.08);
}

.sol-review-btn.primary:disabled {
  opacity: .7;
  cursor: not-allowed;
}

.sol-review-lightbox {
  z-index: 9999;
  cursor: pointer;
  background: #0f172abf;
  justify-content: center;
  align-items: center;
  padding: 2rem;
  display: flex;
  position: fixed;
  inset: 0;
}

.sol-review-lightbox-close {
  color: #fff;
  cursor: pointer;
  background: #ffffff26;
  border: 1px solid #ffffff4d;
  border-radius: 10px;
  justify-content: center;
  align-items: center;
  width: 2.5rem;
  height: 2.5rem;
  font-size: 1.5rem;
  line-height: 1;
  transition: background .2s;
  display: flex;
  position: absolute;
  top: 1rem;
  right: 1rem;
}

.sol-review-lightbox-close:hover {
  background: #ffffff40;
}

.sol-review-lightbox-inner {
  cursor: default;
  max-width: 95vw;
  max-height: 90vh;
}

.sol-review-lightbox-img {
  object-fit: contain;
  border-radius: 12px;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 85vh;
  box-shadow: 0 24px 48px #00000059;
}

.solicitud-wizard {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 1rem 3rem;
}

.solicitud-wizard-header {
  margin-bottom: 2rem;
}

.solicitud-wizard-back {
  font-size: var(--tc-text-md);
  color: var(--admin-text-muted, #64748b);
  margin-bottom: .75rem;
  text-decoration: none;
  transition: color .15s;
  display: inline-block;
}

.solicitud-wizard-back:hover {
  color: var(--admin-primary, #2563eb);
}

.solicitud-wizard-title {
  color: var(--admin-text, #1e293b);
  letter-spacing: -.02em;
  margin: 0 0 .25rem;
  font-size: 1.5rem;
  font-weight: 700;
}

.solicitud-wizard-step-label {
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 1rem;
  font-size: .95rem;
}

.solicitud-wizard-progress-wrap {
  background: var(--admin-border, #e2e8f0);
  border-radius: 999px;
  height: 6px;
  overflow: hidden;
}

.solicitud-wizard-progress-bar {
  background: var(--admin-primary, #2563eb);
  border-radius: 999px;
  height: 100%;
  transition: width .35s;
}

.solicitud-wizard-timeline {
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0;
  margin-bottom: 2rem;
  display: flex;
}

.solicitud-wizard-timeline-inner {
  align-items: center;
  display: flex;
}

.solicitud-wizard-timeline-step {
  font-size: var(--tc-text-md);
  color: var(--admin-text-muted, #94a3b8);
  align-items: center;
  gap: .5rem;
  padding: .5rem .75rem;
  font-weight: 500;
  display: inline-flex;
}

.solicitud-wizard-timeline-step.completed {
  color: var(--admin-primary, #2563eb);
}

.solicitud-wizard-timeline-step.completed .solicitud-wizard-timeline-icon {
  color: #16a34a;
  background: #22c55e33;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 1.25rem;
  height: 1.25rem;
  font-size: .7rem;
  display: inline-flex;
}

.solicitud-wizard-timeline-step.current {
  color: var(--admin-text, #1e293b);
}

.solicitud-wizard-timeline-step.current .solicitud-wizard-timeline-dot {
  background: var(--admin-primary, #2563eb);
  box-shadow: 0 0 0 3px #2563eb40;
}

.solicitud-wizard-timeline-dot {
  background: var(--admin-border, #cbd5e1);
  border-radius: 50%;
  flex-shrink: 0;
  width: 10px;
  height: 10px;
}

.solicitud-wizard-timeline-connector {
  color: var(--admin-border, #e2e8f0);
  -webkit-user-select: none;
  user-select: none;
  padding: 0 .5rem;
  font-weight: 300;
}

.movimiento-wizard-card {
  text-align: left;
  border: 2px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  cursor: pointer;
  border-radius: 10px;
  min-width: 12rem;
  padding: 1.25rem 1.5rem;
  transition: border-color .2s, background .2s;
}

.movimiento-wizard-card:hover {
  border-color: var(--admin-primary, #2563eb);
  background: #2563eb0a;
}

.movimiento-wizard-card--selected {
  border-color: var(--admin-primary, #2563eb);
  box-shadow: 0 0 0 1px var(--admin-primary, #2563eb);
  background: #2563eb14;
}

.movimiento-wizard-card--selected .movimiento-wizard-card-title {
  color: var(--admin-primary, #2563eb);
  font-weight: 600;
}

.movimiento-wizard-card .movimiento-wizard-card-title {
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.movimiento-wizard-card .movimiento-wizard-card-desc {
  color: var(--admin-text-muted, #64748b);
  margin: .5rem 0 0;
  font-size: .85rem;
  line-height: 1.4;
}

.movimiento-wizard-card--selected .movimiento-wizard-card-desc {
  color: var(--admin-text-muted, #475569);
}

.compra-equipos-section .compra-equipos-section-body {
  max-width: 100%;
  display: block;
}

.compra-equipos-toggles {
  flex-wrap: wrap;
  gap: 1.25rem 2rem;
  margin-bottom: 1.25rem;
  display: flex;
}

.compra-equipos-toggles .vpn-config-toggle-wrap {
  min-width: 12rem;
}

.compra-equipos-table-wrap {
  width: 100%;
  margin-top: .5rem;
  overflow: hidden;
}

.compra-equipos-table {
  table-layout: fixed;
  border-collapse: collapse;
  width: 100%;
  font-size: var(--tc-text-base);
}

.compra-equipos-table.cols-3 .col-num {
  width: 5%;
}

.compra-equipos-table.cols-3 .col-serial {
  width: 50%;
}

.compra-equipos-table.cols-3 .col-mac {
  width: 45%;
}

.compra-equipos-table.cols-4 .col-num {
  width: 5%;
}

.compra-equipos-table.cols-4 .col-serial {
  width: 35%;
}

.compra-equipos-table.cols-4 .col-mac {
  width: 25%;
}

.compra-equipos-table.cols-4 .col-modelo, .compra-equipos-table.cols-4 .col-costo {
  width: 35%;
}

.compra-equipos-table.cols-5 .col-num {
  width: 5%;
}

.compra-equipos-table.cols-5 .col-serial {
  width: 35%;
}

.compra-equipos-table.cols-5 .col-mac {
  width: 25%;
}

.compra-equipos-table.cols-5 .col-modelo {
  width: 20%;
}

.compra-equipos-table.cols-5 .col-costo {
  width: 15%;
}

.compra-equipos-table th, .compra-equipos-table td {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  vertical-align: middle;
  padding: .6rem .75rem;
}

.compra-equipos-table thead tr {
  border-bottom: 2px solid var(--admin-border, #e2e8f0);
  background: #f1f5f9;
}

.compra-equipos-table th {
  text-align: left;
  font-weight: 600;
  font-size: var(--tc-text-sm);
  text-transform: uppercase;
  letter-spacing: .03em;
  color: #475569;
}

.compra-equipos-table th.col-num, .compra-equipos-table td.col-num {
  text-align: center;
}

.compra-equipos-table th.col-costo, .compra-equipos-table td.col-costo {
  text-align: right;
}

.compra-equipos-table tbody tr {
  transition: background .15s;
}

.compra-equipos-table tbody tr:hover {
  background: #2563eb0a;
}

.compra-equipos-table td input, .compra-equipos-table td select {
  box-sizing: border-box;
  border: 1px solid var(--admin-border, #e2e8f0);
  width: 100%;
  max-width: 100%;
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  background: #fff;
  border-radius: 6px;
  padding: .45rem .6rem;
}

.compra-equipos-table td input:focus, .compra-equipos-table td select:focus {
  border-color: var(--admin-primary, #2563eb);
  outline: none;
}

.compra-equipos-table td.col-costo input {
  text-align: right;
}

.compra-materiales-section .compra-materiales-section-body {
  max-width: 100%;
  display: block;
}

.compra-materiales-table-wrap {
  width: 100%;
  margin-bottom: 0;
  overflow: hidden;
}

.compra-materiales-table {
  table-layout: fixed;
  border-collapse: collapse;
  width: 100%;
  font-size: var(--tc-text-base);
}

.compra-materiales-table .col-num {
  width: 4%;
}

.compra-materiales-table .col-material {
  width: 32%;
}

.compra-materiales-table .col-cantidad {
  width: 12%;
}

.compra-materiales-table .col-stock, .compra-materiales-table .col-nuevo {
  width: 14%;
}

.compra-materiales-table .col-accion {
  width: 12%;
}

.compra-materiales-table th, .compra-materiales-table td {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  vertical-align: middle;
  padding: .6rem .75rem;
}

.compra-materiales-table thead tr {
  border-bottom: 2px solid var(--admin-border, #e2e8f0);
  background: #f1f5f9;
}

.compra-materiales-table th {
  text-align: left;
  font-weight: 600;
  font-size: var(--tc-text-sm);
  text-transform: uppercase;
  letter-spacing: .03em;
  color: #475569;
}

.compra-materiales-table th.col-num, .compra-materiales-table td.col-num {
  text-align: center;
}

.compra-materiales-table th.col-stock, .compra-materiales-table td.col-stock, .compra-materiales-table th.col-nuevo, .compra-materiales-table td.col-nuevo {
  text-align: right;
}

.compra-materiales-table tbody tr:hover {
  background: #2563eb0a;
}

.compra-materiales-table td input, .compra-materiales-table td select {
  box-sizing: border-box;
  border: 1px solid var(--admin-border, #e2e8f0);
  width: 100%;
  max-width: 100%;
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  background: #fff;
  border-radius: 6px;
  padding: .45rem .6rem;
}

.compra-materiales-table td input:focus, .compra-materiales-table td select:focus {
  border-color: var(--admin-primary, #2563eb);
  outline: none;
}

.compra-materiales-table td.col-cantidad input {
  text-align: right;
}

.solicitud-wizard-body {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 12px;
  padding: 2rem;
  box-shadow: 0 1px 3px #0000000d;
}

.aprovisionamiento-panel.noc-panel {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 12px;
  grid-template-columns: 2fr 1fr;
  align-items: start;
  gap: 1rem;
  padding: 1rem 1.25rem;
  display: grid;
  overflow: hidden;
  box-shadow: 0 1px 3px #0000000f;
}

.aprovisionamiento-panel .aprovisionamiento-panel-header {
  grid-column: 1 / -1;
  margin-bottom: .5rem;
}

.aprovisionamiento-panel .aprovisionamiento-back {
  font-size: var(--tc-text-base);
  color: var(--admin-link, #2563eb);
  margin-bottom: .5rem;
  display: inline-block;
}

.aprovisionamiento-panel .aprovisionamiento-panel-title {
  font-size: var(--tc-text-xl);
  margin: 0 0 .25rem;
  font-weight: 700;
}

.aprovisionamiento-panel .aprovisionamiento-panel-subtitle {
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.aprovisionamiento-panel .aprovisionamiento-panel-main {
  min-width: 0;
}

.aprovisionamiento-panel .noc-block {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
}

.aprovisionamiento-panel .noc-block:last-of-type {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.aprovisionamiento-panel .noc-block-title {
  font-size: var(--tc-text-lg);
  margin: 0 0 .25rem;
  font-weight: 600;
}

.aprovisionamiento-panel .noc-block-desc {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 .75rem;
}

.aprovisionamiento-panel .noc-block-actions {
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: 1rem;
  display: flex;
}

.aprovisionamiento-panel .aprovisionamiento-context {
  position: sticky;
  top: .5rem;
}

@media (max-width: 768px) {
  .aprovisionamiento-panel.noc-panel {
    grid-template-columns: 1fr;
  }
}

.orden-section.noc-panel-embed.aprovisionamiento-panel-embed {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 12px;
  margin-top: 1rem;
  padding: 1.25rem;
  box-shadow: 0 1px 3px #0000000f;
}

.orden-section.noc-panel-embed .noc-panel-grid {
  grid-template-columns: 1fr 1fr;
  align-items: start;
  gap: 1.5rem;
  display: grid;
}

.orden-section.noc-panel-embed .noc-block {
  background: var(--admin-bg-subtle, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--radius, 8px);
  margin-bottom: 0;
  padding: 1rem 1.25rem;
}

.orden-section.noc-panel-embed .noc-block-title {
  font-size: var(--tc-text-lg);
  margin: 0 0 .25rem;
  font-weight: 600;
}

.orden-section.noc-panel-embed .noc-block-desc {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 .75rem;
}

.orden-section.noc-panel-embed .noc-block-actions {
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: 1rem;
  display: flex;
}

@media (max-width: 1024px) {
  .orden-section.noc-panel-embed .noc-panel-grid {
    grid-template-columns: 1fr;
  }
}

.aprovisionamiento-wizard {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 1rem 1.5rem;
}

.aprovisionamiento-wizard-header-compact {
  margin-bottom: .75rem;
}

.aprovisionamiento-wizard-header-compact .solicitud-wizard-back {
  margin-bottom: .25rem;
}

.aprovisionamiento-wizard-header-inner {
  flex-wrap: wrap;
  align-items: baseline;
  gap: .5rem 1rem;
  margin-bottom: .35rem;
  display: flex;
}

.aprovisionamiento-wizard-header-inner .solicitud-wizard-title {
  font-size: var(--tc-text-2xl);
  margin: 0;
  font-weight: 700;
}

.aprovisionamiento-wizard-header-inner .solicitud-wizard-step-label {
  color: var(--admin-text-muted, #64748b);
  margin: 0;
  font-size: .9375rem;
}

.aprovisionamiento-wizard-header-compact .solicitud-wizard-progress-wrap {
  height: 4px;
}

.aprovisionamiento-wizard-panel {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 12px;
  grid-template-columns: 2fr 1fr;
  align-items: start;
  gap: 0;
  display: grid;
  overflow: hidden;
  box-shadow: 0 1px 3px #0000000f;
}

.aprovisionamiento-wizard-main {
  min-width: 0;
  padding: 1rem 1.25rem 1.25rem;
}

.aprovisionamiento-wizard-main .aprovisionamiento-wizard-timeline {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  margin-bottom: 1rem;
  padding-bottom: .75rem;
}

.aprovisionamiento-wizard-main .aprovisionamiento-wizard-timeline .solicitud-wizard-timeline-step {
  font-size: var(--tc-text-base);
}

.aprovisionamiento-wizard-main .solicitud-wizard-actions {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  margin-top: 1rem;
  padding-top: .75rem;
}

.aprovisionamiento-wizard-main .solicitud-wizard-actions-right {
  margin-left: auto;
}

.aprovisionamiento-wizard-body-inner {
  box-shadow: none;
  background: none;
  border: none;
  border-radius: 0;
  padding: 0;
}

.aprovisionamiento-wizard-context {
  background: var(--admin-bg-subtle, #f8fafc);
  border-left: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 0;
  min-width: 0;
  padding: .875rem 1rem;
  position: sticky;
  top: .5rem;
}

.aprovisionamiento-wizard-context-inner {
  font-size: var(--tc-text-base);
  flex-direction: column;
  gap: .4rem;
  display: flex;
}

.aprovisionamiento-wizard-context-inner .context-row {
  flex-direction: column;
  gap: .12rem;
  display: flex;
}

.aprovisionamiento-wizard-context-inner .context-label {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted, #64748b);
  margin: 0;
  font-weight: 600;
}

.aprovisionamiento-wizard-context-inner .context-value {
  color: var(--admin-text, #1e293b);
  word-break: break-word;
  margin: 0;
  font-weight: 500;
}

.aprovisionamiento-wizard-context-inner .context-value code {
  font-size: .9em;
}

.aprovisionamiento-wizard-context-num {
  font-weight: 700;
  font-size: var(--tc-text-lg);
  color: var(--admin-text, #1e293b);
  margin: 0;
}

.aprovisionamiento-wizard-context-cliente {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 600;
}

.aprovisionamiento-wizard-context-meta, .aprovisionamiento-wizard-context-dir {
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.aprovisionamiento-wizard-context-ont {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  font-size: var(--tc-text-base);
  margin: .5rem 0 0;
  padding-top: .5rem;
}

.aprovisionamiento-wizard-context-ont code {
  font-size: .85em;
}

.aprovisionamiento-wizard-step1 .solicitud-wizard-section-body {
  gap: .75rem 1.25rem;
}

.aprovisionamiento-wizard-step1 .solicitud-wizard-field {
  gap: .25rem;
}

.aprovisionamiento-wizard-step1 .solicitud-wizard-field-label {
  font-size: var(--tc-text-base);
}

.aprovisionamiento-wizard-step1 .solicitud-wizard-field-input input, .aprovisionamiento-wizard-step1 .solicitud-wizard-field-input select {
  padding: .4rem .65rem;
  font-size: .9375rem;
}

.aprovisionamiento-wizard-step1 .solicitud-wizard-section-title {
  margin-bottom: .5rem;
}

.aprovisionamiento-wizard-step1 .solicitud-wizard-section {
  margin-bottom: 1rem;
}

.aprovisionamiento-wizard-step1 .solicitud-wizard-section:last-child {
  margin-bottom: 0;
}

.aprovisionamiento-ont-tecnico-box {
  background: #2563eb0f;
  border: 1px solid #2563eb33;
  border-radius: 8px;
  padding: .75rem 1rem;
}

.aprovisionamiento-ont-tecnico-single {
  max-width: 320px;
}

.aprovisionamiento-step2 {
  flex-direction: column;
  gap: 1.5rem;
  width: 100%;
  min-width: 0;
  display: flex;
}

.aprovisionamiento-step2-block {
  margin: 0;
  padding: 0;
}

.aprovisionamiento-step2-block-title {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 .75rem;
  font-weight: 700;
}

.aprovisionamiento-step2-block-onus {
  width: 100%;
}

.aprovisionamiento-step2-onus-toolbar {
  margin-bottom: 1rem;
}

.aprovisionamiento-step2-refresh-btn {
  font-size: var(--tc-text-base);
  color: #fff;
  background: var(--admin-primary, #2563eb);
  cursor: pointer;
  border: none;
  border-radius: 8px;
  align-items: center;
  gap: .5rem;
  padding: .5rem 1rem;
  font-weight: 600;
  transition: background .2s, transform .1s;
  display: inline-flex;
  box-shadow: 0 1px 2px #2563eb33;
}

.aprovisionamiento-step2-refresh-btn:hover:not(:disabled) {
  background: #1d4ed8;
  box-shadow: 0 2px 4px #2563eb4d;
}

.aprovisionamiento-step2-refresh-btn:active:not(:disabled) {
  transform: scale(.98);
}

.aprovisionamiento-step2-refresh-btn:disabled {
  opacity: .7;
  cursor: not-allowed;
}

.aprovisionamiento-step2-refresh-icon {
  font-size: 1.125rem;
  line-height: 1;
}

.aprovisionamiento-step2-refresh-label {
  line-height: 1;
}

.aprovisionamiento-step2-table-wrap {
  background: var(--admin-bg, #fff);
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  width: 100%;
  min-width: 0;
  overflow-x: auto;
}

.aprovisionamiento-step2-table {
  table-layout: auto;
  border-collapse: collapse;
  width: 100%;
  font-size: .9375rem;
}

.aprovisionamiento-step2-table thead {
  background: var(--admin-bg-subtle, #f1f5f9);
  border-bottom: 2px solid var(--admin-border, #e2e8f0);
}

.aprovisionamiento-step2-table th {
  text-align: left;
  font-weight: 600;
  font-size: var(--tc-text-sm);
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--admin-text-muted, #64748b);
  padding: .75rem 1rem;
}

.aprovisionamiento-step2-table td {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  vertical-align: middle;
  padding: .75rem 1rem;
}

.aprovisionamiento-step2-table tbody tr:last-child td {
  border-bottom: none;
}

.aprovisionamiento-step2-table tbody tr:hover {
  background: var(--admin-table-hover, #f8fafc);
}

.aprovisionamiento-step2-table tbody tr.selected {
  border-left: 3px solid var(--admin-primary, #2563eb);
  background: #2563eb1f;
}

.aprovisionamiento-step2-olt-cell {
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 320px;
  overflow: hidden;
}

.aprovisionamiento-step2-th-action {
  white-space: nowrap;
  text-align: right;
  width: 1%;
  padding-right: .75rem;
}

.aprovisionamiento-step2-td-action {
  text-align: right;
  vertical-align: middle;
  white-space: nowrap;
}

.aprovisionamiento-step2-select-btn {
  font-size: var(--tc-text-sm);
  color: var(--admin-primary, #2563eb);
  cursor: pointer;
  background: #2563eb14;
  border: 1px solid #2563eb4d;
  border-radius: 6px;
  padding: .35rem .65rem;
  font-weight: 500;
  transition: background .15s, border-color .15s;
}

.aprovisionamiento-step2-select-btn:hover {
  border-color: var(--admin-primary, #2563eb);
  background: #2563eb24;
}

.aprovisionamiento-step2-select-btn[aria-pressed="true"] {
  border-color: var(--admin-primary, #2563eb);
  background: #2563eb2e;
  font-weight: 600;
}

.aprovisionamiento-step2-muted {
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.aprovisionamiento-step2 .solicitud-wizard-field-input input, .aprovisionamiento-step2 .solicitud-wizard-field-input select, .aprovisionamiento-step2 .solicitud-wizard-field-input textarea {
  border-color: #cbd5e1;
}

.aprovisionamiento-step2 .solicitud-wizard-field-input input:focus, .aprovisionamiento-step2 .solicitud-wizard-field-input select:focus, .aprovisionamiento-step2 .solicitud-wizard-field-input textarea:focus {
  border-color: var(--admin-primary, #2563eb);
}

.aprovisionamiento-step2-config-grid {
  grid-template-columns: 1fr 1fr;
  gap: 1rem 1.25rem;
  display: grid;
}

.aprovisionamiento-step2-config-grid .solicitud-wizard-field {
  min-width: 0;
}

.aprovisionamiento-step2-field-modo .solicitud-wizard-field-input select {
  max-width: 10rem;
}

.aprovisionamiento-step2-perfiles-row {
  grid-column: 1 / -1;
  grid-template-columns: 1fr 1fr;
  align-items: end;
  gap: 1rem 1.25rem;
  display: grid;
}

.aprovisionamiento-step2-perfiles-row .solicitud-wizard-field {
  min-width: 0;
}

.aprovisionamiento-step2-readonly {
  color: var(--admin-text, #1e293b);
  border-radius: 8px;
  font-weight: 500;
  background: var(--admin-bg-subtle, #f8fafc) !important;
  border: 1px solid #cbd5e1 !important;
  padding: .5rem .65rem !important;
  font-size: .9375rem !important;
}

.aprovisionamiento-step2-success {
  margin-top: 1rem;
}

.aprovisionamiento-step2-wan-fields {
  flex-direction: column;
  gap: 1rem;
  max-width: 400px;
  display: flex;
}

.aprovisionamiento-step2-radius-row {
  grid-template-columns: 1fr 1fr;
  gap: 1rem 1.25rem;
  max-width: 520px;
  display: grid;
}

.aprovisionamiento-step2-radius-row .solicitud-wizard-field {
  min-width: 0;
}

.aprovisionamiento-step3.validacion-tecnica-panel {
  width: 100%;
}

.validacion-tecnica-title {
  color: var(--admin-text, #1e293b);
  margin: 0 0 1.25rem;
  font-size: 1.125rem;
  font-weight: 600;
}

.validacion-tecnica-block {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--radius, 8px);
  margin-bottom: 1.5rem;
  padding: 1rem 1.25rem;
}

.validacion-tecnica-block-title {
  font-size: var(--tc-text-sm);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 .75rem;
  font-weight: 600;
}

.validacion-tecnica-grid {
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: .75rem 1.5rem;
  display: grid;
}

.validacion-tecnica-item {
  flex-direction: column;
  gap: .2rem;
  display: flex;
}

.validacion-tecnica-label {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
}

.validacion-tecnica-value {
  font-size: var(--tc-text-md);
  color: var(--admin-text, #1e293b);
  font-weight: 500;
}

.validacion-tecnica-value code {
  background: var(--admin-bg-subtle, #f1f5f9);
  border-radius: 4px;
  padding: .15rem .4rem;
  font-size: .85em;
}

.validacion-tecnica-actions {
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.25rem;
  display: flex;
}

.validacion-tecnica-actions .portal-primary-button, .validacion-tecnica-actions .portal-secondary-button {
  min-height: 40px;
}

.validacion-btn-reemplazo {
  margin-left: auto;
}

.portal-modal-overlay {
  z-index: 10000;
  background: #00000080;
  justify-content: center;
  align-items: center;
  padding: 1rem;
  display: flex;
  position: fixed;
  inset: 0;
}

.portal-modal {
  background: var(--admin-card-bg, #fff);
  border-radius: var(--radius-lg, 12px);
  width: 100%;
  max-width: 440px;
  max-height: 90vh;
  overflow: auto;
  box-shadow: 0 20px 60px #0003;
}

.portal-modal-title {
  color: var(--admin-text, #1e293b);
  margin: 0;
  padding: 1.25rem 1.5rem .75rem;
  font-size: 1.125rem;
  font-weight: 600;
}

.portal-modal-body {
  padding: 1rem 1.5rem;
}

.portal-modal-body .portal-form-label {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  margin-bottom: .35rem;
  font-weight: 500;
  display: block;
}

.portal-modal-body .portal-form-select, .portal-modal-body .portal-form-input, .portal-modal-body textarea.portal-form-input {
  border: 1px solid var(--admin-border, #e2e8f0);
  width: 100%;
  font-size: var(--tc-text-md);
  border-radius: 6px;
  padding: .5rem .65rem;
}

.portal-modal-footer {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  justify-content: flex-end;
  gap: .75rem;
  padding: 1rem 1.5rem 1.25rem;
  display: flex;
}

.orden-modal-premium-overlay {
  z-index: 10000;
  align-items: flex-start;
  padding: 3rem 1.5rem;
  overflow-y: auto;
}

.orden-modal-premium {
  background: var(--admin-card-bg, #fff);
  border-radius: var(--radius-lg, 12px);
  width: 100%;
  max-width: 42rem;
  max-height: calc(100vh - 4rem);
  margin: auto;
  overflow: auto;
  box-shadow: 0 24px 80px #00000038;
}

.orden-modal-config-ip {
  max-width: 44rem;
}

.orden-modal-config-ip-wide {
  max-width: 56rem;
}

.orden-modal-config-ip-body {
  padding: 1.25rem 1.75rem 1.5rem;
}

.orden-modal-config-ip-grid {
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem 1.75rem;
  margin-bottom: 1rem;
  display: grid;
}

.orden-modal-config-ip-block {
  min-width: 0;
}

.orden-modal-config-ip-block .orden-modal-premium-section-title {
  margin-bottom: .5rem;
}

.orden-modal-config-ip-footer {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  justify-content: flex-end;
  gap: .5rem;
  margin-top: 1rem;
  padding-top: 1rem;
}

@media (max-width: 960px) {
  .orden-modal-config-ip-grid {
    grid-template-columns: 1fr;
  }
}

.orden-modal-smartolt {
  max-width: 46rem;
}

.orden-modal-premium-header {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-bg-subtle, #f8fafc);
  padding: 1.5rem 1.75rem 1rem;
  position: relative;
}

.orden-modal-premium-title {
  font-size: var(--tc-text-xl);
  color: var(--admin-text, #1e293b);
  letter-spacing: -.02em;
  margin: 0 2.5rem 0 0;
  font-weight: 700;
}

.orden-modal-premium-subtitle {
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
  margin: .35rem 0 0;
  line-height: 1.4;
}

.orden-modal-premium-close {
  width: 2rem;
  height: 2rem;
  color: var(--admin-text-muted, #64748b);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  padding: 0;
  font-size: 1.5rem;
  line-height: 1;
  display: flex;
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
}

.orden-modal-premium-close:hover {
  background: var(--admin-border, #e2e8f0);
  color: var(--admin-text, #1e293b);
}

.orden-modal-premium-body {
  padding: 1.5rem 1.75rem 1.75rem;
}

.orden-modal-premium-section {
  margin-bottom: 1.75rem;
}

.orden-modal-premium-section:last-of-type {
  margin-bottom: 0;
}

.orden-modal-premium-section-title {
  font-size: var(--tc-text-sm);
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 .75rem;
  font-weight: 600;
}

.orden-modal-premium-fields {
  flex-direction: column;
  gap: .9rem;
  display: flex;
}

.orden-modal-premium-fields .solicitud-wizard-field {
  margin-bottom: 0;
}

.orden-modal-premium-buttons {
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  margin-top: 1rem;
  padding: 0;
  display: flex;
}

.orden-modal-premium-actions .orden-modal-premium-buttons {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  margin-top: 1.25rem;
  padding-top: 1rem;
}

.orden-modal-premium-hint {
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 1rem;
  line-height: 1.45;
}

.orden-modal-input {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  width: 100%;
  color: var(--admin-text, #1e293b);
  border-radius: 8px;
  padding: .55rem .75rem;
  font-size: .9375rem;
}

.orden-modal-input:focus {
  border-color: var(--accent, #2563eb);
  outline: none;
  box-shadow: 0 0 0 3px #2563eb1f;
}

.orden-modal-input-with-gen {
  align-items: center;
  gap: .5rem;
  display: flex;
}

.orden-modal-input-with-gen .orden-modal-input {
  flex: 1;
  min-width: 0;
}

.orden-modal-select-contrast, .orden-modal-premium.orden-modal-smartolt .orden-modal-input {
  border-color: var(--admin-border-strong, #cbd5e1);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text, #1e293b);
  border-width: 1px;
}

.orden-modal-select-contrast:hover {
  border-color: var(--admin-text-muted, #64748b);
}

.orden-modal-select-contrast:focus, .orden-modal-premium.orden-modal-smartolt .orden-modal-input:focus {
  border-color: var(--accent, #2563eb);
  box-shadow: 0 0 0 3px #2563eb26;
}

.orden-field-readonly {
  color: var(--admin-text, #1e293b);
  background: none;
  border: none;
  padding: .5rem 0;
  font-size: .9375rem;
}

.orden-modal-wan-note {
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.orden-modal-onu-list-wrap {
  margin-top: .5rem;
  overflow-x: auto;
}

.orden-modal-onu-list {
  font-size: var(--tc-text-sm);
  border-collapse: collapse;
  width: 100%;
}

.orden-modal-onu-list th, .orden-modal-onu-list td {
  text-align: left;
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  padding: .4rem .6rem;
}

.orden-modal-onu-list th {
  color: var(--admin-text-muted, #64748b);
  white-space: nowrap;
  font-weight: 600;
}

.orden-modal-onu-list td code {
  font-size: var(--tc-text-xs);
  background: var(--admin-bg-subtle, #f1f5f9);
  border-radius: 4px;
  padding: .15rem .35rem;
}

.orden-modal-onu-list tr.selected {
  background: #2563eb14;
}

.orden-modal-onu-list tr:hover {
  background: var(--admin-bg-subtle, #f8fafc);
}

.orden-modal-onu-list tr {
  cursor: pointer;
}

.orden-modal-smartolt-block-a, .orden-modal-smartolt-block-b, .orden-modal-smartolt-block-c, .orden-modal-smartolt-block-d {
  margin-bottom: 1.25rem;
}

.orden-modal-smartolt-params-grid {
  grid-template-columns: repeat(4, 1fr);
  align-items: end;
  gap: .75rem 1.25rem;
  display: grid;
}

.orden-modal-smartolt-params-grid .solicitud-wizard-field {
  margin-bottom: 0;
}

.orden-modal-premium.orden-modal-smartolt {
  width: 100%;
  max-width: 80rem;
}

.orden-modal-alert {
  border-radius: 8px;
  margin-bottom: 1.25rem;
  padding: 1rem 1.25rem;
}

.orden-modal-alert-warning {
  color: #92400e;
  background: #fef3c7;
  border: 1px solid #f59e0b;
}

.orden-modal-alert-warning p {
  margin: 0 0 .75rem;
  font-size: .9375rem;
  font-weight: 600;
}

.orden-modal-alert-warning p:last-child {
  margin-bottom: 0;
}

.orden-modal-alert-warning .portal-primary-button {
  margin-top: .25rem;
}

.orden-modal-alert-wan {
  color: #9a3412;
  background: #fff7ed;
  border: 1px solid #ea580c;
  margin-bottom: 1rem;
}

.orden-modal-alert-wan p {
  margin: 0 0 .75rem;
  font-size: .9375rem;
  font-weight: 700;
}

.orden-modal-alert-wan .portal-primary-button {
  margin-top: .25rem;
}

.orden-btn-destructive {
  color: #fff !important;
  background: #dc2626 !important;
  border-color: #b91c1c !important;
}

.orden-btn-destructive:hover:not(:disabled) {
  background: #b91c1c !important;
  border-color: #991b1b !important;
}

.orden-modal-smartolt-view {
  flex-direction: column;
  gap: .75rem;
  display: flex;
}

.orden-modal-smartolt-view-row {
  gap: 1rem;
  display: grid;
}

.orden-modal-smartolt-view-row-2 {
  grid-template-columns: 1fr 1fr;
}

.orden-modal-smartolt-view-row-first {
  grid-template-columns: minmax(260px, .36fr) 1fr;
  align-items: start;
  gap: 1.25rem;
}

.orden-modal-smartolt-widgets-left {
  flex-direction: column;
  gap: .75rem;
  display: flex;
}

.orden-modal-smartolt-wan-right {
  min-width: 0;
  margin-bottom: 0;
}

.smartolt-widget-estado {
  border: 1px solid;
  border-radius: 10px;
  min-width: 0;
  padding: 1rem 1.25rem;
}

.smartolt-widget-estado-title {
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #31363f;
  margin-bottom: .5rem;
  font-size: .7rem;
  font-weight: 700;
}

.smartolt-widget-estado-content {
  align-items: center;
  gap: .5rem;
  display: flex;
}

.smartolt-widget-estado-icon {
  font-size: var(--tc-text-2xl);
  font-weight: 700;
  line-height: 1;
}

.smartolt-widget-estado-text {
  font-size: 1.15rem;
  font-weight: 700;
}

.smartolt-widget-estado-online {
  color: #047857;
  background: #ecfdf5;
  border-color: #a7f3d0;
}

.smartolt-widget-estado-online .smartolt-widget-estado-icon, .smartolt-widget-estado-online .smartolt-widget-estado-text {
  color: #047857;
}

.smartolt-widget-estado-offline {
  color: #475569;
  background: #f1f5f9;
  border-color: #cbd5e1;
}

.smartolt-widget-estado-offline .smartolt-widget-estado-icon, .smartolt-widget-estado-offline .smartolt-widget-estado-text {
  color: #475569;
}

.smartolt-widget-estado-power-off {
  color: #b91c1c;
  background: #fef2f2;
  border-color: #fecaca;
}

.smartolt-widget-estado-power-off .smartolt-widget-estado-icon, .smartolt-widget-estado-power-off .smartolt-widget-estado-text {
  color: #b91c1c;
}

.smartolt-widget-estado-warning {
  color: #c2410c;
  background: #fff7ed;
  border-color: #fed7aa;
}

.smartolt-widget-estado-warning .smartolt-widget-estado-icon, .smartolt-widget-estado-warning .smartolt-widget-estado-text {
  color: #c2410c;
}

.smartolt-widget-potencia {
  border: 1px solid;
  border-radius: 10px;
  min-width: 0;
  padding: 1rem 1.25rem;
}

.smartolt-widget-potencia-title {
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #31363f;
  margin-bottom: .5rem;
  font-size: .7rem;
  font-weight: 700;
}

.smartolt-widget-potencia-values {
  flex-direction: column;
  gap: .25rem;
  display: flex;
}

.smartolt-widget-potencia-line {
  font-size: .95rem;
  font-weight: 600;
}

.smartolt-widget-potencia-status {
  border-top: 1px solid #00000014;
  margin-top: .6rem;
  padding-top: .5rem;
  font-size: .85rem;
  font-weight: 700;
}

.smartolt-widget-potencia-very-good {
  color: #047857;
  background: #ecfdf5;
  border-color: #a7f3d0;
}

.smartolt-widget-potencia-very-good .smartolt-widget-potencia-line, .smartolt-widget-potencia-very-good .smartolt-widget-potencia-status {
  color: #047857;
}

.smartolt-widget-potencia-warning {
  color: #c2410c;
  background: #fff7ed;
  border-color: #fed7aa;
}

.smartolt-widget-potencia-warning .smartolt-widget-potencia-line, .smartolt-widget-potencia-warning .smartolt-widget-potencia-status {
  color: #c2410c;
}

.smartolt-widget-potencia-critical {
  color: #b91c1c;
  background: #fef2f2;
  border-color: #fecaca;
}

.smartolt-widget-potencia-critical .smartolt-widget-potencia-line, .smartolt-widget-potencia-critical .smartolt-widget-potencia-status {
  color: #b91c1c;
}

.smartolt-widget-potencia-neutral {
  color: #475569;
  background: #f8fafc;
  border-color: #e2e8f0;
}

.smartolt-widget-potencia-neutral .smartolt-widget-potencia-line {
  color: #334155;
}

.smartolt-widget-potencia-neutral .smartolt-widget-potencia-status {
  color: #64748b;
}

.orden-modal-smartolt-view-row-3 {
  grid-template-columns: 1fr 1fr;
}

.orden-modal-smartolt-view-row-single {
  grid-template-columns: 1fr !important;
}

.orden-modal-smartolt-view-row-2 .validacion-tecnica-block, .orden-modal-smartolt-view-row-3 .validacion-tecnica-block {
  margin-bottom: 0;
}

.validacion-tecnica-grid-identidad {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr) minmax(0, 2fr) minmax(0, .8fr) minmax(0, .8fr);
  gap: .75rem 1.25rem;
  display: grid;
}

.validacion-tecnica-item-narrow, .validacion-tecnica-item-wide {
  min-width: 0;
}

.validacion-tecnica-signal-layout {
  flex-direction: column;
  gap: .75rem;
  display: flex;
}

.validacion-tecnica-signal-estado {
  flex-direction: column;
  gap: .2rem;
  display: flex;
}

.validacion-tecnica-potencias {
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  display: flex;
}

.validacion-tecnica-potencias .validacion-tecnica-item {
  min-width: 6rem;
}

.validacion-tecnica-config-method-inline {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  margin-top: 1rem;
  padding-top: .75rem;
}

.validacion-tecnica-config-method-inline .validacion-tecnica-label {
  margin-bottom: .35rem;
  display: block;
}

.validacion-tecnica-config-method-read, .validacion-tecnica-config-method-edit {
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem .75rem;
  display: flex;
}

.validacion-tecnica-grid-wide {
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
}

.validacion-tecnica-wan-compare {
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  display: grid;
}

.orden-modal-smartolt-params-wan .validacion-tecnica-grid {
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
}

@media (max-width: 768px) {
  .orden-modal-smartolt-view-row-2, .orden-modal-smartolt-view-row-3, .orden-modal-smartolt-view-row-first, .validacion-tecnica-wan-compare {
    grid-template-columns: 1fr;
  }

  .validacion-tecnica-grid-identidad {
    grid-template-columns: 1fr 1fr;
  }
}

.orden-modal-table-wrap {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 8px;
  margin-bottom: 1rem;
  overflow: hidden;
}

.orden-modal-table-wrap .admin-table {
  margin: 0;
}

.orden-modal-table-wrap .admin-table th, .orden-modal-table-wrap .admin-table td {
  font-size: var(--tc-text-base);
  padding: .6rem .85rem;
}

.orden-modal-table-wrap tr.selected {
  background: var(--admin-bg-subtle, #f1f5f9);
}

@media (max-width: 1024px) {
  .aprovisionamiento-wizard-panel {
    grid-template-columns: 1fr;
  }

  .aprovisionamiento-wizard-context {
    border-left: none;
    border-top: 1px solid var(--admin-border, #e2e8f0);
    position: static;
  }
}

.solicitud-wizard-section {
  margin-bottom: 2rem;
}

.solicitud-wizard-section:last-child {
  margin-bottom: 0;
}

.solicitud-wizard-section-title {
  font-size: var(--tc-text-sm);
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 1rem;
  font-weight: 600;
}

.solicitud-wizard-section-body {
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem 1.5rem;
  display: grid;
}

.solicitud-wizard-section-body > * {
  min-width: 0;
}

.solicitud-wizard-section-body.one-col, .solicitud-wizard-section-body.full-width {
  grid-template-columns: 1fr;
}

.solicitud-wizard-field {
  flex-direction: column;
  gap: .35rem;
  display: flex;
}

.solicitud-wizard-field.span-full {
  grid-column: 1 / -1;
}

.solicitud-wizard-field-label {
  color: var(--admin-text, #1e293b);
  font-size: .9375rem;
  font-weight: 600;
}

.solicitud-wizard-field-required {
  color: #dc2626;
}

.solicitud-wizard-field-input input, .solicitud-wizard-field-input select, .solicitud-wizard-field-input textarea {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-input-bg, #fff);
  width: 100%;
  color: var(--admin-text, #1e293b);
  border-radius: 8px;
  padding: .65rem .9rem;
  font-size: .9375rem;
  transition: border-color .15s, box-shadow .15s;
}

.solicitud-wizard-field-input input:focus, .solicitud-wizard-field-input select:focus, .solicitud-wizard-field-input textarea:focus {
  border-color: var(--admin-primary, #2563eb);
  outline: none;
  box-shadow: 0 0 0 3px #2563eb1f;
}

.solicitud-wizard-field-input input.error, .solicitud-wizard-field-input select.error {
  border-color: #dc2626;
}

.solicitud-wizard-field-error {
  font-size: var(--tc-text-base);
  color: #dc2626;
  margin: 0;
}

.solicitud-wizard-plan-summary {
  grid-column: 1 / -1;
  margin-top: 1.25rem;
}

.solicitud-wizard-plan-summary .solicitud-wizard-section-title {
  margin-bottom: .5rem;
}

.solicitud-wizard-plan-summary-card {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  box-shadow: 0 1px 3px #0000000d;
}

.solicitud-wizard-plan-summary-name {
  color: var(--admin-text, #1e293b);
  margin-bottom: .25rem;
  font-size: 1.05rem;
  font-weight: 600;
}

.solicitud-wizard-plan-summary-code {
  font-size: var(--tc-text-md);
  color: var(--admin-text-muted, #64748b);
  margin-bottom: .75rem;
}

.solicitud-wizard-plan-summary-dl {
  grid-template-columns: auto 1fr;
  gap: .35rem 1.25rem;
  margin: 0;
  font-size: .9375rem;
  display: grid;
}

.solicitud-wizard-plan-summary-dl dt {
  color: var(--admin-text-muted, #64748b);
}

.solicitud-cliente-existente-nota {
  margin: 0 0 var(--tc-space-3);
}

.solicitud-cliente-existente-accion {
  margin-top: var(--tc-space-3);
}

.solicitud-wizard-plan-summary-dl dd {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 500;
}

.solicitud-wizard-upload-wrap {
  flex-direction: column;
  gap: .5rem;
  display: flex;
}

.solicitud-wizard-upload-label {
  color: var(--admin-text, #1e293b);
  font-size: .9375rem;
  font-weight: 600;
}

.solicitud-wizard-upload-zone {
  border: 2px dashed var(--admin-border, #e2e8f0);
  background: var(--admin-table-header, #f8fafc);
  cursor: pointer;
  border-radius: 12px;
  justify-content: center;
  align-items: center;
  min-height: 160px;
  transition: border-color .2s, background .2s;
  display: flex;
  position: relative;
}

.solicitud-wizard-upload-zone:hover, .solicitud-wizard-upload-zone.dragging {
  border-color: var(--admin-primary, #2563eb);
  background: #2563eb0a;
}

.solicitud-wizard-upload-input {
  opacity: 0;
  pointer-events: none;
  width: 0;
  height: 0;
  position: absolute;
}

.solicitud-wizard-upload-placeholder {
  color: var(--admin-text-muted, #64748b);
  text-align: center;
  padding: 1rem;
  font-size: .9375rem;
}

.solicitud-wizard-upload-zone.has-preview .solicitud-wizard-upload-placeholder {
  display: none;
}

.solicitud-wizard-upload-preview {
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  min-height: 160px;
  padding: .5rem;
  display: flex;
  position: relative;
}

.solicitud-wizard-upload-preview img {
  object-fit: contain;
  border-radius: 8px;
  max-width: 100%;
  max-height: 200px;
}

.solicitud-wizard-upload-remove {
  color: #fff;
  width: 28px;
  height: 28px;
  font-size: var(--tc-text-xl);
  cursor: pointer;
  background: #00000080;
  border: none;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  line-height: 1;
  transition: background .15s;
  display: flex;
  position: absolute;
  top: .5rem;
  right: .5rem;
}

.solicitud-wizard-upload-remove:hover {
  background: #dc2626;
}

.solicitud-wizard-upload-existing-chip {
  position: absolute;
  top: .5rem;
  right: .5rem;
}

.solicitud-wizard-card-found {
  background: #22c55e14;
  border: 1px solid #22c55e40;
  border-radius: 12px;
  margin-top: 1rem;
  padding: 1.25rem;
}

.solicitud-wizard-card-found-title {
  font-size: var(--tc-text-lg);
  color: #15803d;
  margin: 0 0 .75rem;
  font-weight: 600;
}

.solicitud-wizard-card-found-dl {
  font-size: var(--tc-text-md);
  grid-template-columns: auto 1fr;
  gap: .35rem 1.25rem;
  margin: 0;
  display: grid;
}

.solicitud-wizard-card-found-dl dt {
  color: var(--admin-text-muted, #64748b);
}

.solicitud-wizard-card-found-dl dd {
  color: var(--admin-text, #1e293b);
  margin: 0;
}

.solicitud-wizard-actions {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-top: 2rem;
  padding-top: 1.5rem;
  display: flex;
}

.solicitud-wizard-actions .portal-primary-button, .solicitud-wizard-actions .portal-secondary-button {
  min-height: 48px;
  font-size: var(--tc-text-lg);
  border-radius: 10px;
  padding: .75rem 1.5rem;
}

.solicitud-wizard-actions-left, .solicitud-wizard-actions-right {
  gap: .75rem;
  display: flex;
}

.solicitud-wizard-global-error {
  color: #b91c1c;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 10px;
  margin-bottom: 1rem;
  padding: 1rem;
  font-size: .9375rem;
}

@media (max-width: 640px) {
  .solicitud-wizard-section-body {
    grid-template-columns: 1fr;
  }

  .solicitud-wizard-body {
    padding: 1.25rem;
  }

  .solicitud-wizard-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .solicitud-wizard-actions-left, .solicitud-wizard-actions-right {
    justify-content: center;
  }
}

.cliente-detail-wrap {
  --cd-border: #e2e8f0;
  --cd-bg: #f8fafc;
  --cd-text: #1e293b;
  --cd-muted: #64748b;
  --cd-accent: #0ea5e9;
  --cd-radius: 10px;
}

.cliente-detail-header {
  border-bottom: 1px solid var(--cd-border);
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  display: flex;
}

.cliente-detail-back {
  width: 100%;
  font-size: var(--tc-text-md);
  color: var(--cd-muted);
  margin-bottom: .5rem;
  text-decoration: none;
  display: inline-block;
}

.cliente-detail-back:hover {
  color: var(--cd-accent);
}

.cliente-detail-header-main {
  flex: 1;
  min-width: 0;
}

.cliente-detail-name {
  font-size: var(--tc-text-2xl);
  color: var(--cd-text);
  margin: 0 0 .5rem;
  font-weight: 700;
}

.cliente-detail-meta {
  font-size: var(--tc-text-md);
  color: var(--cd-muted);
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem 1.25rem;
  display: flex;
}

.cliente-detail-meta-item {
  white-space: nowrap;
}

.cliente-detail-edit {
  flex-shrink: 0;
}

.cliente-detail-tabs {
  border-bottom: 1px solid var(--cd-border);
  flex-wrap: wrap;
  gap: .25rem;
  margin-bottom: 1rem;
  display: flex;
}

.cliente-detail-tab {
  font-size: var(--tc-text-md);
  color: var(--cd-muted);
  cursor: pointer;
  background: none;
  border: none;
  border-bottom: 2px solid #0000;
  margin-bottom: -1px;
  padding: .5rem 1rem;
  font-weight: 500;
  transition: color .15s, border-color .15s;
}

.cliente-detail-tab:hover {
  color: var(--cd-text);
}

.cliente-detail-tab.active {
  color: var(--cd-accent);
  border-bottom-color: var(--cd-accent);
}

.cliente-detail-panel {
  min-height: 200px;
}

.cliente-detail-card-wrap {
  flex-direction: column;
  gap: 1rem;
  display: flex;
}

.cliente-detail-card-wrap.two-cols {
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  display: grid;
}

@media (max-width: 1024px) {
  .cliente-detail-card-wrap.two-cols {
    grid-template-columns: 1fr;
  }
}

.cliente-detail-card {
  border: 1px solid var(--cd-border);
  border-radius: var(--cd-radius);
  background: #fff;
  padding: 1.25rem;
}

.cliente-detail-card-title {
  font-size: var(--tc-text-lg);
  color: var(--cd-text);
  margin: 0 0 .75rem;
  font-weight: 600;
}

.cliente-detail-dl {
  grid-template-columns: auto 1fr;
  gap: .4rem 1.5rem;
  margin: 0;
  display: grid;
}

.cliente-detail-dl dt {
  color: var(--cd-muted);
  font-size: .85rem;
}

.cliente-detail-dl dd {
  margin: 0;
}

.cliente-detail-list, .cliente-detail-address-list {
  margin: 0;
  padding-left: 1.25rem;
}

.cliente-detail-list li, .cliente-detail-address-list li {
  margin-bottom: .35rem;
}

.cliente-detail-empty {
  font-size: var(--tc-text-md);
  color: var(--cd-muted);
  margin: 0;
}

.cliente-detail-meta-text {
  color: var(--cd-muted);
  margin: 0 0 .75rem;
  font-size: .85rem;
}

.cliente-detail-table-wrap {
  margin-top: .5rem;
  overflow-x: auto;
}

.cliente-detail-table {
  border-collapse: collapse;
  width: 100%;
  font-size: var(--tc-text-base);
}

.cliente-detail-table th, .cliente-detail-table td {
  text-align: left;
  border-bottom: 1px solid #f1f5f9;
  padding: .5rem .75rem;
}

.cliente-detail-table th {
  color: var(--cd-text);
  background: var(--cd-bg);
  font-weight: 600;
}

.cliente-detail-link {
  color: var(--cd-accent);
  text-decoration: none;
}

.cliente-detail-link:hover {
  text-decoration: underline;
}

.cliente-detail-more {
  font-size: var(--tc-text-sm);
  color: var(--cd-muted);
  margin: .5rem 0 0;
}

@media print {
  body.etiqueta-print * {
    visibility: hidden;
  }

  body.etiqueta-print .etiqueta-print-area, body.etiqueta-print .etiqueta-print-area * {
    visibility: visible;
  }

  body.etiqueta-print .etiqueta-print-area {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
  }
}

.recibo-print-area {
  display: none;
}

@media print {
  body.recibo-print > :not(.recibo-print-area) {
    display: none !important;
  }

  body.recibo-print .recibo-print-area {
    position: absolute;
    top: 0;
    left: 0;
    display: block !important;
  }
}

.tc-recibo {
  width: 80mm;
  max-width: 80mm;
  padding: var(--tc-space-3);
  color: #000;
  background: #fff;
  margin: 0 auto;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px;
  line-height: 1.45;
}

.tc-recibo-center {
  text-align: center;
}

.tc-recibo-empresa-nombre {
  text-transform: uppercase;
  font-size: 13px;
  font-weight: 700;
}

.tc-recibo-empresa-meta {
  font-size: 10px;
}

.tc-recibo-sep {
  margin: var(--tc-space-2) 0;
  border-top: 1px dashed #000;
}

.tc-recibo-titulo {
  letter-spacing: .05em;
  margin: 2px 0;
  font-size: 12px;
  font-weight: 700;
}

.tc-recibo-section {
  margin-top: var(--tc-space-2);
}

.tc-recibo-facturas-titulo {
  margin-bottom: 2px;
  font-weight: 700;
}

.tc-recibo-row {
  justify-content: space-between;
  gap: var(--tc-space-2);
  display: flex;
}

.tc-recibo-row + .tc-recibo-row {
  margin-top: 2px;
}

.tc-recibo-label {
  color: #000;
}

.tc-recibo-value {
  text-align: right;
  font-weight: 600;
}

.tc-recibo-total-row {
  justify-content: space-between;
  margin-top: 2px;
  font-size: 12px;
  font-weight: 700;
  display: flex;
}

.tc-recibo-footer {
  margin-top: var(--tc-space-3);
  text-align: center;
  font-size: 10px;
}

:root {
  --tc-text-xs: .75rem;
  --tc-text-sm: .8125rem;
  --tc-text-base: .875rem;
  --tc-text-md: .9rem;
  --tc-text-lg: 1rem;
  --tc-text-xl: 1.25rem;
  --tc-text-2xl: 1.35rem;
  --tc-text-3xl: 1.875rem;
  --tc-space-1: .25rem;
  --tc-space-2: .5rem;
  --tc-space-3: .75rem;
  --tc-space-4: 1rem;
  --tc-space-5: 1.25rem;
  --tc-space-6: 1.5rem;
  --tc-radius-sm: 6px;
  --tc-radius: 8px;
  --tc-radius-lg: 12px;
  --tc-radius-xl: 14px;
  --tc-transicion: .15s;
  --tc-curva: cubic-bezier(0, 0, .2, 1);
  --tc-hover-escala-ico: 1.12;
  --tc-hover-lift: -2px;
  --tc-press-escala: .96;
  --tc-fila-zebra: #f8fafc;
  --tc-fila-hover: #e2e8f0;
  --tc-focus-ring: 0 0 0 2px #2563eb26;
  --tc-success: #16a34a;
  --tc-success-bg: #dcfce7;
  --tc-success-text: #166534;
  --tc-warning: #eab308;
  --tc-warning-bg: #fef9c3;
  --tc-warning-text: #854d0e;
  --tc-danger: #ef4444;
  --tc-danger-bg: #fee2e2;
  --tc-danger-text: #991b1b;
  --tc-info: #3b82f6;
  --tc-info-bg: #dbeafe;
  --tc-info-text: #1e40af;
  --tc-neutral-bg: #f1f5f9;
  --tc-neutral-text: #475569;
  --tc-primary: #2563eb;
  --tc-primary-bg: #eef2ff;
  --tc-primary-text: #4338ca;
}

.tc-page-header {
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--tc-space-4);
  margin-bottom: var(--tc-space-1);
  display: flex;
}

.tc-page-header-left {
  flex: 1;
  min-width: 0;
}

.tc-page-title {
  font-size: var(--tc-text-3xl);
  letter-spacing: -.02em;
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 600;
  line-height: 1.3;
}

.tc-page-subtitle {
  margin: var(--tc-space-1) 0 0;
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
}

.tc-page-actions {
  align-items: center;
  gap: var(--tc-space-2);
  flex-shrink: 0;
  display: flex;
}

@media (max-width: 640px) {
  .tc-page-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .tc-page-actions {
    justify-content: stretch;
    width: 100%;
  }

  .tc-page-actions > * {
    flex: 1;
  }

  .tc-page-title {
    font-size: 1.5rem;
  }

  .tc-page-subtitle {
    font-size: var(--tc-text-sm);
  }
}

.tc-filter-bar {
  gap: var(--tc-space-3);
  margin-bottom: var(--tc-space-4);
  flex-wrap: wrap;
  align-items: center;
  display: flex;
}

.tc-filter-input {
  padding: var(--tc-space-2) var(--tc-space-3);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-md);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text, #1e293b);
  line-height: 1.5;
}

.tc-filter-input:focus {
  border-color: var(--admin-primary, #2563eb);
  box-shadow: var(--tc-focus-ring);
  outline: none;
}

.tc-filter-input::placeholder {
  color: var(--admin-text-muted, #94a3b8);
}

.tc-filter-search {
  flex: 1;
  min-width: 12rem;
}

.tc-filter-select {
  cursor: pointer;
  width: auto;
  min-width: 9rem;
}

.tc-filter-bar-acciones {
  gap: var(--tc-space-2);
  justify-content: flex-end;
  margin-left: auto;
  display: flex;
}

.tc-filter-bar-acciones .tc-btn {
  min-height: 40px;
}

.tc-filter-select--sm {
  min-width: 7rem;
}

.tc-filter-select--xs {
  min-width: 4.5rem;
}

.tc-time-separator {
  color: var(--admin-text, #1e293b);
  font-size: 1.1rem;
  font-weight: 800;
}

.tc-listado-toolbar .tc-filter-select .tc-dropdown-trigger {
  min-height: 36px;
  padding: 7px 12px;
  font-size: .84rem;
}

.tc-form-field {
  margin-bottom: var(--tc-space-4);
}

.tc-form-label {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  margin-bottom: .35rem;
  font-weight: 500;
  display: block;
}

.tc-form-required {
  color: #ef4444;
  margin-left: .15rem;
}

.tc-form-hint {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin-top: .3rem;
  display: block;
}

.tc-form-hint--success {
  color: var(--tc-success-text);
}

.tc-form-hint--warning {
  color: var(--tc-warning-text);
}

.tc-form-error-msg {
  font-size: var(--tc-text-sm);
  color: var(--tc-danger-text, #991b1b);
  margin-top: .3rem;
  display: block;
}

.tc-form-input {
  width: 100%;
  padding: var(--tc-space-2) var(--tc-space-3);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-md);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text, #1e293b);
  box-sizing: border-box;
  line-height: 1.5;
}

textarea.tc-form-input {
  resize: vertical;
}

.tc-form-input:focus {
  border-color: var(--admin-primary, #2563eb);
  box-shadow: var(--tc-focus-ring);
  outline: none;
}

.tc-form-input::placeholder {
  color: var(--admin-text-muted, #94a3b8);
}

.tc-form-input:disabled {
  opacity: .6;
  cursor: not-allowed;
}

.tc-form-field--error .tc-form-input {
  border-color: #ef4444;
}

.tc-form-field--error .tc-form-input:focus {
  box-shadow: 0 0 0 2px #ef444426;
}

.tc-form-grid {
  gap: 0 var(--tc-space-5);
  grid-template-columns: 1fr 1fr;
  display: grid;
}

.tc-form-grid--3 {
  grid-template-columns: 1fr 1fr 1fr;
}

.tc-form-grid .tc-form-field--full {
  grid-column: 1 / -1;
}

@media (max-width: 640px) {
  .tc-form-grid, .tc-form-grid--3 {
    grid-template-columns: 1fr;
  }
}

.tc-imagen-preview-wrap {
  margin-top: var(--tc-space-2);
}

.tc-imagen-preview {
  object-fit: contain;
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  max-width: 100%;
  max-height: 140px;
}

.tc-imagen-preview-actions {
  margin-top: var(--tc-space-2);
}

.tc-input-affix {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  background: var(--admin-card-bg, #fff);
  align-items: stretch;
  transition: border-color .15s, box-shadow .15s;
  display: flex;
  overflow: hidden;
}

.tc-input-affix:focus-within {
  border-color: var(--admin-primary, #2563eb);
  box-shadow: var(--tc-focus-ring);
}

.tc-input-affix .tc-form-input {
  border: none;
  border-radius: 0;
  flex: 1;
  min-width: 0;
  box-shadow: none !important;
}

.tc-input-affix .tc-form-input:focus {
  box-shadow: none;
}

.tc-input-affix-prefix, .tc-input-affix-suffix {
  padding: 0 var(--tc-space-3);
  font-size: var(--tc-text-md);
  color: var(--admin-text-muted, #64748b);
  background: var(--tc-affix-bg, #f8fafc);
  white-space: nowrap;
  align-items: center;
  display: flex;
}

.admin-shell[data-theme="dark"] .tc-input-affix {
  --tc-affix-bg: #ffffff0d;
}

.tc-input-affix-prefix {
  border-right: 1px solid var(--admin-border, #e2e8f0);
}

.tc-input-affix-suffix {
  border-left: 1px solid var(--admin-border, #e2e8f0);
}

.tc-input-affix.is-disabled {
  opacity: .6;
}

.tc-input-affix--lg {
  border-width: 2px;
}

.tc-input-affix--lg .tc-input-affix-prefix {
  font-size: var(--tc-text-2xl);
  padding: 0 0 0 var(--tc-space-4);
  color: var(--admin-text, #1e293b);
  font-weight: 700;
}

.tc-input-affix--lg .tc-form-input {
  font-size: var(--tc-text-2xl);
  padding: var(--tc-space-3) var(--tc-space-4);
  font-weight: 700;
}

.tc-choice-card-group {
  gap: var(--tc-space-3);
  display: flex;
}

@media (max-width: 640px) {
  .tc-choice-card-group {
    flex-wrap: wrap;
  }

  .tc-choice-card-group > .tc-choice-card {
    flex: 96px;
  }
}

.tc-choice-card {
  border: 2px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  cursor: pointer;
  border-radius: 12px;
  flex-direction: column;
  flex: 1;
  align-items: center;
  gap: 4px;
  padding: .9rem .75rem;
  transition: border-color .15s, background .15s;
  display: flex;
}

.tc-choice-card.is-selected {
  border-color: var(--admin-primary, #2563eb);
  background: #2563eb0d;
}

.tc-choice-card-icon {
  color: var(--admin-text-muted, #94a3b8);
  justify-content: center;
  align-items: center;
  display: flex;
}

.tc-choice-card.is-selected .tc-choice-card-icon {
  color: var(--admin-primary, #2563eb);
}

.tc-choice-card-label {
  font-weight: 700;
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
}

.tc-choice-card.is-selected .tc-choice-card-label {
  color: var(--admin-primary, #2563eb);
}

.tc-choice-card-desc {
  color: var(--admin-text-muted, #94a3b8);
  font-size: .72rem;
}

.tc-table-wrap {
  -webkit-overflow-scrolling: touch;
  width: 100%;
  overflow-x: auto;
}

.tc-table {
  border-collapse: collapse;
  width: 100%;
  font-size: var(--tc-text-md);
}

.tc-table th, .tc-table td {
  padding: var(--tc-space-3) var(--tc-space-4);
  text-align: left;
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
}

.tc-table thead th {
  background: var(--admin-table-header, #f8fafc);
  color: var(--admin-text, #1e293b);
  font-weight: 600;
  font-size: var(--tc-text-base);
  white-space: nowrap;
}

.tc-table tbody tr:hover {
  background: var(--tc-fila-hover);
}

.tc-table tbody tr.tc-table-row--clickable {
  cursor: pointer;
}

.tc-num {
  font-variant-numeric: tabular-nums;
  background: color-mix(in srgb, currentColor 9%, transparent);
  cursor: pointer;
  min-width: 1.9rem;
  transition: transform var(--tc-transicion) var(--tc-curva),
              background var(--tc-transicion) var(--tc-curva),
              border-color var(--tc-transicion) var(--tc-curva);
  border: 1px solid #0000;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  padding: 2px 8px;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
}

.tc-num--ok {
  color: var(--tc-success);
}

.tc-num--alerta {
  color: var(--tc-warning, #d97706);
}

.tc-num--critico {
  color: var(--tc-danger);
}

.tc-num--neutro {
  color: var(--admin-text);
}

.tc-num--ok:hover {
  color: var(--tc-success);
}

.tc-num--alerta:hover {
  color: var(--tc-warning, #d97706);
}

.tc-num--critico:hover {
  color: var(--tc-danger);
}

.tc-num--neutro:hover {
  color: var(--admin-text);
}

@media (hover: hover) and (pointer: fine) {
  .tc-num:hover {
    transform: scale(var(--tc-hover-escala-ico));
    background: color-mix(in srgb, currentColor 20%, transparent);
    border-color: color-mix(in srgb, currentColor 40%, transparent);
  }
}

.tc-num:active {
  transform: scale(.95);
}

.tc-num-celda {
  flex-direction: column;
  align-items: center;
  gap: .1rem;
  display: inline-flex;
}

.tc-num-causas {
  align-items: center;
  gap: .3rem;
  display: flex;
}

.tc-num-causa {
  font-variant-numeric: tabular-nums;
  background: color-mix(in srgb, currentColor 10%, transparent);
  transition: transform var(--tc-transicion) var(--tc-curva),
              background var(--tc-transicion) var(--tc-curva);
  border-radius: 999px;
  align-items: center;
  gap: 3px;
  padding: 1px 5px;
  font-size: .7rem;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
}

.tc-num-causa-punto {
  background: currentColor;
  border-radius: 50%;
  flex-shrink: 0;
  width: 5px;
  height: 5px;
}

.tc-num-causa--pwrloss, .tc-num-causa--pwrloss:hover {
  color: var(--tc-warning, #d97706);
}

.tc-num-causa--los, .tc-num-causa--los:hover {
  color: var(--tc-danger);
}

.tc-num-causa--otro, .tc-num-causa--otro:hover {
  color: var(--admin-text-muted);
}

.tc-conteo-onu {
  color: var(--tc-ftth-sit-solido);
  font-weight: 700;
}

.tc-conteo-onu.tc-estado-onu--neutro {
  color: var(--tc-ftth-sit-texto);
}

.tc-num-causa--onu, .tc-num-causa--onu:hover {
  color: var(--tc-ftth-sit-solido);
}

.tc-num-causa--onu.tc-estado-onu--neutro, .tc-num-causa--onu.tc-estado-onu--neutro:hover {
  color: var(--tc-ftth-sit-texto);
}

@media (hover: hover) and (pointer: fine) {
  .tc-num-causa:hover {
    transform: scale(var(--tc-hover-escala-ico));
    background: color-mix(in srgb, currentColor 22%, transparent);
  }
}

.tc-tabs-conteo {
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius);
  flex-wrap: wrap;
  width: fit-content;
  margin-bottom: 1rem;
  display: flex;
  overflow: hidden;
}

.tc-tabs-conteo-item {
  border: none;
  border-right: 1px solid var(--admin-border);
  background: var(--admin-card-bg);
  color: var(--admin-text-muted);
  font-size: var(--tc-text-sm);
  cursor: pointer;
  transition: background var(--tc-transicion) var(--tc-curva),
              color var(--tc-transicion) var(--tc-curva);
  white-space: nowrap;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  font-weight: 600;
  display: flex;
}

.tc-tabs-conteo-item:last-child {
  border-right: none;
}

@media (hover: hover) and (pointer: fine) {
  .tc-tabs-conteo-item:not(.tc-tabs-conteo-item--activo):hover {
    background: var(--admin-bg);
    color: var(--admin-text);
  }
}

.tc-tabs-conteo-item--activo {
  background: var(--admin-primary);
  color: #fff;
}

.tc-tabs-conteo-badge {
  background: var(--admin-bg);
  color: var(--admin-text-muted);
  font-variant-numeric: tabular-nums;
  border-radius: 10px;
  padding: 1px 6px;
  font-size: .6875rem;
  font-weight: 700;
}

.tc-tabs-conteo-item--activo .tc-tabs-conteo-badge {
  color: #fff;
  background: #fff3;
}

.tc-table tbody tr.tc-table-row--seleccionada {
  background: var(--tc-info-bg);
}

.tc-pon-olt-seccion {
  margin-bottom: var(--tc-space-5, 1.5rem);
}

.tc-pon-olt-head {
  align-items: center;
  gap: .75rem;
  margin-bottom: .5rem;
  padding: .5rem 0;
  display: flex;
}

.tc-pon-olt-nombre {
  font-weight: 700;
  font-size: var(--tc-text-lg);
  color: var(--admin-primary);
  text-decoration: none;
}

.tc-pon-olt-nombre:hover {
  color: var(--admin-primary);
  text-decoration: underline;
}

.tc-pon-slot-head {
  background: var(--admin-bg);
  border-bottom: 1px solid var(--admin-border);
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  padding: .65rem .875rem;
  display: flex;
}

.tc-pon-slot-ident {
  align-items: center;
  gap: .5rem;
  display: flex;
}

.tc-pon-slot-titulo {
  font-weight: 700;
  font-size: var(--tc-text-sm);
  color: var(--admin-text);
}

.tc-pon-slot-conteos {
  align-items: center;
  gap: .6rem;
  display: flex;
}

.tc-pon-slot-offline {
  font-size: var(--tc-text-xs);
  align-items: center;
  gap: .35rem;
  display: inline-flex;
}

.tc-pon-slot-offline-total {
  color: var(--admin-text-muted);
  font-weight: 600;
}

.tc-pon-slot-sep {
  color: var(--admin-text-muted);
  font-size: .68rem;
}

.tc-pon-head {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1rem;
  display: flex;
}

.tc-pon-head-titulo {
  font-size: var(--tc-text-lg);
  color: var(--admin-text);
  margin: 0;
  font-weight: 700;
}

.tc-pon-head-acciones {
  align-items: center;
  gap: .75rem;
  display: flex;
}

.tc-pon-head-meta {
  margin-left: .75rem;
}

.tc-pon-mensaje {
  text-align: center;
  color: var(--admin-text-muted);
  padding: 2.5rem;
}

.tc-btn-ico-izq {
  margin-right: .3rem;
}

.tc-pon-slot-card {
  margin-bottom: .75rem;
  padding: 0;
  overflow: hidden;
}

.tc-pon-slot-card--suelta {
  margin-bottom: 1rem;
}

.tc-stat-enlace {
  color: inherit;
  transition: transform var(--tc-transicion) var(--tc-curva);
  text-decoration: none;
  display: inline-block;
}

.tc-stat-enlace:hover {
  color: inherit;
}

@media (hover: hover) and (pointer: fine) {
  .tc-stat-enlace:hover {
    transform: scale(1.06);
  }
}

.tc-sig-punto {
  font-family: var(--tc-font-mono, ui-monospace, monospace);
  font-size: var(--tc-text-sm);
  font-variant-numeric: tabular-nums;
  cursor: help;
  transition: transform var(--tc-transicion) var(--tc-curva);
  align-items: center;
  gap: .45rem;
  font-weight: 600;
  display: inline-flex;
}

.tc-sig-punto-marca {
  width: 8px;
  height: 8px;
  box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 18%, transparent);
  transition: box-shadow var(--tc-transicion) var(--tc-curva);
  background: currentColor;
  border-radius: 50%;
  flex-shrink: 0;
}

.tc-sig-punto-unidad {
  opacity: .75;
  font-size: .7rem;
  font-weight: 500;
}

.tc-sig-punto--good {
  color: var(--tc-success);
}

.tc-sig-punto--warn {
  color: var(--tc-warning, #d97706);
}

.tc-sig-punto--bad {
  color: var(--tc-danger);
}

.tc-sig-punto--na {
  color: var(--admin-text-muted);
}

@media (hover: hover) and (pointer: fine) {
  .tc-sig-punto:hover {
    transform: scale(1.04);
  }

  .tc-sig-punto:hover .tc-sig-punto-marca {
    box-shadow: 0 0 0 5px color-mix(in srgb, currentColor 30%, transparent);
  }
}

.tc-table tbody tr.tc-table-row--destacada {
  background: var(--tc-warning-bg);
  transition: background .5s;
}

.tc-table .tc-table-cell--muted {
  color: var(--admin-text-muted, #64748b);
}

.tc-table .tc-table-cell--strong {
  color: var(--admin-text, #1e293b);
  font-weight: 500;
}

.tc-table .tc-table-cell--actions {
  text-align: right;
  white-space: nowrap;
}

.tc-table .tc-table-cell--number {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.tc-table .tc-table-cell--value {
  min-width: 220px;
}

.tc-table .tc-table-cell--link a, a.tc-table-cell--link {
  color: var(--admin-primary, #2563eb);
  font-family: monospace;
  font-weight: 600;
  text-decoration: none;
}

.tc-table .tc-table-cell--link a:hover, a.tc-table-cell--link:hover {
  text-decoration: underline;
}

.tc-table .tc-table-cell--link-plain a, a.tc-table-cell--link-plain {
  color: var(--admin-primary, #2563eb);
  font-weight: 600;
  text-decoration: none;
  display: block;
}

.tc-table .tc-table-cell--link-plain a:hover, a.tc-table-cell--link-plain:hover {
  text-decoration: underline;
}

.tc-text-mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.tc-row-actions-wrap {
  align-items: center;
  gap: 4px;
  display: inline-flex;
  position: relative;
}

.tc-row-actions-menu {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  z-index: 50;
  min-width: 168px;
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  overflow: hidden;
  box-shadow: 0 4px 16px #0000001a;
}

.tc-row-actions-item {
  cursor: pointer;
  text-align: left;
  width: 100%;
  font-size: var(--tc-text-base, .875rem);
  color: var(--admin-text, #1e293b);
  background: none;
  border: none;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  font-weight: 500;
  text-decoration: none;
  display: flex;
}

.tc-row-actions-item:hover {
  background: var(--admin-table-hover, #f1f5f9);
}

.tc-row-actions-item--danger {
  color: var(--tc-danger, #ef4444);
}

.tc-row-actions-item--danger:hover {
  background: var(--tc-danger-bg, #fee2e2);
}

.tc-row-actions-item--disabled {
  opacity: .45;
  cursor: not-allowed;
  pointer-events: none;
}

.tc-row-actions-divider {
  background: var(--admin-border, #e2e8f0);
  height: 1px;
  margin: 2px 0;
}

.tc-actions-inline {
  align-items: center;
  gap: var(--tc-space-2);
  justify-content: flex-end;
  display: inline-flex;
}

.admin-shell[data-theme="dark"] .admin-content .tc-row-actions-menu {
  background: var(--admin-card-bg, #1e293b);
  border-color: var(--admin-border, #ffffff1a);
  box-shadow: 0 4px 16px #00000059;
}

.admin-shell[data-theme="dark"] .admin-content .tc-row-actions-item:hover {
  background: var(--admin-table-hover, #ffffff0d);
}

.admin-shell[data-theme="dark"] .admin-content .tc-row-actions-item--danger:hover {
  background: #ef444426;
}

.tc-table-empty, .tc-table-loading {
  padding: var(--tc-space-6);
  text-align: center;
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-md);
}

.tc-form-grid--5 {
  grid-template-columns: repeat(5, 1fr);
}

@media (max-width: 1024px) {
  .tc-form-grid--5 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .tc-form-grid--5 {
    grid-template-columns: 1fr;
  }
}

.tc-form-input--sm {
  font-size: var(--tc-text-sm);
  padding: 4px 8px;
}

.tc-dropdown--sm .tc-dropdown-trigger {
  font-size: var(--tc-text-sm);
  min-height: unset;
  padding: 4px 8px;
}

.tc-toolbar-quickfilters {
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  flex: 0 auto;
  min-width: 0;
  display: flex;
}

.tc-toolbar-quickfilters > .tc-dropdown {
  flex: 0 200px;
  width: 200px;
  min-width: 160px;
}

.tc-listado-toolbar .tc-toolbar-quickfilters .tc-dropdown-trigger {
  min-height: 36px;
  padding: 7px 12px;
  font-size: .84rem;
}

.tc-toolbar-quickfilters > .tc-text-muted {
  margin: 0;
}

.tc-listado-toolbar .tc-toolbar-quickfilters > .tc-btn {
  min-height: 36px;
}

@media (max-width: 640px) {
  .tc-toolbar-quickfilters, .tc-toolbar-quickfilters > .tc-dropdown {
    flex: 100%;
  }
}

.tc-btn-mini {
  border-radius: var(--tc-radius-sm);
  border: 1px solid var(--admin-primary, #2563eb);
  width: 22px;
  height: 22px;
  color: var(--admin-primary, #2563eb);
  cursor: pointer;
  background: none;
  justify-content: center;
  align-items: center;
  transition: background .15s;
  display: inline-flex;
}

.tc-btn-mini:hover:not(:disabled) {
  background: var(--tc-primary-bg);
}

.tc-btn-mini:disabled {
  cursor: default;
}

.tc-btn-mini--success {
  border-color: var(--tc-success-border, #86efac);
  background: var(--tc-success-bg);
  color: var(--tc-success-text);
}

.tc-chip-btn {
  border-radius: var(--tc-radius-sm);
  font-size: var(--tc-text-xs);
  cursor: pointer;
  border: 1px solid var(--admin-border, #e2e8f0);
  color: var(--admin-text, #1e293b);
  background: none;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  font-weight: 600;
  display: inline-flex;
}

.tc-chip-btn:disabled {
  cursor: not-allowed;
  opacity: .6;
}

.tc-chip-btn--active {
  border-color: var(--admin-primary, #2563eb);
  background: var(--tc-primary-bg);
  color: var(--admin-primary, #2563eb);
}

.tc-pagination {
  padding: var(--tc-space-3) 0;
  margin-top: var(--tc-space-2);
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-pagination-info {
  align-items: center;
  gap: var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-pagination-text {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.tc-pagination-text strong {
  color: var(--admin-text, #1e293b);
}

.tc-pagination-select {
  font-size: var(--tc-text-sm);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text, #1e293b);
  cursor: pointer;
  padding: .35rem .5rem;
}

.admin-modal-card.tc-modal-sm {
  max-width: 28rem;
}

.admin-modal-card.tc-modal-md {
  max-width: 40rem;
}

.admin-modal-card.tc-modal-lg {
  max-width: 56rem;
}

.admin-modal-card.tc-modal-xl {
  max-width: 72rem;
}

.admin-modal-card.tc-modal-full {
  max-width: calc(100vw - 3rem);
}

.admin-modal-footer {
  justify-content: flex-end;
  gap: var(--tc-space-2);
  display: flex;
}

.tc-modal-context {
  padding: var(--tc-space-3) var(--tc-space-4);
  border-radius: var(--tc-radius);
  margin-bottom: var(--tc-space-4);
  border-left: 3px solid var(--admin-border, #e2e8f0);
  background: var(--admin-bg);
}

.tc-modal-context--success {
  background: var(--tc-success-bg);
  border-left-color: var(--tc-success);
}

.tc-modal-context--neutral {
  background: var(--admin-bg);
  border-left-color: var(--admin-text-muted, #94a3b8);
}

.tc-modal-context-title {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 600;
}

.tc-modal-context-sub {
  margin: var(--tc-space-1) 0 0;
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.tc-alert {
  padding: var(--tc-space-2) var(--tc-space-3);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-sm);
  margin-top: var(--tc-space-3);
  align-items: flex-start;
  gap: var(--tc-space-3);
  font-weight: 500;
  display: flex;
}

.tc-alert:not(:has(.tc-alert-icon)):not(:has(.tc-alert-body)) {
  display: block;
}

.tc-alert-icon {
  flex-shrink: 0;
  align-items: center;
  padding-top: 1px;
  display: inline-flex;
}

.tc-alert-body {
  flex: 1;
  min-width: 0;
}

.tc-alert-title {
  font-weight: 700;
  font-size: var(--tc-text-base);
  margin-bottom: 2px;
}

.tc-alert-text {
  font-size: var(--tc-text-sm);
  font-weight: 500;
  line-height: 1.4;
}

.tc-alert--danger {
  background: var(--tc-danger-bg);
  color: var(--tc-danger-text);
  border: 1px solid #ef444440;
}

.tc-alert--danger .tc-alert-icon {
  color: var(--tc-danger);
}

.tc-alert--neutral {
  background: var(--tc-estado-neutral-bg, #f8fafc);
  color: var(--tc-estado-neutral-texto, #475569);
  border: 1px solid var(--tc-estado-neutral-borde, #e2e8f0);
}

.tc-alert--neutral .tc-alert-icon {
  color: var(--tc-estado-neutral-icono, #94a3b8);
}

.tc-alert--success, .tc-alert--ok {
  background: var(--tc-success-bg);
  color: var(--tc-success-text);
  border: 1px solid #16a34a40;
}

.tc-alert--success .tc-alert-icon, .tc-alert--ok .tc-alert-icon {
  color: var(--tc-success);
}

.tc-alert--warning {
  background: var(--tc-warning-bg);
  color: var(--tc-warning-text);
  border: 1px solid #eab30859;
}

.tc-alert--warning .tc-alert-icon {
  color: var(--tc-warning);
}

.tc-alert--info {
  background: var(--tc-info-bg);
  color: var(--tc-info-text);
  border: 1px solid #3b82f640;
}

.tc-alert--info .tc-alert-icon {
  color: var(--tc-info);
}

.admin-shell[data-theme="dark"] .admin-content .tc-alert--danger, .admin-shell[data-theme="dark"] .admin-content .tc-alert--success, .admin-shell[data-theme="dark"] .admin-content .tc-alert--ok, .admin-shell[data-theme="dark"] .admin-content .tc-alert--warning, .admin-shell[data-theme="dark"] .admin-content .tc-alert--info {
  border-width: 1px;
}

.admin-shell[data-theme="dark"] .admin-content .tc-alert--danger {
  color: #fca5a5;
  background: #ef44441f;
  border-color: #ef444459;
}

.admin-shell[data-theme="dark"] .admin-content .tc-alert--success, .admin-shell[data-theme="dark"] .admin-content .tc-alert--ok {
  color: #4ade80;
  background: #22c55e1f;
  border-color: #22c55e59;
}

.admin-shell[data-theme="dark"] .admin-content .tc-alert--warning {
  color: #facc15;
  background: #eab3081f;
  border-color: #eab30866;
}

.admin-shell[data-theme="dark"] .admin-content .tc-alert--info {
  color: #93c5fd;
  background: #3b82f61f;
  border-color: #3b82f659;
}

.tc-alert-actions-row {
  align-items: center;
  gap: var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-alert-actions-row > span:first-child {
  flex: 1;
  min-width: 0;
}

.tc-alert-actions {
  gap: var(--tc-space-2);
  flex-shrink: 0;
  display: inline-flex;
}

.tc-banner-no-conexion {
  margin-bottom: var(--tc-space-4);
}

.tc-modal-field-group {
  margin-top: var(--tc-space-4);
  margin-bottom: var(--tc-space-4);
}

.tc-modal-field-group .vpn-config-toggle-wrap > div:first-child {
  flex: 1;
  min-width: 0;
}

.tc-modal-field-group .vpn-config-toggle-wrap + .vpn-config-toggle-wrap {
  border-top: 1px solid var(--admin-border, #e2e8f0);
}

.tc-modal-field-label {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  margin: 0 0 var(--tc-space-2);
  font-weight: 600;
}

.tc-modal-range-hint {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin: var(--tc-space-1) 0 0;
}

.tc-modal-range-hint--error {
  color: var(--tc-danger, #dc2626);
}

.tc-form-input--mono {
  font-family: monospace;
}

.tc-uplink-modo-selector {
  gap: var(--tc-space-2);
  display: flex;
}

.tc-uplink-modo-btn {
  padding: var(--tc-space-2) var(--tc-space-3);
  border-radius: var(--tc-radius);
  border: 2px solid var(--admin-border, #e2e8f0);
  color: var(--admin-text, #1e293b);
  font-size: var(--tc-text-sm);
  text-transform: capitalize;
  cursor: pointer;
  background: none;
  flex: 1;
  font-weight: 600;
  transition: border-color .15s, background .15s, color .15s;
}

.tc-uplink-modo-btn--active {
  border-color: var(--admin-primary, #2563eb);
  color: var(--admin-primary, #2563eb);
  background: #2563eb0d;
}

.tc-uplink-vlan-row {
  gap: var(--tc-space-2);
  margin-bottom: var(--tc-space-2);
  align-items: center;
  display: flex;
}

.tc-uplink-vlan-select {
  flex: 1;
}

.tc-uplink-vlan-list {
  gap: var(--tc-space-1);
  margin-top: var(--tc-space-1);
  flex-wrap: wrap;
  display: flex;
}

.tc-uplink-vlan-chip {
  align-items: center;
  gap: var(--tc-space-1);
  padding: .2rem var(--tc-space-2);
  border-radius: var(--tc-radius-sm);
  font-size: var(--tc-text-xs);
  background: var(--tc-info-bg, #dbeafe);
  color: var(--tc-info-dark, #1e40af);
  font-weight: 600;
  display: inline-flex;
}

.tc-uplink-vlan-remove {
  cursor: pointer;
  color: var(--tc-danger, #dc2626);
  font-size: var(--tc-text-base);
  background: none;
  border: none;
  align-items: center;
  padding: 0;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
}

.tc-uplink-vlan-table {
  margin-bottom: 0;
  padding: 0;
  overflow: hidden;
}

.tc-uplink-vlan-row-item {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-3);
  padding: .625rem .875rem;
  display: flex;
}

.tc-uplink-vlan-row-item--border {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
}

.tc-uplink-vlan-row-item--pendiente {
  opacity: .5;
  text-decoration: line-through;
}

.tc-uplink-vlan-info {
  flex-direction: column;
  gap: .125rem;
  min-width: 0;
  display: flex;
}

.tc-uplink-vlan-id-row {
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-uplink-vlan-id {
  font-weight: 700;
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  white-space: nowrap;
}

.tc-uplink-vlan-nombre {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.tc-uplink-vlan-desc {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
}

.tc-uplink-vlan-actions {
  align-items: center;
  gap: var(--tc-space-2);
  flex-shrink: 0;
  display: flex;
}

.tc-uplink-vlan-btn-eliminar {
  flex-shrink: 0;
  color: var(--tc-danger, #dc2626) !important;
}

.tc-modal-section-title {
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin: 0 0 var(--tc-space-3) 0;
  padding-bottom: var(--tc-space-2);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  font-size: .6875rem;
  font-weight: 700;
}

.tc-modal-section-count {
  text-transform: none;
  letter-spacing: normal;
  font-weight: 400;
}

.tc-gap-3 {
  gap: .75rem;
}

.tc-flex-1 {
  flex: 1;
}

.tc-input-group {
  align-items: center;
  gap: .5rem;
  display: flex;
}

.tc-input-group > .tc-form-input, .tc-input-group > .tc-password-wrap {
  flex: 1;
  min-width: 0;
}

.tc-modal-body-text {
  font-size: var(--tc-text-base);
  margin: 0 0 .75rem;
}

.tc-password-wrap {
  position: relative;
}

.tc-password-input {
  padding-right: 2.2rem;
}

.tc-password-toggle {
  cursor: pointer;
  color: var(--admin-text-muted, #64748b);
  background: none;
  border: none;
  align-items: center;
  padding: .2rem;
  display: flex;
  position: absolute;
  top: 50%;
  right: .5rem;
  transform: translateY(-50%);
}

.data-card--flush {
  padding: 0;
  overflow: hidden;
}

.tc-olt-section {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  background: var(--admin-card-bg, #fff);
  margin-bottom: .75rem;
  overflow: hidden;
}

.tc-olt-section-header {
  background: var(--admin-bg, #f8fafc);
  width: 100%;
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  text-align: left;
  border: none;
  align-items: center;
  gap: .5rem;
  padding: .65rem .875rem;
  font-weight: 700;
  display: flex;
}

.tc-olt-section-body {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  padding: .75rem .875rem;
}

.tc-olt-inline-test {
  background: var(--admin-bg, #f8fafc);
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  margin-top: .75rem;
  padding: .6rem .75rem;
  display: flex;
}

.tc-olt-inline-test-ok {
  font-size: var(--tc-text-sm);
  color: var(--tc-success, #16a34a);
  align-items: center;
  gap: .3rem;
  display: flex;
}

.tc-olt-inline-test-err {
  font-size: var(--tc-text-sm);
  color: var(--tc-danger, #dc2626);
}

.tc-olt-snmp-panel {
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-bg, #f8fafc);
  margin-bottom: .75rem;
  padding: .6rem .75rem;
  transition: background .2s, border-color .2s;
}

.tc-olt-snmp-panel--active {
  background: var(--tc-info-bg, #eff6ff);
  border-color: var(--tc-info-border, #bfdbfe);
}

.tc-olt-test-header {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  align-items: center;
  gap: .5rem;
  margin-bottom: 1rem;
  padding-bottom: .75rem;
  display: flex;
}

.tc-olt-test-header-name {
  color: var(--admin-text, #1e293b);
  font-size: .9375rem;
  font-weight: 700;
}

.tc-olt-test-header-host {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.tc-olt-test-loading {
  text-align: center;
  color: var(--admin-text-muted, #64748b);
  padding: 2rem 0;
}

.tc-olt-test-checks {
  flex-direction: column;
  gap: .5rem;
  display: flex;
}

.tc-olt-test-check-row {
  border-radius: var(--tc-radius);
  align-items: center;
  gap: .75rem;
  padding: .75rem;
  display: flex;
}

.tc-olt-test-check-row--ok {
  background: var(--tc-success-bg, #f0fdf4);
  border: 1px solid var(--tc-success-border, #bbf7d0);
}

.tc-olt-test-check-row--fail {
  background: var(--tc-danger-bg, #fef2f2);
  border: 1px solid var(--tc-danger-border, #fecaca);
}

.tc-olt-test-check-icon {
  flex-shrink: 0;
}

.tc-olt-test-check-icon--ok {
  color: var(--tc-success, #16a34a);
}

.tc-olt-test-check-icon--fail {
  color: var(--tc-danger, #dc2626);
}

.tc-olt-test-check-body {
  flex: 1;
  min-width: 0;
}

.tc-olt-test-check-label {
  font-weight: 700;
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
}

.tc-olt-test-check-msg {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  word-break: break-word;
  margin-top: .15rem;
}

.tc-olt-test-summary {
  text-align: center;
  font-size: var(--tc-text-sm);
  margin-top: .25rem;
  font-weight: 600;
}

.tc-olt-test-summary--ok {
  color: var(--tc-success, #16a34a);
}

.tc-olt-test-summary--warn {
  color: var(--tc-warning, #d97706);
}

.tc-olt-test-summary--fail {
  color: var(--tc-danger, #dc2626);
}

.tc-olt-modal-error {
  background: var(--tc-danger-bg, #fef2f2);
  border: 1px solid var(--tc-danger-border, #fecaca);
  border-radius: var(--tc-radius);
  color: var(--tc-danger, #dc2626);
  font-size: var(--tc-text-sm);
  margin-bottom: .75rem;
  padding: .6rem .875rem;
}

.tc-olt-radio-group {
  gap: .75rem;
  display: flex;
}

.tc-olt-radio-label {
  font-size: var(--tc-text-sm);
  cursor: pointer;
  align-items: center;
  gap: .35rem;
  display: flex;
}

.tc-olt-radio-input {
  accent-color: var(--admin-primary, #2563eb);
}

.tc-olt-regen-btn {
  color: var(--admin-primary, #2563eb);
  cursor: pointer;
  font-size: var(--tc-text-xs);
  background: none;
  border: none;
  padding: 0;
  text-decoration: underline;
}

.tc-table-actions-wrap {
  justify-content: flex-end;
  align-items: center;
  gap: .3rem;
  display: flex;
}

.tc-tecnologia-cell {
  align-items: center;
  gap: .4rem;
  min-width: 11rem;
  display: flex;
}

.tc-cell-chips {
  flex-wrap: wrap;
  align-items: center;
  gap: .25rem;
  display: flex;
}

:root {
  --tc-estado-success-bg: #ecfdf3;
  --tc-estado-success-borde: #abefc6;
  --tc-estado-success-texto: #067647;
  --tc-estado-success-icono: #16a34a;
  --tc-estado-warning-bg: #fffaeb;
  --tc-estado-warning-borde: #fedf89;
  --tc-estado-warning-texto: #b54708;
  --tc-estado-warning-icono: #d97706;
  --tc-estado-danger-bg: #fef3f2;
  --tc-estado-danger-borde: #fecdca;
  --tc-estado-danger-texto: #b42318;
  --tc-estado-danger-icono: #dc2626;
  --tc-estado-info-bg: #eff6ff;
  --tc-estado-info-borde: #bfdbfe;
  --tc-estado-info-texto: #1d4ed8;
  --tc-estado-info-icono: #2563eb;
  --tc-estado-neutral-bg: #f8fafc;
  --tc-estado-neutral-borde: #e2e8f0;
  --tc-estado-neutral-texto: #475569;
  --tc-estado-neutral-icono: #94a3b8;
}

.admin-shell[data-theme="dark"] {
  --tc-estado-success-bg: #22c55e1a;
  --tc-estado-success-borde: #22c55e4d;
  --tc-estado-success-texto: #75e0a7;
  --tc-estado-success-icono: #4ade80;
  --tc-estado-warning-bg: #f59e0b1a;
  --tc-estado-warning-borde: #f59e0b4d;
  --tc-estado-warning-texto: #fdb022;
  --tc-estado-warning-icono: #fbbf24;
  --tc-estado-danger-bg: #ef44441a;
  --tc-estado-danger-borde: #ef444452;
  --tc-estado-danger-texto: #fda29b;
  --tc-estado-danger-icono: #f87171;
  --tc-estado-info-bg: #3b82f61f;
  --tc-estado-info-borde: #3b82f659;
  --tc-estado-info-texto: #93c5fd;
  --tc-estado-info-icono: #60a5fa;
  --tc-estado-neutral-bg: #94a3b814;
  --tc-estado-neutral-borde: #334155;
  --tc-estado-neutral-texto: #94a3b8;
  --tc-estado-neutral-icono: #64748b;
}

.tc-badge {
  border: 1px solid var(--tc-estado-neutral-borde, #e2e8f0);
  background: var(--tc-estado-neutral-bg, #f8fafc);
  color: var(--tc-estado-neutral-texto, #475569);
  font-size: var(--tc-text-xs);
  white-space: nowrap;
  vertical-align: middle;
  border-radius: 8px;
  align-items: center;
  gap: .3rem;
  padding: .1rem .5rem .1rem .4rem;
  font-weight: 600;
  line-height: 1.5;
  display: inline-flex;
}

.tc-badge-icono {
  color: var(--tc-estado-neutral-icono, #94a3b8);
  flex: none;
}

.tc-badge-texto {
  display: inline-block;
}

.tc-badge-texto:first-letter {
  text-transform: uppercase;
}

.tc-badge--success {
  background: var(--tc-estado-success-bg, #ecfdf3);
  border-color: var(--tc-estado-success-borde, #abefc6);
  color: var(--tc-estado-success-texto, #067647);
}

.tc-badge--warning {
  background: var(--tc-estado-warning-bg, #fffaeb);
  border-color: var(--tc-estado-warning-borde, #fedf89);
  color: var(--tc-estado-warning-texto, #b54708);
}

.tc-badge--danger {
  background: var(--tc-estado-danger-bg, #fef3f2);
  border-color: var(--tc-estado-danger-borde, #fecdca);
  color: var(--tc-estado-danger-texto, #b42318);
}

.tc-badge--info {
  background: var(--tc-estado-info-bg, #eff6ff);
  border-color: var(--tc-estado-info-borde, #bfdbfe);
  color: var(--tc-estado-info-texto, #1d4ed8);
}

.tc-badge--neutral {
  background: var(--tc-estado-neutral-bg, #f8fafc);
  border-color: var(--tc-estado-neutral-borde, #e2e8f0);
  color: var(--tc-estado-neutral-texto, #475569);
}

.tc-badge--success .tc-badge-icono {
  color: var(--tc-estado-success-icono, #16a34a);
}

.tc-badge--warning .tc-badge-icono {
  color: var(--tc-estado-warning-icono, #d97706);
}

.tc-badge--danger .tc-badge-icono {
  color: var(--tc-estado-danger-icono, #dc2626);
}

.tc-badge--info .tc-badge-icono {
  color: var(--tc-estado-info-icono, #2563eb);
  animation: 1.4s linear infinite tc-badge-giro;
}

@keyframes tc-badge-giro {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .tc-badge--info .tc-badge-icono {
    animation: none;
  }
}

.tc-prioridad {
  color: var(--tc-estado-neutral-texto, #475569);
  font-size: var(--tc-text-xs);
  white-space: nowrap;
  vertical-align: middle;
  align-items: center;
  gap: .35rem;
  font-weight: 600;
  line-height: 1.5;
  display: inline-flex;
}

.tc-prioridad-barras {
  align-items: flex-end;
  gap: 2px;
  height: 12px;
  display: inline-flex;
}

.tc-prioridad-barra {
  background: var(--tc-estado-neutral-borde, #e2e8f0);
  border-radius: 1px;
  width: 3px;
}

.tc-prioridad-barra:first-child {
  height: 4px;
}

.tc-prioridad-barra:nth-child(2) {
  height: 7px;
}

.tc-prioridad-barra:nth-child(3) {
  height: 10px;
}

.tc-prioridad-barra:nth-child(4) {
  height: 12px;
}

.tc-prioridad-barra--llena {
  background: var(--tc-estado-neutral-texto, #475569);
}

.tc-diferencia {
  font-size: var(--tc-text-xs);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  align-items: center;
  gap: .2rem;
  font-weight: 600;
  display: inline-flex;
}

.tc-diferencia--success {
  color: var(--tc-estado-success-texto, #067647);
}

.tc-diferencia--warning {
  color: var(--tc-estado-warning-texto, #b54708);
}

.tc-diferencia--danger {
  color: var(--tc-estado-danger-texto, #b42318);
}

.portal-danger-button {
  color: #fff;
  cursor: pointer;
  background: #ef4444;
  border: none;
  border-radius: 14px;
  padding: .9rem 1rem;
  font-weight: 700;
  transition: transform .18s, opacity .18s, background .18s;
}

.portal-danger-button:hover {
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.admin-shell[data-theme="dark"] .admin-content .portal-danger-button {
  background: #ef4444d9;
}

.btn-icon {
  border-radius: var(--tc-radius);
  width: 2rem;
  height: 2rem;
  color: var(--admin-text-muted, #64748b);
  cursor: pointer;
  background: none;
  border: none;
  justify-content: center;
  align-items: center;
  padding: 0;
  transition: background .15s, color .15s;
  display: inline-flex;
}

.btn-icon:hover {
  background: var(--admin-table-hover, #f1f5f9);
  color: var(--admin-text, #1e293b);
}

.btn-icon:disabled {
  opacity: .4;
  cursor: not-allowed;
}

.tc-card-header {
  margin-bottom: var(--tc-space-4);
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.tc-card-title {
  font-size: var(--tc-text-lg);
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 600;
}

.tc-empty-state {
  text-align: center;
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-md);
  padding: 2rem;
}

.tc-empty-state-icon {
  margin-bottom: var(--tc-space-2);
  opacity: .5;
  font-size: 2rem;
}

.tc-empty-state-text {
  margin: 0;
}

.admin-content .portal-error-text {
  color: #b91c1c;
  border-radius: var(--tc-radius);
  background: #fef2f2;
  border: 1px solid #ef444433;
}

.admin-content .portal-feedback-text {
  color: #166534;
  border-radius: var(--tc-radius);
  background: #dcfce7;
  border: 1px solid #22c55e33;
}

.admin-content .breadcrumb {
  font-size: var(--tc-text-base);
}

.admin-content .breadcrumb-item {
  color: var(--admin-text-muted, #64748b);
}

.admin-content .breadcrumb-item:hover {
  color: var(--admin-primary, #2563eb);
}

.admin-content .breadcrumb-item.current {
  color: var(--admin-text, #1e293b);
}

.tc-card {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
  overflow: hidden;
}

.tc-card--overflow-visible {
  overflow: visible;
}

.tc-card-head {
  padding: .875rem var(--tc-space-5);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-card-head-title {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--admin-text-muted, #64748b);
  margin: 0;
  font-weight: 700;
}

.tc-card-body {
  padding: var(--tc-space-5);
}

.tc-card-body--flush {
  padding: 0;
}

.tc-field {
  min-width: 0;
}

.tc-field--inline {
  grid-template-columns: minmax(6.5rem, max-content) 1fr;
  align-items: baseline;
  gap: .15rem .85rem;
  display: grid;
}

.tc-field--inline .tc-field-label, .tc-field--inline .tc-field-value {
  margin: 0;
}

.tc-field--span {
  grid-column: 1 / -1;
}

.tc-field-label {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 .2rem;
  font-weight: 600;
}

.tc-field-value {
  font-size: var(--tc-text-md);
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 500;
}

.tc-field-value--mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.tc-field-value--empty {
  color: var(--admin-text-muted, #94a3b8);
}

.tc-copyable-id {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-bg, #f8fafc);
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-xs);
  cursor: pointer;
  border-radius: 999px;
  align-items: center;
  gap: .3rem;
  padding: .15rem .5rem;
  line-height: 1.4;
  transition: background-color .15s, color .15s, border-color .15s;
  display: inline-flex;
}

.tc-copyable-id:hover {
  background: var(--admin-surface-hover, var(--admin-surface, #eef2ff));
  border-color: var(--tc-primary-text, #4338ca);
}

.tc-copyable-id-text {
  color: var(--admin-text, #1e293b);
  letter-spacing: .02em;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 600;
}

.tc-doc-foto {
  text-align: center;
}

.tc-doc-foto__img {
  border-radius: var(--tc-radius);
  object-fit: contain;
  border: 1px solid var(--admin-border, #e2e8f0);
  max-width: 200px;
  max-height: 160px;
  margin: 0 auto;
  display: block;
}

.tc-doc-foto__label {
  margin-top: var(--tc-space-1);
}

.tc-field-label--icon {
  align-items: center;
  gap: var(--tc-space-1);
  margin-bottom: 0;
  display: flex;
}

.tc-doc-fotos-section {
  margin-top: var(--tc-space-3);
}

.tc-doc-fotos-row {
  gap: var(--tc-space-4);
  margin-top: var(--tc-space-3);
  flex-wrap: wrap;
  justify-content: flex-start;
  display: flex;
}

@media (max-width: 640px) {
  .tc-doc-fotos-row {
    flex-direction: column;
    align-items: flex-start;
  }
}

.tc-field-grid {
  grid-template-columns: 1fr 1fr;
  gap: .875rem 1.5rem;
  display: grid;
}

.tc-field-group-label {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--admin-text-muted, #64748b);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  margin: 1.25rem 0 .625rem;
  padding-bottom: .375rem;
  font-weight: 700;
}

.tc-field-group-label:first-child {
  margin-top: 0;
}

.tc-config-fields {
  row-gap: 1.05rem;
}

.tc-config-fields .tc-field-label {
  color: var(--admin-text-muted, #94a3b8);
  margin-bottom: .3rem;
  font-weight: 500;
}

.tc-config-fields .tc-field-value {
  color: var(--admin-text, #0f172a);
  font-weight: 600;
}

.tc-copiable {
  align-items: center;
  gap: .4rem;
  display: inline-flex;
}

.tc-copiable-btn {
  color: var(--admin-text-muted, #94a3b8);
  cursor: pointer;
  border-radius: var(--tc-radius-sm);
  background: none;
  border: none;
  justify-content: center;
  align-items: center;
  padding: 2px;
  transition: color .12s, background .12s;
  display: inline-flex;
}

.tc-copiable-btn:hover {
  color: var(--tc-info, #3b82f6);
  background: var(--tc-neutral-bg, #f1f5f9);
}

.tc-copiable-link {
  color: inherit;
  text-decoration: none;
}

.tc-copiable-link:hover {
  color: var(--tc-info, #3b82f6);
  text-decoration: underline;
}

.tc-ftth-lan-port-chip-skeleton {
  border-radius: 999px;
  width: 44px;
  height: 18px;
}

.tc-btn {
  border-radius: var(--tc-radius);
  font-weight: 600;
  font-size: var(--tc-text-base);
  cursor: pointer;
  transition: filter var(--tc-transicion) var(--tc-curva),
              opacity var(--tc-transicion) var(--tc-curva),
              transform var(--tc-transicion) var(--tc-curva);
  white-space: nowrap;
  justify-content: center;
  align-items: center;
  gap: 6px;
  line-height: 1;
  text-decoration: none;
  display: inline-flex;
}

.tc-btn:disabled {
  opacity: .5;
  cursor: not-allowed;
}

.tc-btn:not(:disabled):hover {
  filter: brightness(.95);
}

.tc-btn:not(:disabled):active {
  filter: brightness(.9);
  transform: scale(var(--tc-press-escala));
}

.tc-btn--md {
  padding: .55rem 1.1rem;
}

.tc-btn--sm {
  font-size: var(--tc-text-sm);
  padding: .4rem .75rem;
}

.tc-btn--icon {
  border-radius: var(--tc-radius-sm);
  width: 2rem;
  height: 2rem;
  padding: 0;
}

.tc-btn--block {
  width: 100%;
  display: flex;
}

.tc-btn--primary {
  background: var(--admin-primary, #2563eb);
  color: #fff;
  border: none;
}

.tc-btn--secondary {
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text, #1e293b);
  border: 1px solid var(--admin-border, #e2e8f0);
  font-weight: 500;
}

.tc-btn--danger {
  background: var(--tc-danger-bg);
  color: var(--tc-danger-text);
  border: 1px solid #fca5a5;
}

.tc-btn--ghost {
  color: var(--admin-text-muted, #64748b);
  background: none;
  border: 1px solid #0000;
}

.tc-btn--ghost:not(:disabled):hover {
  background: var(--admin-bg, #f8fafc);
  color: var(--admin-text, #1e293b);
  filter: none;
}

.tc-btn--activo {
  color: var(--tc-success);
  background: color-mix(in srgb, var(--tc-success) 10%, transparent);
}

.tc-btn--activo:not(:disabled):hover {
  background: color-mix(in srgb, var(--tc-success) 16%, transparent);
  color: var(--tc-success);
}

.tc-btn-ico {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-sm);
  background: var(--admin-card-bg, #fff);
  width: 28px;
  height: 28px;
  color: var(--admin-text-muted, #64748b);
  cursor: pointer;
  transition: transform var(--tc-transicion) var(--tc-curva),
              background-color var(--tc-transicion) var(--tc-curva),
              border-color var(--tc-transicion) var(--tc-curva);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  padding: 0;
  text-decoration: none;
  display: inline-flex;
}

.tc-btn-ico--peligro {
  border-color: color-mix(in srgb, var(--tc-danger) 40%, transparent);
  background: var(--tc-danger-bg);
  color: var(--tc-danger);
}

.tc-btn-ico:disabled {
  opacity: .5;
  cursor: not-allowed;
}

@media (hover: hover) and (pointer: fine) {
  .tc-btn-ico:not(:disabled):hover {
    transform: scale(var(--tc-hover-escala-ico));
    background: var(--admin-table-hover, #f8fafc);
    border-color: var(--admin-text-muted, #64748b);
  }

  .tc-btn-ico--peligro:not(:disabled):hover {
    background: color-mix(in srgb, var(--tc-danger) 16%, transparent);
    border-color: var(--tc-danger);
  }
}

.tc-btn-ico:hover {
  color: var(--admin-text-muted, #64748b);
}

.tc-btn-ico--peligro:hover {
  color: var(--tc-danger);
}

.tc-btn-ico:not(:disabled):active {
  transform: scale(var(--tc-press-escala));
}

.tc-btn-ico:focus-visible {
  outline: 2px solid var(--admin-primary, #2563eb);
  outline-offset: 1px;
}

.admin-shell[data-theme="dark"] .admin-content .tc-btn-ico--peligro {
  color: #f87171;
  background: #ef44442e;
  border-color: #ef444473;
}

@media (hover: hover) and (pointer: fine) {
  .admin-shell[data-theme="dark"] .admin-content .tc-btn-ico--peligro:not(:disabled):hover {
    background: #ef44444d;
    border-color: #f87171;
  }
}

.tc-chip {
  border: 1px solid var(--tc-estado-neutral-borde, #e2e8f0);
  background: var(--tc-estado-neutral-bg, #f8fafc);
  color: var(--tc-estado-neutral-texto, #475569);
  font-size: var(--tc-text-xs);
  white-space: nowrap;
  border-radius: 8px;
  padding: .1rem .5rem;
  font-weight: 600;
  line-height: 1.5;
  display: inline-block;
}

.tc-chip--default, .tc-chip--neutral {
  background: var(--tc-estado-neutral-bg, #f8fafc);
  border-color: var(--tc-estado-neutral-borde, #e2e8f0);
  color: var(--tc-estado-neutral-texto, #475569);
}

.tc-chip--muted {
  background: var(--tc-estado-neutral-bg, #f8fafc);
  border-color: var(--tc-estado-neutral-borde, #e2e8f0);
  color: var(--admin-text-muted, #64748b);
}

.tc-palabra-confirmar {
  border: 1px solid var(--tc-estado-danger-borde, #fecdca);
  background: var(--tc-estado-danger-bg, #fef3f2);
  color: var(--tc-estado-danger-texto, #b42318);
  font-size: var(--tc-text-xs);
  border-radius: 8px;
  padding: .1rem .45rem;
  font-weight: 700;
  display: inline-block;
}

.tc-cell-icon-row {
  align-items: center;
  gap: var(--tc-space-1);
  display: inline-flex;
}

.tc-muestra-cable {
  border-radius: 2px;
  flex: none;
  width: 18px;
  height: 4px;
}

.tc-tab-acciones {
  justify-content: flex-end;
  align-items: center;
  gap: var(--tc-space-2);
  margin-bottom: var(--tc-space-3);
  display: flex;
}

.tc-puertos-grid {
  gap: var(--tc-space-2);
  margin: var(--tc-space-2) 0;
  flex-wrap: wrap;
  display: flex;
}

.tc-puerto-chip {
  min-width: 44px;
  padding: var(--tc-space-2);
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius-sm);
  background: var(--admin-card-bg);
  color: var(--admin-text);
  font-size: var(--tc-text-sm);
  cursor: pointer;
  font-weight: 600;
  line-height: 1.2;
  transition: all .15s;
}

.tc-puerto-chip:hover {
  border-color: var(--admin-primary);
}

.tc-puerto-chip--activo {
  border-color: var(--admin-primary);
  background: var(--admin-primary);
  color: #fff;
}

.tc-puerto-chip-nota {
  font-size: var(--tc-text-xs);
  opacity: .75;
  font-weight: 500;
  display: block;
}

.tc-mapa-avisos {
  top: var(--tc-space-3);
  z-index: 1150;
  align-items: center;
  gap: var(--tc-space-2);
  pointer-events: none;
  flex-direction: column;
  max-width: 94%;
  display: flex;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.tc-mapa-avisos > * {
  pointer-events: auto;
}

.tc-mapa-glifo {
  flex: none;
  display: inline-flex;
}

.leaflet-marker-icon > * {
  transition: transform var(--tc-transicion) var(--tc-curva);
  transform-origin: center;
}

.leaflet-marker-icon:hover > * {
  transform: scale(1.18);
}

.leaflet-marker-icon:hover {
  z-index: 1200 !important;
}

@media (prefers-reduced-motion: reduce) {
  .leaflet-marker-icon > * {
    transition: none;
  }
}

.tc-buscador-mapa {
  z-index: 1200;
  width: auto;
  position: absolute;
  top: 12px;
  left: 52px;
}

.tc-buscador-mapa--abierto {
  width: min(340px, 100% - 120px);
}

.tc-buscador-mapa .tc-buscador-mapa-lupa {
  flex: none;
  position: static;
}

.tc-buscador-mapa .tc-search-combo-field {
  background: var(--admin-card-bg, #fff);
  border-radius: var(--tc-radius-lg);
  box-shadow: 0 3px 14px #0000002e;
}

.tc-buscador-mapa .tc-search-combo-dropdown {
  max-height: min(58vh, 460px);
  margin-top: 6px;
  box-shadow: 0 8px 28px #00000038;
}

.tc-buscador-mapa .tc-search-combo-item {
  align-items: center;
  gap: var(--tc-space-1);
  width: 100%;
  display: flex;
}

.tc-buscador-mapa-ir {
  align-items: center;
  gap: var(--tc-space-2);
  text-align: left;
  min-width: 0;
  font: inherit;
  cursor: pointer;
  background: none;
  border: none;
  flex: 1;
  padding: 0;
  display: flex;
}

.tc-buscador-mapa-acotar {
  color: var(--admin-text-muted);
  cursor: pointer;
  border-radius: var(--tc-radius-sm);
  background: none;
  border: none;
  flex: none;
  padding: 5px;
  display: inline-flex;
}

.tc-buscador-mapa-acotar:hover {
  background: var(--admin-table-hover);
  color: var(--admin-primary);
}

.tc-buscador-mapa .tc-search-combo-item.tc-buscador-mapa-activo {
  background: var(--admin-table-hover, #f8fafc);
}

.tc-buscador-mapa-ico {
  flex: none;
  justify-content: center;
  width: 22px;
  display: inline-flex;
}

.tc-buscador-mapa-mas {
  padding: var(--tc-space-1) var(--tc-space-3) var(--tc-space-2);
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  font-style: italic;
}

.tc-alerta-cortes {
  z-index: 1200;
  position: absolute;
  top: 12px;
  right: 52px;
}

.tc-alerta-btn {
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius-lg);
  background: var(--admin-card-bg);
  cursor: pointer;
  justify-content: center;
  align-items: center;
  width: 34px;
  height: 34px;
  display: flex;
  position: relative;
  box-shadow: 0 2px 8px #00000024;
}

.tc-alerta-btn--alarma {
  color: var(--tc-danger);
  border-color: var(--tc-danger);
}

.tc-alerta-btn--aviso {
  color: var(--tc-warning);
  border-color: var(--tc-warning);
}

.tc-alerta-btn--activo {
  background: var(--admin-primary);
  border-color: var(--admin-primary);
  color: #fff;
}

.tc-alerta-badge {
  background: var(--tc-danger);
  color: #fff;
  border-radius: 9px;
  justify-content: center;
  align-items: center;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  display: flex;
  position: absolute;
  top: -7px;
  right: -7px;
}

.tc-alerta-btn--activo .tc-alerta-badge {
  box-shadow: 0 0 0 2px var(--admin-primary);
}

.tc-alerta-panel {
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius-lg);
  background: var(--admin-card-bg);
  width: min(340px, 78vw);
  max-height: min(60vh, 420px);
  font-size: var(--tc-text-sm);
  flex-direction: column;
  display: flex;
  position: absolute;
  top: 42px;
  right: 0;
  box-shadow: 0 8px 28px #00000038;
}

.tc-alerta-panel--alarma {
  border-top: 3px solid var(--tc-danger);
}

.tc-alerta-panel--aviso {
  border-top: 3px solid var(--tc-warning);
}

.tc-alerta-head {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2);
  padding: var(--tc-space-2) var(--tc-space-3);
  border-bottom: 1px solid var(--admin-border);
  display: flex;
}

.tc-alerta-cerrar {
  color: var(--admin-text-muted);
  cursor: pointer;
  background: none;
  border: none;
  display: flex;
}

.tc-alerta-cuerpo {
  padding: var(--tc-space-2) 0;
  overflow-y: auto;
}

.tc-alerta-item {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2);
  padding: var(--tc-space-2) var(--tc-space-3);
  display: flex;
}

.tc-alerta-item + .tc-alerta-item {
  border-top: 1px solid var(--admin-border);
}

.tc-alerta-item-txt {
  flex-direction: column;
  gap: 1px;
  min-width: 0;
  display: flex;
}

.tc-alerta-tramo, .tc-alerta-cuenta {
  color: var(--admin-text-muted);
  font-size: var(--tc-text-xs);
}

.tc-alerta-nota {
  padding: var(--tc-space-2) var(--tc-space-3);
  color: var(--admin-text-muted);
  margin: 0;
  line-height: 1.45;
}

.tc-alerta-pie {
  padding: var(--tc-space-2) var(--tc-space-3);
  border-top: 1px solid var(--admin-border);
  justify-content: flex-end;
  display: flex;
}

.tc-rastro {
  max-width: min(94%, 900px);
  padding: var(--tc-space-1) var(--tc-space-2);
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius-lg);
  background: var(--admin-card-bg);
  font-size: var(--tc-text-sm);
  flex-wrap: wrap;
  align-items: center;
  gap: 2px;
  display: flex;
  box-shadow: 0 3px 14px #00000029;
}

.tc-rastro-tramo {
  align-items: center;
  gap: 2px;
  display: inline-flex;
}

.tc-rastro-sep {
  color: var(--admin-text-muted);
  padding: 0 2px;
}

.tc-rastro-nivel {
  font: inherit;
  color: var(--admin-primary);
  cursor: pointer;
  border-radius: var(--tc-radius-sm);
  background: none;
  border: none;
  padding: 2px 4px;
}

.tc-rastro-nivel:hover {
  background: var(--admin-table-hover);
}

.tc-rastro-actual {
  color: var(--admin-text);
  padding: 2px 4px;
}

.tc-rastro-cuenta {
  color: var(--admin-text-muted);
  border-left: 1px solid var(--admin-border);
  margin-left: var(--tc-space-2);
  padding-left: var(--tc-space-2);
  font-size: var(--tc-text-xs);
}

.tc-rastro-icono {
  color: var(--admin-text-muted);
  cursor: pointer;
  border-radius: var(--tc-radius-sm);
  background: none;
  border: none;
  align-items: center;
  padding: 3px;
  display: inline-flex;
}

.tc-rastro-icono:hover {
  background: var(--admin-table-hover);
  color: var(--admin-text);
}

.tc-rastro-icono[aria-pressed="true"] {
  color: var(--admin-primary);
}

.tc-emp {
  gap: var(--tc-space-3);
  flex-direction: column;
  min-height: 0;
  display: flex;
}

.tc-emp-barra {
  align-items: center;
  gap: var(--tc-space-3);
  padding: var(--tc-space-2) 0;
  border-bottom: 1px solid var(--admin-border);
  z-index: 6;
  background: var(--admin-card-bg);
  flex-wrap: wrap;
  display: flex;
  position: sticky;
  top: 0;
}

.tc-emp-buscar {
  align-items: center;
  min-width: 240px;
  display: flex;
  position: relative;
}

.tc-emp-buscar > svg {
  color: var(--admin-text-muted);
  pointer-events: none;
  position: absolute;
  left: 9px;
}

.tc-emp-buscar .tc-form-input {
  padding-left: 30px;
  padding-right: 28px;
}

.tc-emp-limpiar {
  cursor: pointer;
  color: var(--admin-text-muted);
  background: none;
  border: none;
  padding: 2px;
  display: flex;
  position: absolute;
  right: 6px;
}

.tc-emp-limpiar:hover {
  color: var(--admin-text);
}

.tc-emp-cuenta {
  color: var(--admin-text-muted);
  font-size: var(--tc-text-sm);
  font-variant-numeric: tabular-nums;
  margin-left: auto;
}

.tc-sc-aviso p {
  margin: 0;
}

.tc-sc-aviso-lista {
  margin: 4px 0 0;
  padding-left: 16px;
}

.tc-sc-aviso p.tc-sc-aviso-quehacer {
  opacity: .85;
  margin-top: 4px;
}

.tc-sc-aviso {
  padding: var(--tc-space-2) var(--tc-space-3);
  border-radius: var(--tc-radius);
  background: var(--tc-warning-bg);
  color: var(--tc-warning-text);
  font-size: var(--tc-text-xs);
  align-items: flex-start;
  gap: 8px;
  margin: 0;
  line-height: 1.5;
  display: flex;
}

.tc-sc-sineje {
  padding: var(--tc-space-2) var(--tc-space-3);
  border: 1px dashed var(--admin-border);
  border-radius: var(--tc-radius);
  color: var(--admin-text-muted);
  font-size: var(--tc-text-xs);
  margin: 0;
}

.tc-sc-scroll {
  position: relative;
  overflow: auto;
}

.tc-sc-lienzo {
  grid-template-columns: var(--sc-card) var(--sc-pasillo) var(--sc-card);
  width: max-content;
  min-width: 100%;
  padding: var(--tc-space-3) var(--tc-space-2);
  --sc-card: 330px;
  --sc-pasillo: 220px;
  --sc-fila: 28px;
  justify-content: center;
  gap: 0;
  display: grid;
  position: relative;
}

.tc-sc-conexiones {
  z-index: 0;
  pointer-events: none;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
}

.tc-sc-corte {
  pointer-events: stroke;
  cursor: pointer;
}

.tc-sc-col {
  gap: var(--tc-space-3);
  z-index: 1;
  flex-direction: column;
  min-width: 0;
  display: flex;
}

.tc-sc-col--izq {
  grid-column: 1;
}

.tc-sc-col--der {
  grid-column: 3;
}

.tc-sc-card {
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius-lg);
  background: var(--admin-bg);
  overflow: hidden;
}

.tc-sc-cab {
  background: var(--admin-text);
  color: #fff;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  padding: 7px 12px;
  display: flex;
}

.tc-sc-cab-nom {
  font-weight: 700;
  font-size: var(--tc-text-sm);
}

.tc-sc-cab-dest {
  font-size: var(--tc-text-xs);
  color: #ffffffb8;
  min-width: 0;
}

.tc-sc-cab-acc {
  gap: 2px;
  margin-left: auto;
  display: flex;
}

.tc-sc-cab-acc button {
  color: #ffffffb3;
  cursor: pointer;
  border-radius: var(--tc-radius-sm);
  background: none;
  border: none;
  padding: 3px 5px;
  font-size: 12px;
  line-height: 1;
}

.tc-sc-cab-acc button:hover {
  color: #fff;
  background: #ffffff2e;
}

.tc-sc-body {
  padding: 6px 0;
}

.tc-sc-fila {
  height: var(--sc-fila);
  align-items: center;
  gap: 6px;
  padding: 0 10px;
  display: flex;
  position: relative;
}

.tc-sc-col--der .tc-sc-fila {
  flex-direction: row-reverse;
}

.tc-sc-buffer-nom {
  font-size: var(--tc-text-xs);
  font-weight: 600;
}

.tc-sc-buffer-n {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
  font-variant-numeric: tabular-nums;
}

.tc-sc-chips {
  cursor: pointer;
  align-items: center;
  gap: 3px;
  display: flex;
}

.tc-sc-chip {
  border: 1px solid var(--admin-border);
  background: var(--admin-card-bg);
  color: var(--admin-text-muted);
  font-variant-numeric: tabular-nums;
  border-radius: 3px;
  padding: 0 5px;
  font-size: 10.5px;
  line-height: 17px;
}

.tc-sc-chips:hover .tc-sc-chip {
  border-color: var(--admin-primary);
  color: var(--admin-primary);
}

.tc-sc-chip--medida {
  border-color: var(--tc-success);
  color: var(--tc-success-text);
  font-weight: 700;
}

.tc-sc-chip--con {
  border-color: var(--admin-primary);
  color: var(--admin-primary);
}

.tc-sc-sigue {
  color: var(--tc-warning-text);
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 150px;
  font-size: 9.5px;
  overflow: hidden;
}

.tc-sc-hueco {
  flex: none;
  width: 2px;
}

.tc-sc-color {
  color: var(--admin-text-muted);
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 96px;
  margin-left: auto;
  font-size: 10px;
  overflow: hidden;
}

.tc-sc-col--der .tc-sc-color {
  margin-left: 0;
  margin-right: auto;
}

.tc-sc-fibra {
  border-radius: 2px;
  flex: none;
  width: 22px;
  height: 4px;
  box-shadow: 0 0 0 1px #0f172a66;
}

.tc-sc-fibra--neutra {
  background: var(--tc-neutral-text);
}

.tc-sc-pill {
  cursor: pointer;
  color: #fff;
  width: 34px;
  height: 20px;
  font: inherit;
  font-variant-numeric: tabular-nums;
  background: #1e2732;
  border: none;
  border-radius: 5px;
  flex: none;
  font-size: 11px;
  font-weight: 700;
  box-shadow: 0 0 0 1.5px #fff, 0 1px 3px #0006;
}

.tc-sc-pill--ocup {
  background: var(--admin-primary);
}

.tc-sc-pill--sel {
  outline: 3px solid var(--tc-warning);
  outline-offset: 2px;
}

.tc-sc-port {
  background: none;
  border-radius: 50%;
  flex: none;
  width: 8px;
  height: 8px;
}

.tc-sc-conexiones .tc-sc-apag {
  visibility: hidden;
}

.tc-emp-pie {
  align-items: center;
  gap: var(--tc-space-2);
  border-top: 1px solid var(--admin-border);
  padding: var(--tc-space-2) 0;
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted);
  z-index: 6;
  background: var(--admin-card-bg);
  display: flex;
  position: sticky;
  bottom: 0;
}

.tc-emp-pie .tc-btn {
  margin-left: auto;
}

.tc-emp-hint-sel {
  color: var(--admin-primary);
}

.tc-emp-panel {
  align-items: center;
  gap: var(--tc-space-3);
  border-top: 1px solid var(--admin-border);
  padding: var(--tc-space-3) 0;
  z-index: 6;
  background: var(--admin-card-bg);
  flex-wrap: wrap;
  display: flex;
  position: sticky;
  bottom: 0;
}

.tc-emp-panel-txt {
  flex: 320px;
  min-width: 0;
}

.tc-emp-panel-puntas {
  font-size: var(--tc-text-sm);
  color: var(--admin-text);
  margin: 0;
  font-weight: 600;
}

.tc-emp-panel-flecha {
  color: var(--admin-primary);
  padding: 0 4px;
}

.tc-emp-panel-meta {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
  margin: 2px 0 0;
}

.tc-emp-panel-acc {
  gap: var(--tc-space-2);
  margin-left: auto;
  display: flex;
}

.tc-emp-form-grid {
  align-items: flex-end;
  gap: var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-emp-form-grid .tc-form-field {
  flex: 0 0 150px;
  margin-bottom: 0;
}

.tc-emp-form-grid .tc-form-field--full {
  flex: 220px;
}

.tc-leyenda-btn {
  left: var(--tc-space-3);
  z-index: 1000;
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius-lg);
  background: var(--admin-card-bg);
  width: 34px;
  height: 34px;
  color: var(--tc-neutral-text);
  cursor: pointer;
  justify-content: center;
  align-items: center;
  display: flex;
  position: absolute;
  bottom: 28px;
  box-shadow: 0 2px 8px #0000001f;
}

.tc-leyenda-btn:hover {
  color: var(--admin-text);
}

.tc-leyenda-btn--activo {
  background: var(--admin-primary);
  border-color: var(--admin-primary);
  color: #fff;
}

.tc-leyenda-btn--activo:hover {
  color: #fff;
}

.tc-leyenda {
  left: var(--tc-space-3);
  z-index: 1000;
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius-lg);
  background: var(--admin-card-bg);
  width: 290px;
  min-height: 120px;
  max-height: calc(100% - 170px);
  font-size: var(--tc-text-sm);
  color: var(--admin-text);
  flex-direction: column;
  display: flex;
  position: absolute;
  bottom: 70px;
  box-shadow: 0 6px 24px #0000002e;
}

.tc-leyenda-head {
  padding: var(--tc-space-2) var(--tc-space-3);
  border-bottom: 1px solid var(--admin-border);
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.tc-leyenda-cerrar {
  cursor: pointer;
  color: var(--admin-text-muted);
  background: none;
  border: none;
  padding: 0;
  display: flex;
}

.tc-leyenda-cuerpo {
  padding: var(--tc-space-2) var(--tc-space-3) var(--tc-space-3);
  overflow-y: auto;
}

.tc-leyenda-titulo {
  margin: var(--tc-space-3) 0 var(--tc-space-1);
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--admin-text-muted);
  font-weight: 700;
}

.tc-leyenda-titulo:first-child {
  margin-top: 0;
}

.tc-leyenda-fila {
  align-items: center;
  gap: var(--tc-space-2);
  font-size: var(--tc-text-xs);
  padding: 3px 0;
  line-height: 1.35;
  display: flex;
}

.tc-leyenda-muestra {
  flex: none;
  justify-content: center;
  align-items: center;
  width: 24px;
  display: flex;
}

.tc-paleta-caja {
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  align-items: center;
  display: flex;
}

.tc-paleta-chip {
  border-radius: var(--tc-radius-sm);
  cursor: pointer;
  border: 2px solid #0000;
  width: 26px;
  height: 26px;
  padding: 0;
  box-shadow: inset 0 0 0 1px #0000001f;
}

.tc-paleta-chip--activo {
  border-color: var(--admin-text);
  box-shadow: 0 0 0 2px var(--admin-card-bg), inset 0 0 0 1px #0000001f;
}

.tc-paleta-chip--auto {
  width: auto;
  padding: 0 var(--tc-space-2);
  background: var(--admin-card-bg);
  color: var(--admin-text-muted);
  font-size: var(--tc-text-xs);
  box-shadow: inset 0 0 0 1px var(--admin-border);
}

.tc-mapa-barra-modo {
  align-items: center;
  gap: var(--tc-space-3);
  max-width: min(92%, 620px);
  padding: var(--tc-space-2) var(--tc-space-3);
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius-lg);
  background: var(--admin-card-bg);
  font-size: var(--tc-text-sm);
  color: var(--admin-text);
  display: flex;
  box-shadow: 0 4px 16px #00000029;
}

.tc-table-chip-row {
  gap: var(--tc-space-1);
  flex-wrap: wrap;
  display: flex;
}

.tc-barra-progreso {
  background: var(--admin-border, #e2e8f0);
  border-radius: 4px;
  width: 100%;
  height: 8px;
  overflow: hidden;
}

.tc-barra-progreso-fill {
  border-radius: 4px;
  height: 100%;
  transition: width .3s;
}

.tc-mb {
  margin-bottom: 1.25rem;
}

.tc-kpi-grid {
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  display: grid;
}

@media (max-width: 1024px) {
  .tc-kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .tc-kpi-grid {
    grid-template-columns: 1fr;
  }
}

.tc-watchdog-grid, .tc-servicios-grid {
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  display: grid;
}

@media (max-width: 1024px) {
  .tc-watchdog-grid, .tc-servicios-grid {
    grid-template-columns: 1fr;
  }
}

.tc-kpi-icon-row {
  align-items: center;
  gap: .4rem;
  margin-bottom: .5rem;
  display: flex;
}

.tc-kpi-icon {
  color: var(--admin-text-muted, #64748b);
  flex-shrink: 0;
}

.tc-kpi-label {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: 600;
}

.tc-kpi-value {
  color: var(--admin-text, #1e293b);
  margin-bottom: .35rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.1;
}

.tc-kpi-barra {
  margin-bottom: .4rem;
}

.tc-kpi-sub {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.tc-io-rows {
  flex-direction: column;
  gap: .5rem;
  margin-top: .25rem;
  display: flex;
}

.tc-io-row {
  font-size: var(--tc-text-base);
  justify-content: space-between;
  align-items: baseline;
  display: flex;
}

.tc-servicio-header {
  align-items: center;
  gap: .5rem;
  margin-bottom: .75rem;
  display: flex;
}

.tc-servicio-rows {
  flex-direction: column;
  gap: .5rem;
  display: flex;
}

.tc-servicio-row {
  font-size: var(--tc-text-base);
  justify-content: space-between;
  align-items: baseline;
  display: flex;
}

.tc-containers-group {
  padding-top: 1rem;
}

.tc-containers-group--top-border {
  border-top: 1px solid var(--admin-border, #e2e8f0);
}

.tc-containers-group-label {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  align-items: baseline;
  gap: .5rem;
  margin: 0 0 .75rem;
  font-weight: 600;
  display: flex;
}

.tc-containers-group-hint {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  font-weight: 400;
}

.tc-cell-nombre-contenedor {
  font-family: monospace;
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-cell-imagen {
  font-size: var(--tc-text-sm);
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 240px;
  overflow: hidden;
}

.tc-uptime-infra {
  cursor: help;
  border-bottom: 1px dotted var(--admin-text-muted, #64748b);
}

.tc-acciones-contenedor {
  flex-wrap: wrap;
  align-items: center;
  gap: .25rem;
  display: flex;
}

.tc-vm-acciones {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  display: flex;
}

.tc-vm-acciones-title {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  margin: 0 0 .25rem;
  font-weight: 700;
}

.tc-card--danger-border {
  border-color: #dc262640 !important;
}

.tc-estado-reiniciando {
  text-align: center;
  flex-direction: column;
  align-items: center;
  gap: .75rem;
  padding: 2.5rem 1.5rem;
  display: flex;
}

.tc-estado-reiniciando h2 {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
}

.tc-spin-icon {
  color: var(--admin-text-muted, #64748b);
  animation: 1.5s linear infinite tc-spin;
}

@keyframes tc-spin {
  from {
    transform: rotate(0);
  }

  to {
    transform: rotate(360deg);
  }
}

.tc-logs-body {
  max-height: 60vh;
  padding: .75rem 0;
  overflow-y: auto;
}

.tc-logs-cargando {
  text-align: center;
  padding: 2rem 0;
}

.tc-logs-pre {
  white-space: pre-wrap;
  word-break: break-all;
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-family: monospace;
  font-size: .78rem;
  line-height: 1.6;
}

.tc-logs-modal-footer {
  align-items: center;
  gap: .5rem;
  display: flex;
}

.tc-reboot-input {
  letter-spacing: .1em;
  font-family: monospace;
}

.tc-reboot-keyword {
  color: var(--tc-danger-text, #991b1b);
}

.tc-stat {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  padding: 14px 16px;
  display: flex;
  overflow: hidden;
}

.tc-stat-value {
  overflow-wrap: anywhere;
  word-break: break-word;
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1.1;
}

.tc-stat-label {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: 600;
}

.tc-stat-sub {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #94a3b8);
  margin-top: 2px;
}

.tc-stat-barra {
  background: var(--admin-border, #e2e8f0);
  border-radius: 999px;
  height: 6px;
  margin: 6px 0 2px;
  display: flex;
  overflow: hidden;
}

.tc-stat-barra-seg--ok {
  background: var(--tc-success, #16a34a);
}

.tc-stat-barra-seg--aviso {
  background: var(--tc-warning, #eab308);
}

.tc-stat-barra-seg--peligro {
  background: var(--tc-danger, #ef4444);
}

.tc-stat--compact {
  gap: 1px;
  padding: 9px 12px;
}

.tc-stat--compact .tc-stat-value {
  font-size: 1.15rem;
}

.tc-stat-row {
  gap: var(--tc-space-3);
  margin-bottom: var(--tc-space-5);
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  display: grid;
}

.tc-tabs {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  margin-bottom: var(--tc-space-5);
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  gap: 0;
  display: flex;
  overflow-x: auto;
}

.tc-tabs::-webkit-scrollbar {
  height: 4px;
}

.tc-tabs::-webkit-scrollbar-thumb {
  background: var(--admin-border, #e2e8f0);
  border-radius: 2px;
}

.tc-tab {
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
  cursor: pointer;
  white-space: nowrap;
  background: none;
  border: none;
  border-bottom: 2px solid #0000;
  padding: .65rem 1rem;
  font-weight: 500;
  transition: color .15s, border-color .15s;
}

.tc-tab:hover {
  color: var(--admin-text, #1e293b);
}

.tc-tab--active {
  color: var(--admin-primary, #2563eb);
  border-bottom-color: var(--admin-primary, #2563eb);
  font-weight: 600;
}

.tc-tab-badge {
  background: var(--admin-bg);
  min-width: 18px;
  height: 18px;
  color: var(--admin-text-muted, #64748b);
  border-radius: 9px;
  justify-content: center;
  align-items: center;
  margin-left: 6px;
  padding: 0 5px;
  font-size: .65rem;
  font-weight: 700;
  display: inline-flex;
}

.tc-tab--active .tc-tab-badge {
  background: var(--tc-info-bg);
  color: var(--tc-info-text);
}

.tc-tab-icon {
  vertical-align: -2px;
  color: currentColor;
  align-items: center;
  margin-right: 6px;
  display: inline-flex;
}

.tc-tab-group-sep {
  background: var(--admin-border, #e2e8f0);
  flex-shrink: 0;
  align-self: center;
  width: 1px;
  height: 1.15rem;
  margin: 0 .4rem;
  display: inline-block;
}

.tc-detail-hero {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-xl);
  margin-bottom: var(--tc-space-5);
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1.5rem;
  padding: 1.5rem 1.75rem;
  display: flex;
}

.tc-detail-hero-left {
  gap: var(--tc-space-2);
  flex-direction: column;
  display: flex;
}

.tc-detail-hero-title {
  align-items: center;
  gap: var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-detail-hero-title h1 {
  font-size: var(--tc-text-3xl);
  letter-spacing: -.02em;
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 700;
}

.tc-detail-hero-subtitle {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
}

.tc-detail-hero-meta {
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-top: .15rem;
  display: flex;
}

.tc-detail-hero-meta span {
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
  align-items: center;
  gap: 4px;
  display: inline-flex;
}

.tc-detail-hero-actions {
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  flex-shrink: 0;
  align-items: center;
  display: flex;
}

.tc-hero-recursos {
  flex-wrap: wrap;
  align-items: center;
  gap: 1.25rem;
  margin-top: .35rem;
  display: flex;
}

.tc-hero-recurso {
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-base);
  align-items: baseline;
  gap: 5px;
  display: inline-flex;
}

.tc-hero-recurso svg {
  color: var(--admin-text-hint, #94a3b8);
  align-self: center;
}

.tc-hero-recurso-valor {
  color: var(--admin-text, #1e293b);
  font-variant-numeric: tabular-nums;
  font-size: 1.05rem;
  font-weight: 700;
}

.tc-hero-recurso-valor--ok {
  color: var(--tc-success);
}

.tc-hero-recurso-valor--warning {
  color: var(--tc-warning);
}

.tc-hero-recurso-valor--danger {
  color: var(--tc-danger);
}

.tc-hero-recurso-label {
  text-transform: uppercase;
  letter-spacing: .03em;
  font-size: 10.5px;
}

.tc-hero-frescura {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  margin-top: .35rem;
  display: flex;
}

.tc-hero-frescura-sep {
  color: var(--admin-text-hint, #94a3b8);
}

.tc-detail-hero--router {
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

.tc-router-hero-top {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1.5rem;
  width: 100%;
  display: flex;
}

.tc-router-hero {
  flex-direction: column;
  flex: 420px;
  min-width: 0;
  display: flex;
}

.tc-router-hero-zona {
  gap: var(--tc-space-2);
  flex-direction: column;
  min-width: 0;
  display: flex;
}

.tc-router-hero-zona--sep {
  margin-top: 1.1rem;
}

.tc-router-hero-zona-head {
  flex-wrap: wrap;
  align-items: center;
  gap: .6rem;
  min-width: 0;
  display: flex;
}

.tc-router-hero-zona-head .tc-hero-frescura {
  margin-top: 0;
}

.tc-router-hero-zona-label {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--admin-text-hint, #94a3b8);
  margin: 0;
  font-weight: 700;
}

.tc-router-kpis {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
  width: 100%;
  display: grid;
}

.tc-router-kpi {
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  display: flex;
}

.tc-router-kpi--link {
  color: inherit;
  border-radius: var(--tc-radius);
  margin: -4px -8px;
  padding: 4px 8px;
  text-decoration: none;
  transition: background .12s;
}

.tc-router-kpi--link:hover {
  background: var(--admin-bg, #f8fafc);
}

.tc-router-kpi-label {
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--admin-text-muted, #64748b);
  align-items: center;
  gap: 6px;
  font-size: 10.5px;
  font-weight: 600;
  display: flex;
}

.tc-router-kpi-icon {
  opacity: .7;
  width: 14px;
  height: 14px;
  display: inline-flex;
}

.tc-router-kpi-valor {
  color: var(--admin-text, #1e293b);
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.15;
}

.tc-router-kpi-valor--warn {
  color: var(--tc-warning);
}

.tc-router-kpi-valor--danger {
  color: var(--tc-danger);
}

.tc-router-kpi-valor--success {
  color: var(--tc-success);
}

.tc-router-kpi-sub {
  color: var(--admin-text-muted, #64748b);
  font-size: 11px;
}

@media (max-width: 1024px) {
  .tc-router-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .tc-router-kpis {
    grid-template-columns: 1fr;
  }
}

.tc-hist-filtros {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  padding: 12px 14px;
}

.tc-detail-grid {
  gap: var(--tc-space-5);
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  align-items: start;
  display: grid;
}

.tc-detail-col {
  gap: var(--tc-space-5);
  flex-direction: column;
  display: flex;
}

.tc-ticket-surface {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-xl);
}

.tc-ticket-header {
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--tc-space-4);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  flex-wrap: wrap;
  padding: 1.25rem 1.5rem;
  display: flex;
}

.tc-ticket-header-left {
  gap: var(--tc-space-2);
  flex-direction: column;
  min-width: 0;
  display: flex;
}

.tc-ticket-header-title {
  align-items: center;
  gap: var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-ticket-header-title h1 {
  font-size: var(--tc-text-2xl);
  letter-spacing: -.02em;
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 700;
}

.tc-ticket-header-subtitle {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
}

.tc-ticket-header-actions {
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  min-width: 0;
  max-width: 100%;
  display: flex;
}

.tc-ticket-facts {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  grid-template-columns: repeat(4, 1fr);
  display: grid;
}

.tc-ticket-fact {
  border-right: 1px solid var(--admin-border, #e2e8f0);
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  min-width: 0;
  padding: .7rem 1.25rem;
  display: flex;
}

.tc-ticket-fact:last-child {
  border-right: none;
}

.tc-ticket-fact-label {
  font-size: var(--tc-text-xs);
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--admin-text-muted, #64748b);
  align-items: center;
  gap: 4px;
  font-weight: 700;
  display: inline-flex;
}

.tc-ticket-fact-value {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
  overflow: hidden;
}

.tc-ticket-fact-value--clock {
  white-space: normal;
  font-size: 1.05rem;
  font-weight: 700;
}

.tc-ticket-fact-sub {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.tc-ticket-fact--neutro {
  background: var(--admin-table-header, #f8fafc);
}

.tc-ticket-fact--sla-verde {
  background: var(--tc-success-bg);
}

.tc-ticket-fact--sla-amarilla {
  background: var(--tc-warning-bg);
}

.tc-ticket-fact--sla-roja {
  background: var(--tc-danger-bg);
}

.tc-ticket-fact--resuelto {
  background: var(--tc-success-bg);
}

.admin-shell[data-theme="dark"] .admin-content .tc-ticket-fact--sla-verde, .admin-shell[data-theme="dark"] .admin-content .tc-ticket-fact--resuelto {
  background: #22c55e33;
}

.admin-shell[data-theme="dark"] .admin-content .tc-ticket-fact--sla-amarilla {
  background: #eab30833;
}

.admin-shell[data-theme="dark"] .admin-content .tc-ticket-fact--sla-roja {
  background: #ef444433;
}

.tc-ticket-report {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-table-header, #f8fafc);
  padding: 1rem 1.5rem;
}

.tc-ticket-report-label {
  font-size: var(--tc-text-xs);
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--admin-text-muted, #64748b);
  margin-bottom: .4rem;
  font-weight: 700;
}

.admin-shell[data-theme="dark"] .admin-content .tc-ticket-report, .admin-shell[data-theme="dark"] .admin-content .tc-ticket-fact--neutro {
  background: #ffffff0a;
}

.tc-ticket-tabbar .tc-tabs {
  margin-bottom: 0;
  padding: 0 1.5rem;
}

.tc-ticket-tabpanel {
  padding: 1rem 1.5rem;
}

.tc-ticket-tabpanel-head {
  margin-bottom: var(--tc-space-3);
  justify-content: flex-end;
  padding-right: 64px;
  display: flex;
}

.tc-ticket-composer {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  padding: 1rem calc(1.5rem + 64px) 1rem 1.5rem;
}

@media (max-width: 1024px) {
  .tc-ticket-facts {
    grid-template-columns: repeat(2, 1fr);
  }

  .tc-ticket-fact:nth-child(2) {
    border-right: none;
  }

  .tc-ticket-fact:nth-child(3), .tc-ticket-fact:nth-child(4) {
    border-top: 1px solid var(--admin-border, #e2e8f0);
  }
}

@media (max-width: 640px) {
  .tc-ticket-header {
    flex-direction: column;
    align-items: stretch;
  }

  .tc-ticket-header-actions {
    width: 100%;
  }

  .tc-ticket-facts {
    grid-template-columns: 1fr;
  }

  .tc-ticket-fact {
    border-right: none;
    border-top: 1px solid var(--admin-border, #e2e8f0);
  }

  .tc-ticket-fact:first-child {
    border-top: none;
  }
}

.tc-banner {
  margin-bottom: var(--tc-space-5);
  border-radius: var(--tc-radius-lg);
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding: 12px 18px;
  text-decoration: none;
  display: flex;
}

.tc-banner--success {
  background: linear-gradient(90deg, #ecfdf5 0%, #f0fdf4 100%);
  border: 1px solid #86efac;
}

.tc-banner--danger {
  background: #fff5f5;
  border: 1px solid #fecaca;
}

.tc-banner--info {
  background: linear-gradient(90deg, #eff6ff 0%, #dbeafe 100%);
  border: 1px solid #93c5fd;
}

.tc-banner--warning {
  background: var(--tc-warning-bg);
  border: 1px solid var(--tc-warning);
  border-left: 4px solid var(--tc-warning);
  color: var(--tc-warning-text);
}

@media (max-width: 768px) {
  .tc-detail-grid {
    grid-template-columns: 1fr;
  }

  .tc-detail-hero {
    flex-direction: column;
  }

  .tc-field-grid {
    grid-template-columns: 1fr;
  }
}

.admin-shell[data-theme="light"] {
  --tc-preview-wa-fondo: #e5ddd5;
  --tc-preview-wa-burbuja: #d9fdd3;
  --tc-preview-wa-texto: #111b21;
  --tc-preview-wa-meta: #667781;
  --tc-preview-wa-pie-texto: #4a5c66;
  --tc-preview-wa-check: #53bdeb;
  --tc-preview-wa-boton-texto: #2563eb;
  --tc-preview-sms-fondo: #f1f5f9;
  --tc-preview-sms-burbuja: #fff;
  --tc-preview-sms-texto: #0f172a;
  --tc-preview-correo-cabecera: #f8fafc;
  --tc-preview-correo-fondo: #fff;
  --tc-preview-wa-sombra: #0000001f;
  --tc-preview-token-bg: var(--tc-warning-bg);
  --tc-preview-token-text: var(--tc-warning-text);
}

.admin-shell[data-theme="dark"] {
  --tc-preview-wa-fondo: #0b141a;
  --tc-preview-wa-burbuja: #005c4b;
  --tc-preview-wa-texto: #e9edef;
  --tc-preview-wa-meta: #8696a0;
  --tc-preview-wa-pie-texto: #c3ced4;
  --tc-preview-wa-check: #53bdeb;
  --tc-preview-wa-boton-texto: #8fd4ff;
  --tc-preview-sms-fondo: #1e293b;
  --tc-preview-sms-burbuja: #334155;
  --tc-preview-sms-texto: #e2e8f0;
  --tc-preview-correo-cabecera: #1e293b;
  --tc-preview-correo-fondo: #fff;
  --tc-preview-wa-sombra: #0000001f;
  --tc-preview-token-bg: #eab30840;
  --tc-preview-token-text: #fde68a;
}

.tc-preview {
  border-radius: var(--tc-radius-lg);
  overflow: hidden;
}

.tc-preview--whatsapp {
  background: var(--tc-preview-wa-fondo);
  padding: var(--tc-space-4);
  align-items: flex-end;
  gap: var(--tc-space-1);
  flex-direction: column;
  min-height: 120px;
  display: flex;
}

.tc-preview-wa-burbuja {
  background: var(--tc-preview-wa-burbuja);
  max-width: 78%;
  color: var(--tc-preview-wa-texto);
  border-radius: var(--tc-radius) var(--tc-radius) 0 var(--tc-radius);
  padding: var(--tc-space-2) var(--tc-space-3);
  font-size: var(--tc-text-base);
  white-space: pre-wrap;
  word-break: break-word;
  box-shadow: 0 1px 2px var(--tc-preview-wa-sombra);
  line-height: 1.45;
  position: relative;
}

.tc-preview-wa-burbuja code {
  background: #00000014;
  border-radius: 4px;
  padding: 1px 4px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .9em;
}

.tc-preview-wa-encabezado {
  margin-bottom: var(--tc-space-1);
  font-weight: 700;
}

.tc-preview-wa-pie {
  color: var(--tc-preview-wa-pie-texto);
  font-size: var(--tc-text-xs);
  margin-top: var(--tc-space-1);
}

.tc-preview-wa-meta {
  align-items: center;
  gap: var(--tc-space-1);
  margin-top: var(--tc-space-1);
  font-size: var(--tc-text-xs);
  color: var(--tc-preview-wa-meta);
  justify-content: flex-end;
  display: flex;
}

.tc-preview-wa-check {
  color: var(--tc-preview-wa-check);
}

.tc-preview-wa-botones {
  flex-direction: column;
  gap: 2px;
  min-width: 40%;
  max-width: 78%;
  margin-top: 2px;
  display: flex;
}

.tc-preview-wa-boton {
  background: var(--admin-card-bg);
  border-radius: var(--tc-radius-sm);
  padding: var(--tc-space-2);
  text-align: center;
  font-size: var(--tc-text-sm);
  color: var(--tc-preview-wa-boton-texto);
}

.tc-preview--sms {
  background: var(--tc-preview-sms-fondo);
  padding: var(--tc-space-4);
  min-height: 100px;
}

.tc-preview-sms-burbuja {
  background: var(--tc-preview-sms-burbuja);
  max-width: 300px;
  color: var(--tc-preview-sms-texto);
  border-radius: var(--tc-radius-lg);
  padding: var(--tc-space-3);
  font-size: var(--tc-text-base);
  white-space: pre-wrap;
  word-break: break-word;
  line-height: 1.5;
}

.tc-preview-sms-conteo {
  margin-top: var(--tc-space-2);
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
}

.tc-preview--correo {
  border: 1px solid var(--admin-border);
}

.tc-preview-correo-cabecera {
  background: var(--tc-preview-correo-cabecera);
  border-bottom: 1px solid var(--admin-border);
  padding: var(--tc-space-4);
  font-size: var(--tc-text-sm);
  gap: var(--tc-space-1);
  display: grid;
}

.tc-preview-correo-asunto {
  margin: 0 0 var(--tc-space-2);
  font-size: var(--tc-text-lg);
  color: var(--admin-text);
  font-weight: 700;
}

.tc-preview-correo-campo {
  color: var(--admin-text-muted);
  align-items: center;
  gap: var(--tc-space-1);
  display: flex;
}

.tc-preview-correo-campo strong {
  color: var(--admin-text);
  font-weight: 600;
}

.tc-preview-correo-cuerpo {
  background: var(--tc-preview-correo-fondo);
  border: 0;
  width: 100%;
  min-height: 320px;
}

.tc-preview-token {
  background: var(--tc-preview-token-bg);
  color: var(--tc-preview-token-text);
  border-radius: var(--tc-radius-sm);
  padding: 0 4px;
  font-family: monospace;
  font-size: .95em;
}

@media (max-width: 640px) {
  .tc-preview-wa-burbuja, .tc-preview-sms-burbuja, .tc-preview-wa-botones {
    max-width: 100%;
  }
}

.tc-editable-value {
  cursor: pointer;
  border-bottom: 1px dashed var(--admin-text-muted, #64748b);
  font-weight: 600;
}

.tc-inline-edit {
  align-items: center;
  gap: var(--tc-space-1);
  display: inline-flex;
}

.tc-inline-edit-input {
  text-align: center;
  width: 70px;
  padding: var(--tc-space-1) var(--tc-space-2);
  font-size: var(--tc-text-sm);
}

.tc-empty-hint {
  padding: var(--tc-space-6);
  text-align: center;
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-sm);
}

.tc-selected-material {
  padding: var(--tc-space-4);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  margin-top: var(--tc-space-3);
}

.tc-onu-panel {
  gap: var(--tc-space-3);
  flex-direction: column;
  display: flex;
}

.tc-onu-header {
  align-items: center;
  gap: var(--tc-space-2);
  padding-bottom: var(--tc-space-2);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  display: flex;
}

.tc-onu-serial {
  font-size: var(--tc-text-lg);
  color: var(--admin-text, #1e293b);
  letter-spacing: .02em;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 800;
}

.tc-onu-modelo {
  color: #0284c7;
  letter-spacing: .01em;
  background: #0ea5e91a;
  border-radius: 5px;
  padding: 3px 10px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .68rem;
  font-weight: 700;
}

.tc-onu-bandas {
  background: var(--tc-info-bg, #eff6ff);
  color: var(--tc-info-text, #1e40af);
  border-radius: 5px;
  align-items: center;
  gap: 3px;
  padding: 2px 7px;
  font-size: .62rem;
  font-weight: 600;
  display: inline-flex;
}

.tc-onu-refresh-btn {
  border-radius: var(--tc-radius-sm);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  cursor: pointer;
  color: var(--admin-text-muted, #64748b);
  align-items: center;
  gap: 4px;
  margin-left: auto;
  padding: 4px 10px;
  font-size: .65rem;
  font-weight: 600;
  transition: background .15s, color .15s;
  display: flex;
}

.tc-onu-refresh-btn:hover {
  background: var(--tc-neutral-bg, #f1f5f9);
}

.tc-onu-refresh-btn--loading {
  cursor: wait;
  color: var(--admin-primary, #2563eb);
}

.tc-onu-refresh-btn--loading svg {
  animation: 1s linear infinite tcOnuSpin;
}

.tc-onu-status {
  align-items: center;
  gap: var(--tc-space-2);
  border-radius: var(--tc-radius);
  border: 1px solid #0000;
  padding: .4rem .75rem;
  display: flex;
}

.tc-onu-status--online {
  background: var(--tc-success-bg);
  border-color: var(--tc-success-bg);
}

.tc-onu-status--offline {
  background: var(--tc-danger-bg);
  border-color: var(--tc-danger-bg);
}

.tc-onu-status--disabled {
  background: var(--tc-warning-bg);
  border-color: var(--tc-warning-bg);
}

.tc-onu-status-dot {
  border-radius: 50%;
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  animation: 2s ease-in-out infinite tcOnuPulse;
}

.tc-onu-status--online .tc-onu-status-dot {
  background: var(--tc-success);
  box-shadow: 0 0 0 3px #22c55e33;
}

.tc-onu-status--offline .tc-onu-status-dot {
  background: var(--tc-danger);
  box-shadow: 0 0 0 3px #ef444433;
}

.tc-onu-status--disabled .tc-onu-status-dot {
  background: var(--tc-warning);
  box-shadow: 0 0 0 3px #f59e0b33;
}

@keyframes tcOnuPulse {
  0%, 100% {
    opacity: 1;
  }

  50% {
    opacity: .5;
  }
}

.tc-onu-status-label {
  font-size: var(--tc-text-sm);
  font-weight: 700;
}

.tc-onu-status--online .tc-onu-status-label {
  color: var(--tc-success-text);
}

.tc-onu-status--offline .tc-onu-status-label {
  color: var(--tc-danger-text);
}

.tc-onu-status--disabled .tc-onu-status-label {
  color: var(--tc-warning-text);
}

.tc-onu-status-time {
  opacity: .7;
  font-size: .72rem;
}

.tc-onu-status--online .tc-onu-status-time {
  color: var(--tc-success-text);
}

.tc-onu-status--offline .tc-onu-status-time {
  color: var(--tc-danger);
}

.tc-onu-status--disabled .tc-onu-status-time {
  color: var(--tc-warning-text);
}

.tc-onu-status-uptime {
  color: var(--tc-success-text);
  margin-left: auto;
  font-size: .72rem;
  font-weight: 600;
}

.tc-onu-status-hero {
  align-items: center;
  gap: var(--tc-space-3);
  border-radius: var(--tc-radius);
  border: 1px solid #0000;
  padding: .75rem 1rem;
  display: flex;
}

.tc-onu-status--online.tc-onu-status-hero {
  background: var(--tc-success-bg);
  border-color: var(--tc-success-bg);
}

.tc-onu-status--offline.tc-onu-status-hero {
  background: var(--tc-danger-bg);
  border-color: var(--tc-danger-bg);
}

.tc-onu-status--disabled.tc-onu-status-hero {
  background: var(--tc-warning-bg);
  border-color: var(--tc-warning-bg);
}

.tc-onu-status-hero-dot {
  border-radius: 50%;
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  animation: 2s ease-in-out infinite tcOnuPulse;
}

.tc-onu-status--online .tc-onu-status-hero-dot {
  background: var(--tc-success);
  box-shadow: 0 0 0 4px #22c55e33;
}

.tc-onu-status--offline .tc-onu-status-hero-dot {
  background: var(--tc-danger);
  box-shadow: 0 0 0 4px #ef444433;
}

.tc-onu-status--disabled .tc-onu-status-hero-dot {
  background: var(--tc-warning);
  box-shadow: 0 0 0 4px #f59e0b33;
}

.tc-onu-status--onu {
  background: var(--tc-ftth-sit-fondo);
  border-color: #0000;
}

.tc-onu-status--onu .tc-onu-status-hero-icono {
  color: var(--tc-ftth-sit-solido);
  flex-shrink: 0;
}

.tc-onu-status--onu .tc-onu-status-hero-label {
  color: var(--tc-ftth-sit-texto);
}

.tc-onu-status--onu .tc-onu-status-hero-time {
  color: var(--tc-ftth-sit-texto);
  opacity: .85;
}

.tc-onu-status--onu.tc-estado-onu--neutro .tc-onu-status-hero-icono {
  color: var(--tc-ftth-sit-texto);
}

.tc-onu-status-hero-body {
  flex-direction: column;
  gap: 2px;
  display: flex;
}

.tc-onu-status-hero-label {
  font-size: var(--tc-text-base);
  font-weight: 700;
}

.tc-onu-status--online .tc-onu-status-hero-label {
  color: var(--tc-success-text);
}

.tc-onu-status--offline .tc-onu-status-hero-label {
  color: var(--tc-danger-text);
}

.tc-onu-status--disabled .tc-onu-status-hero-label {
  color: var(--tc-warning-text);
}

.tc-onu-status-hero-time {
  opacity: .75;
  font-size: .72rem;
}

.tc-onu-status--online .tc-onu-status-hero-time {
  color: var(--tc-success-text);
}

.tc-onu-status--offline .tc-onu-status-hero-time {
  color: var(--tc-danger-text);
}

.tc-onu-status--disabled .tc-onu-status-hero-time {
  color: var(--tc-warning-text);
}

.tc-onu-rx-row {
  align-items: center;
  gap: var(--tc-space-2);
  padding: .35rem 0;
  display: flex;
}

.tc-onu-rx-row-label {
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--admin-text-muted, #64748b);
  min-width: 24px;
  font-size: .72rem;
  font-weight: 700;
}

.tc-onu-rx-badge {
  font-size: var(--tc-text-sm);
  border-radius: var(--tc-radius-sm);
  letter-spacing: .02em;
  padding: 3px 10px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 700;
}

.tc-onu-rx-badge--ok {
  background: var(--tc-success-bg);
  color: var(--tc-success-text);
}

.tc-onu-rx-badge--warn {
  background: var(--tc-warning-bg);
  color: var(--tc-warning-text);
}

.tc-onu-rx-badge--crit {
  background: var(--tc-danger-bg);
  color: var(--tc-danger-text);
}

.tc-onu-rx-badge--none {
  background: var(--tc-neutral-bg, #f1f5f9);
  color: var(--tc-neutral-text, #475569);
}

.tc-onu-rx-row-refreshing {
  color: var(--admin-text-muted, #64748b);
  font-size: .65rem;
  font-style: italic;
}

.tc-onu-chips-row {
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-onu-chip--dist {
  border-radius: var(--tc-radius-sm);
  background: var(--tc-neutral-bg, #f1f5f9);
  color: var(--tc-neutral-text, #475569);
  padding: 2px 8px;
  font-size: .68rem;
  font-weight: 600;
}

.tc-onu-tr069-chip {
  border-radius: var(--tc-radius-sm);
  letter-spacing: .02em;
  padding: 2px 7px;
  font-size: .62rem;
  font-weight: 700;
}

.tc-onu-tr069-chip--on {
  background: var(--tc-success-bg);
  color: var(--tc-success-text);
}

.tc-onu-tr069-chip--off {
  background: var(--tc-neutral-bg, #f1f5f9);
  color: var(--tc-neutral-text, #475569);
}

.tc-onu-show-more {
  text-align: center;
  width: 100%;
  color: var(--admin-primary, #2563eb);
  cursor: pointer;
  opacity: .75;
  background: none;
  border: none;
  padding: .35rem 0 .1rem;
  font-size: .72rem;
  font-weight: 600;
  transition: opacity .15s;
  display: block;
}

.tc-onu-show-more:hover {
  opacity: 1;
}

.tc-onu-info-grid {
  background: var(--admin-bg, #f8fafc);
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  grid-template-columns: 1.5fr .7fr .7fr 1.8fr .8fr;
  gap: 0;
  display: grid;
  overflow: hidden;
}

.tc-onu-info-cell {
  border-right: 1px solid var(--admin-border, #e2e8f0);
  padding: .55rem .75rem;
}

.tc-onu-info-cell:last-child {
  border-right: none;
}

.tc-onu-info-cell-label {
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-primary, #2563eb);
  opacity: .65;
  margin-bottom: 2px;
  font-size: .58rem;
  font-weight: 700;
}

.tc-onu-info-cell-value {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  font-weight: 700;
  line-height: 1.3;
}

.tc-onu-info-cell-value--mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .72rem;
}

.tc-onu-meta-row {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-onu-meta-left {
  align-items: center;
  gap: var(--tc-space-2);
  display: flex;
}

.tc-onu-chip {
  border-radius: 5px;
  padding: 3px 10px;
  font-size: .68rem;
  font-weight: 700;
}

.tc-onu-chip--modo {
  background: var(--tc-info-bg, #eff6ff);
  color: var(--tc-info-text, #1e40af);
}

.tc-onu-chip--vlan {
  color: #7c3aed;
  background: #7c3aed14;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.tc-onu-last-event {
  background: var(--tc-warning-bg);
  border: 1px solid #fde68a;
  border-radius: 5px;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  font-size: .72rem;
  display: flex;
}

.tc-onu-last-event-cause {
  color: var(--tc-warning-text);
  font-weight: 700;
}

.tc-onu-last-event-time {
  color: var(--tc-warning-text);
  opacity: .8;
}

.tc-onu-signal {
  transition: opacity .3s;
}

.tc-onu-signal--refreshing {
  animation: 1.5s ease-in-out infinite tcOnuSkeletonPulse;
}

@keyframes tcOnuSkeletonPulse {
  0%, 100% {
    opacity: 1;
  }

  50% {
    opacity: .4;
  }
}

.tc-onu-signal-main {
  gap: var(--tc-space-4);
  margin-bottom: var(--tc-space-2);
  display: flex;
}

.tc-onu-signal-metric {
  border-radius: var(--tc-radius);
  flex: 1;
  align-items: center;
  gap: 10px;
  padding: .5rem .75rem;
  display: flex;
}

.tc-onu-signal-metric--ok {
  background: var(--tc-success-bg);
}

.tc-onu-signal-metric--warn {
  background: var(--tc-warning-bg);
}

.tc-onu-signal-metric--crit {
  background: var(--tc-danger-bg);
}

.tc-onu-signal-metric--none {
  background: var(--admin-bg, #f8fafc);
}

.tc-onu-signal-dot {
  border-radius: 50%;
  flex-shrink: 0;
  width: 8px;
  height: 8px;
}

.tc-onu-signal-metric--ok .tc-onu-signal-dot {
  background: var(--tc-success);
}

.tc-onu-signal-metric--warn .tc-onu-signal-dot {
  background: var(--tc-warning);
}

.tc-onu-signal-metric--crit .tc-onu-signal-dot {
  background: var(--tc-danger);
}

.tc-onu-signal-metric--none .tc-onu-signal-dot {
  background: var(--admin-text-muted, #94a3b8);
}

.tc-onu-signal-info {
  flex: 1;
  min-width: 0;
}

.tc-onu-signal-label {
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted, #64748b);
  font-size: .6rem;
  font-weight: 700;
}

.tc-onu-signal-label-sub {
  text-transform: none;
  font-weight: 400;
}

.tc-onu-signal-value {
  font-size: 1.1rem;
  font-weight: 800;
  line-height: 1.2;
}

.tc-onu-signal-metric--ok .tc-onu-signal-value {
  color: var(--tc-success-text);
}

.tc-onu-signal-metric--warn .tc-onu-signal-value {
  color: var(--tc-warning-text);
}

.tc-onu-signal-metric--crit .tc-onu-signal-value {
  color: var(--tc-danger);
}

.tc-onu-signal-metric--none .tc-onu-signal-value {
  color: var(--admin-text-muted, #64748b);
}

.tc-onu-signal-secondary {
  gap: var(--tc-space-2);
  display: flex;
}

.tc-onu-signal-mini {
  text-align: center;
  border-radius: var(--tc-radius-sm);
  background: var(--admin-bg, #f8fafc);
  flex: 1;
  padding: .3rem .4rem;
}

.tc-onu-signal-mini-label {
  text-transform: uppercase;
  color: var(--admin-text-muted, #94a3b8);
  font-size: .55rem;
  font-weight: 600;
}

.tc-onu-signal-mini-value {
  font-size: .78rem;
  font-weight: 700;
}

.tc-onu-signal-mini--ok .tc-onu-signal-mini-value {
  color: var(--tc-success-text);
}

.tc-onu-signal-mini--warn .tc-onu-signal-mini-value {
  color: var(--tc-warning-text);
}

.tc-onu-signal-mini--crit .tc-onu-signal-mini-value {
  color: var(--tc-danger);
}

.tc-onu-signal-mini--none .tc-onu-signal-mini-value {
  color: var(--admin-text-muted, #64748b);
}

.tc-onu-signal-footer {
  margin-top: var(--tc-space-2);
  justify-content: flex-end;
  align-items: center;
  gap: 5px;
  display: flex;
}

.tc-onu-signal-footer-dot {
  background: var(--tc-success);
  border-radius: 50%;
  width: 5px;
  height: 5px;
  animation: 2s ease-in-out infinite tcOnuPulse;
}

.tc-onu-signal-footer-text {
  color: var(--admin-text-muted, #64748b);
  font-size: .6rem;
}

.tc-onu-ports {
  align-items: flex-end;
  gap: var(--tc-space-3);
  background: var(--admin-bg, #f8fafc);
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  padding: .5rem .75rem;
  display: flex;
}

.tc-onu-ports-label {
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-primary, #2563eb);
  opacity: .65;
  margin-right: var(--tc-space-1);
  align-self: center;
  font-size: .58rem;
  font-weight: 700;
}

.tc-onu-port {
  cursor: default;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  display: flex;
}

.tc-onu-port-icon {
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 22px;
  display: flex;
}

.tc-onu-port-icon--up svg {
  color: var(--tc-success);
}

.tc-onu-port-icon--down svg {
  color: var(--admin-text-muted, #cbd5e1);
}

.tc-onu-port-name {
  color: var(--admin-text-muted, #94a3b8);
  text-transform: uppercase;
  font-size: .55rem;
  font-weight: 700;
}

.tc-onu-port-speed {
  color: var(--tc-success-text);
  font-size: .55rem;
  font-weight: 700;
}

.tc-onu-port-speed--none {
  color: #0000;
}

.tc-onu-ports--skeleton .tc-onu-port-icon, .tc-onu-ports--skeleton .tc-onu-port-name, .tc-onu-ports--skeleton .tc-onu-port-speed {
  background: var(--admin-border, #e2e8f0);
  border-radius: 3px;
  animation: 1.5s ease-in-out infinite tcOnuSkeletonPulse;
}

.tc-onu-ports--skeleton .tc-onu-port-icon svg {
  visibility: hidden;
}

.tc-onu-ports--skeleton .tc-onu-port-name {
  color: #0000;
  width: 28px;
  height: 8px;
}

.tc-onu-ports--skeleton .tc-onu-port-speed {
  color: #0000;
  width: 32px;
  height: 8px;
}

.tc-medidor {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
  padding: var(--tc-space-4) var(--tc-space-5);
  position: relative;
}

.tc-medidor--beat {
  animation: 1s ease-out infinite tc-medidor-beat;
}

@keyframes tc-medidor-beat {
  0% {
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--tc-success) 45%, transparent);
  }

  70% {
    box-shadow: 0 0 0 10px color-mix(in srgb, var(--tc-success) 0%, transparent);
  }

  100% {
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--tc-success) 0%, transparent);
  }
}

@media (prefers-reduced-motion: reduce) {
  .tc-medidor--beat {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--tc-success) 50%, transparent);
    animation: none;
  }
}

.tc-medidor--atenuado .tc-medidor-num, .tc-medidor--atenuado .tc-medidor-track, .tc-medidor--atenuado .tc-medidor-axis {
  opacity: .55;
}

.tc-medidor-top {
  align-items: center;
  gap: var(--tc-space-2);
  margin-bottom: var(--tc-space-3);
  display: flex;
}

.tc-medidor-label {
  font-size: var(--tc-text-xs);
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--admin-text-muted, #8b8d98);
  margin: 0;
  font-weight: 600;
}

.tc-medidor-pill {
  font-size: var(--tc-text-xs);
  border-radius: 999px;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  padding: 4px 11px;
  font-weight: 600;
  display: inline-flex;
}

.tc-medidor-pill-dot {
  background: currentColor;
  border-radius: 50%;
  width: 7px;
  height: 7px;
}

.tc-medidor-pill--ok {
  color: var(--tc-success);
  background: var(--tc-success-bg);
}

.tc-medidor-pill--warn {
  color: var(--tc-warning-text);
  background: var(--tc-warning-bg);
}

.tc-medidor-pill--crit {
  color: var(--tc-danger);
  background: var(--tc-danger-bg);
}

.tc-medidor-pill--none {
  color: var(--admin-text-muted, #8b8d98);
  background: var(--admin-bg);
}

.tc-medidor-num {
  margin-bottom: var(--tc-space-4);
  align-items: baseline;
  gap: 6px;
  display: flex;
}

.tc-medidor-value {
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
  font-size: 1.85rem;
  font-weight: 750;
  line-height: .9;
}

.tc-medidor-value--ok {
  color: var(--tc-success);
}

.tc-medidor-value--warn {
  color: var(--tc-warning-text);
}

.tc-medidor-value--crit {
  color: var(--tc-danger);
}

.tc-medidor-value--none {
  color: var(--admin-text-muted, #94a3b8);
}

.tc-medidor-unit {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #8b8d98);
}

.tc-medidor-track {
  cursor: crosshair;
  border-radius: 999px;
  height: 16px;
  display: flex;
  position: relative;
  overflow: hidden;
}

.tc-medidor-zona {
  height: 100%;
}

.tc-medidor-zona--crit {
  background: var(--tc-danger);
}

.tc-medidor-zona--warn {
  background: var(--tc-warning);
}

.tc-medidor-zona--ok {
  background: var(--tc-success);
}

.tc-medidor-umbral-tick {
  pointer-events: none;
  z-index: 1;
  width: 2px;
  position: absolute;
  top: 0;
  bottom: 0;
  transform: translateX(-50%);
}

.tc-medidor-umbral-tick--crit {
  background: color-mix(in srgb, var(--tc-danger) 70%, black 30%);
}

.tc-medidor-umbral-tick--warn {
  background: color-mix(in srgb, var(--tc-warning) 65%, black 35%);
}

.tc-medidor-marcador {
  background: var(--admin-card-bg, #fff);
  border: 3px solid var(--admin-text, #16181d);
  pointer-events: none;
  z-index: 2;
  border-radius: 50%;
  width: 15px;
  height: 15px;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 1px 5px #00000038;
}

.tc-medidor-tooltip {
  background: var(--admin-text, #16181d);
  color: var(--admin-card-bg, #fff);
  font-size: var(--tc-text-xs);
  border-radius: var(--tc-radius-sm);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  opacity: 0;
  pointer-events: none;
  margin-top: -34px;
  padding: 3px 8px;
  font-weight: 650;
  transition: opacity .12s;
  position: absolute;
  bottom: auto;
  transform: translateX(-50%);
}

.tc-medidor-tooltip--on {
  opacity: 1;
}

.tc-medidor-axis {
  height: 18px;
  margin-top: var(--tc-space-2);
  position: relative;
}

.tc-medidor-end {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #c2c4cd);
  position: absolute;
  top: 2px;
}

.tc-medidor-end--min {
  left: 0;
}

.tc-medidor-end--max {
  right: 0;
}

.tc-medidor-caption {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-4);
  margin: var(--tc-space-2) 0 0;
  font-size: var(--tc-text-sm);
  white-space: nowrap;
  font-weight: 600;
  display: flex;
}

.tc-medidor-caption-item {
  align-items: center;
  gap: 6px;
  display: inline-flex;
}

.tc-medidor-caption-dot {
  border-radius: 50%;
  flex: none;
  width: 8px;
  height: 8px;
}

.tc-medidor-caption-item--crit .tc-medidor-caption-dot {
  background: var(--tc-danger);
}

.tc-medidor-caption-item--warn .tc-medidor-caption-dot {
  background: var(--tc-warning);
}

.tc-medidor-caption-item--crit {
  color: var(--tc-danger-text);
}

.tc-medidor-caption-item--warn {
  color: color-mix(in srgb, var(--tc-warning-text) 100%, black 15%);
}

.tc-ftth-salud-identidad {
  align-items: center;
  gap: var(--tc-space-3);
  padding-bottom: var(--tc-space-4);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  flex-wrap: wrap;
  display: flex;
}

.tc-ftth-salud-dato {
  align-items: center;
  gap: var(--tc-space-1);
  display: inline-flex;
}

.tc-ftth-salud-dato-label {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #94a3b8);
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: 600;
}

.tc-ftth-salud-dato-valor {
  font-size: var(--tc-text-md);
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-ftth-salud-dato-valor--mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.tc-ftth-salud-copiar {
  color: var(--admin-primary, #2563eb);
  cursor: pointer;
  border-radius: var(--tc-radius-sm);
  background: none;
  border: none;
  justify-content: center;
  align-items: center;
  padding: 2px;
  display: inline-flex;
}

.tc-ftth-salud-copiar:hover {
  background: var(--tc-primary-bg);
}

.tc-ftth-salud-actualizado {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #94a3b8);
}

.tc-ftth-salud-tiempo-estado {
  font-size: var(--tc-text-lg);
  padding: 3px var(--tc-space-3);
  border-radius: var(--tc-radius);
  align-items: center;
  font-weight: 600;
  line-height: 1.3;
  display: inline-flex;
}

.tc-ftth-salud-tiempo-estado--success {
  background: var(--tc-success-bg);
  color: var(--tc-success-text);
}

.tc-ftth-salud-tiempo-estado--warning {
  background: var(--tc-warning-bg);
  color: var(--tc-warning-text);
}

.tc-ftth-salud-tiempo-estado--danger {
  background: var(--tc-danger-bg);
  color: var(--tc-danger-text);
}

.tc-ftth-salud-tiempo-estado--neutral {
  background: var(--admin-bg);
  color: var(--tc-neutral-text);
}

.admin-shell[data-theme="dark"] .admin-content .tc-ftth-salud-tiempo-estado--success {
  color: #4ade80;
  background: #22c55e2e;
}

.admin-shell[data-theme="dark"] .admin-content .tc-ftth-salud-tiempo-estado--warning {
  color: #facc15;
  background: #eab3082e;
}

.admin-shell[data-theme="dark"] .admin-content .tc-ftth-salud-tiempo-estado--danger {
  color: #f87171;
  background: #ef44442e;
}

.admin-shell[data-theme="dark"] .admin-content .tc-ftth-salud-tiempo-estado--neutral {
  color: #94a3b8;
  background: #ffffff14;
}

.tc-ftth-salud-acciones {
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  margin-left: auto;
  display: flex;
}

.tc-ftth-salud-veredicto {
  margin-top: var(--tc-space-4);
  width: auto;
  max-width: 100%;
  display: inline-flex;
}

.tc-ftth-situacion {
  margin-top: var(--tc-space-4);
  align-items: center;
  gap: var(--tc-space-4);
  padding: var(--tc-space-3) var(--tc-space-4);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  background: var(--tc-ftth-sit-fondo);
  max-width: 960px;
  display: flex;
}

.tc-ftth-situacion-icono {
  border-radius: var(--tc-radius);
  background: var(--tc-ftth-sit-solido);
  width: 56px;
  height: 56px;
  color: var(--admin-card-bg, #fff);
  flex: none;
  justify-content: center;
  align-items: center;
  display: inline-flex;
}

.tc-ftth-situacion-texto {
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  display: flex;
}

.tc-ftth-situacion-titulo {
  font-size: var(--tc-text-lg);
  color: var(--tc-ftth-sit-texto);
  margin: 0;
  font-weight: 700;
  line-height: 1.3;
}

.tc-ftth-situacion-desde {
  font-weight: 600;
}

.tc-ftth-situacion-detalle {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #0f172a);
  margin: 0;
  line-height: 1.4;
}

.tc-ftth-situacion-detalle--fuerte {
  font-weight: 600;
}

.tc-ftth-situacion-girando {
  animation: 1.6s linear infinite tc-ftth-situacion-giro;
}

@keyframes tc-ftth-situacion-giro {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .tc-ftth-situacion-girando {
    animation: none;
  }
}

.tc-ftth-situacion--info, .tc-estado-onu--info, .tc-onus-celda--onu-info {
  --tc-ftth-sit-solido: var(--tc-info, #3b82f6);
  --tc-ftth-sit-fondo: var(--tc-info-bg, #dbeafe);
  --tc-ftth-sit-texto: var(--tc-info-text, #1e40af);
}

.tc-ftth-situacion--turquesa, .tc-estado-onu--turquesa, .tc-onus-celda--onu-turquesa {
  --tc-ftth-sit-solido: #0d9488;
  --tc-ftth-sit-fondo: #ccfbf1;
  --tc-ftth-sit-texto: #115e59;
}

.tc-ftth-situacion--aviso, .tc-estado-onu--aviso, .tc-onus-celda--onu-aviso {
  --tc-ftth-sit-solido: #ca8a04;
  --tc-ftth-sit-fondo: var(--tc-warning-bg, #fef9c3);
  --tc-ftth-sit-texto: var(--tc-warning-text, #854d0e);
}

.tc-ftth-situacion--peligro, .tc-estado-onu--peligro, .tc-onus-celda--onu-peligro {
  --tc-ftth-sit-solido: var(--tc-danger, #ef4444);
  --tc-ftth-sit-fondo: var(--tc-danger-bg, #fee2e2);
  --tc-ftth-sit-texto: var(--tc-danger-text, #991b1b);
}

.tc-ftth-situacion--pizarra, .tc-estado-onu--pizarra, .tc-onus-celda--onu-pizarra {
  --tc-ftth-sit-solido: var(--tc-slate, #334155);
  --tc-ftth-sit-fondo: var(--tc-slate-bg, #e2e8f0);
  --tc-ftth-sit-texto: var(--tc-slate-text, #1e293b);
}

.tc-ftth-situacion--violeta, .tc-estado-onu--violeta, .tc-onus-celda--onu-violeta {
  --tc-ftth-sit-solido: var(--tc-violet, #7c3aed);
  --tc-ftth-sit-fondo: var(--tc-violet-bg, #ede9fe);
  --tc-ftth-sit-texto: var(--tc-violet-text, #5b21b6);
}

.tc-ftth-situacion--naranja, .tc-estado-onu--naranja, .tc-onus-celda--onu-naranja {
  --tc-ftth-sit-solido: var(--tc-orange, #ea580c);
  --tc-ftth-sit-fondo: var(--tc-orange-bg, #fff7ed);
  --tc-ftth-sit-texto: var(--tc-orange-text, #9a3412);
}

.tc-ftth-situacion--neutro, .tc-estado-onu--neutro, .tc-onus-celda--onu-neutro {
  --tc-ftth-sit-solido: transparent;
  --tc-ftth-sit-fondo: var(--tc-neutral-bg, #f1f5f9);
  --tc-ftth-sit-texto: var(--tc-neutral-text, #475569);
}

.tc-ftth-situacion--neutro .tc-ftth-situacion-icono {
  color: var(--tc-neutral-text, #475569);
  border: 2px dashed var(--admin-border, #cbd5e1);
}

.admin-shell[data-theme="dark"] .tc-ftth-situacion--info, .admin-shell[data-theme="dark"] .tc-estado-onu--info, .admin-shell[data-theme="dark"] .tc-onus-celda--onu-info {
  --tc-ftth-sit-solido: #60a5fa;
  --tc-ftth-sit-fondo: #3b82f62e;
  --tc-ftth-sit-texto: #93c5fd;
}

.admin-shell[data-theme="dark"] .tc-ftth-situacion--turquesa, .admin-shell[data-theme="dark"] .tc-estado-onu--turquesa, .admin-shell[data-theme="dark"] .tc-onus-celda--onu-turquesa {
  --tc-ftth-sit-solido: #2dd4bf;
  --tc-ftth-sit-fondo: #14b8a629;
  --tc-ftth-sit-texto: #5eead4;
}

.admin-shell[data-theme="dark"] .tc-ftth-situacion--aviso, .admin-shell[data-theme="dark"] .tc-estado-onu--aviso, .admin-shell[data-theme="dark"] .tc-onus-celda--onu-aviso {
  --tc-ftth-sit-solido: #facc15;
  --tc-ftth-sit-fondo: #eab30829;
  --tc-ftth-sit-texto: #fde047;
}

.admin-shell[data-theme="dark"] .tc-ftth-situacion--peligro, .admin-shell[data-theme="dark"] .tc-estado-onu--peligro, .admin-shell[data-theme="dark"] .tc-onus-celda--onu-peligro {
  --tc-ftth-sit-solido: #f87171;
  --tc-ftth-sit-fondo: #ef444429;
  --tc-ftth-sit-texto: #fca5a5;
}

.admin-shell[data-theme="dark"] .tc-ftth-situacion--neutro, .admin-shell[data-theme="dark"] .tc-estado-onu--neutro, .admin-shell[data-theme="dark"] .tc-onus-celda--onu-neutro {
  --tc-ftth-sit-fondo: #ffffff0f;
  --tc-ftth-sit-texto: #cbd5e1;
}

.admin-shell[data-theme="dark"] .tc-ftth-situacion--neutro .tc-ftth-situacion-icono {
  color: var(--admin-text-muted, #94a3b8);
}

.tc-estado-onu--exito, .tc-onus-celda--onu-exito {
  --tc-ftth-sit-solido: var(--tc-success, #16a34a);
  --tc-ftth-sit-fondo: var(--tc-success-bg, #dcfce7);
  --tc-ftth-sit-texto: var(--tc-success-text, #166534);
}

.admin-shell[data-theme="dark"] .tc-estado-onu--exito, .admin-shell[data-theme="dark"] .tc-onus-celda--onu-exito {
  --tc-ftth-sit-solido: #4ade80;
  --tc-ftth-sit-fondo: #22c55e29;
  --tc-ftth-sit-texto: #86efac;
}

.tc-estado-onu {
  font-size: var(--tc-text-xs);
  white-space: nowrap;
  background: var(--tc-ftth-sit-fondo);
  color: var(--tc-ftth-sit-texto);
  border-radius: 999px;
  align-items: center;
  gap: 5px;
  padding: 2px 8px;
  font-weight: 600;
  line-height: 1.5;
  display: inline-flex;
}

.tc-estado-onu svg {
  color: var(--tc-ftth-sit-solido);
  flex: none;
}

.tc-estado-onu--neutro svg {
  color: var(--tc-ftth-sit-texto);
}

.tc-estado-onu--xs {
  gap: 3px;
  padding: 1px 6px;
  font-size: .625rem;
}

.tc-onus-celda--onu {
  background: var(--tc-ftth-sit-fondo);
  color: var(--tc-ftth-sit-solido);
}

.tc-ftth-salud-nota {
  margin: var(--tc-space-3) 0 0;
  align-items: center;
  gap: var(--tc-space-2);
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  display: inline-flex;
}

.tc-ftth-salud-cuerpo {
  gap: var(--tc-space-4);
  padding-top: var(--tc-space-4);
  grid-template-columns: 1fr 1fr 2fr;
  align-items: start;
  display: grid;
}

@media (max-width: 1024px) {
  .tc-ftth-salud-cuerpo {
    grid-template-columns: 1fr;
  }
}

.tc-ftth-salud-metricas {
  gap: var(--tc-space-3);
  flex-direction: column;
  min-width: 0;
  display: flex;
}

.tc-ftth-salud-fields {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 640px) {
  .tc-ftth-salud-fields {
    grid-template-columns: 1fr 1fr;
  }
}

.tc-ftth-salud-medidores {
  display: contents;
}

@media (max-width: 1024px) {
  .tc-ftth-salud-medidores {
    gap: var(--tc-space-4);
    grid-template-columns: 1fr 1fr;
    display: grid;
  }
}

.tc-ftth-skeleton-chip {
  width: 110px;
  height: 22px;
}

.tc-ftth-skeleton-alert {
  width: 100%;
  height: 40px;
}

.tc-ftth-skeleton-fields {
  width: 100%;
  height: 96px;
  margin-top: var(--tc-space-2);
}

.tc-ftth-skeleton-medidor {
  width: 100%;
  height: 110px;
}

.tc-ftth-skeleton-btn {
  border-radius: var(--tc-radius);
  width: 96px;
  height: 32px;
}

.tc-ftth-skeleton-config-grid {
  gap: var(--tc-space-4);
  grid-template-columns: 1fr 1fr;
  display: grid;
}

@media (max-width: 640px) {
  .tc-ftth-skeleton-config-grid {
    grid-template-columns: 1fr;
  }
}

.tc-ftth-skeleton-field {
  width: 100%;
  height: 36px;
}

.tc-ftth-skeleton-section-title {
  width: 110px;
  height: 12px;
  margin-bottom: var(--tc-space-2);
}

.tc-ftth-skeleton-lan-port {
  border-radius: var(--tc-radius);
  width: 60px;
  height: 58px;
}

.tc-ftth-skeleton-wifi {
  width: 100%;
  height: 64px;
}

.tc-onu-tr069 {
  align-items: center;
  gap: var(--tc-space-2);
  background: var(--admin-bg, #f8fafc);
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  flex-wrap: wrap;
  padding: .45rem .75rem;
  display: flex;
}

.tc-onu-tr069-label {
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-primary, #2563eb);
  opacity: .65;
  font-size: .62rem;
  font-weight: 700;
}

.tc-onu-tr069-status {
  border-radius: 5px;
  align-items: center;
  gap: 5px;
  padding: 2px 8px;
  font-size: .68rem;
  font-weight: 700;
  display: inline-flex;
}

.tc-onu-tr069-status--active {
  background: var(--tc-success-bg);
  color: var(--tc-success-text);
}

.tc-onu-tr069-status--inactive {
  background: var(--tc-neutral-bg, #f1f5f9);
  color: var(--admin-text-muted, #64748b);
}

.tc-onu-tr069-detail {
  color: var(--admin-text, #1e293b);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .72rem;
  font-weight: 600;
}

.tc-onu-tr069-btn {
  border-radius: var(--tc-radius-sm);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  cursor: pointer;
  color: var(--admin-primary, #2563eb);
  align-items: center;
  gap: 4px;
  margin-left: auto;
  padding: 3px 10px;
  font-size: .65rem;
  font-weight: 600;
  transition: background .15s;
  display: flex;
}

.tc-onu-tr069-btn:hover {
  background: var(--tc-neutral-bg, #f1f5f9);
}

.tc-onu-tr069-config {
  margin-top: var(--tc-space-2);
  background: var(--admin-card-bg, #fff);
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  width: 100%;
  padding: .75rem;
  box-shadow: 0 4px 16px #0000000f;
}

.tc-onu-tr069-config-title {
  color: var(--admin-text, #1e293b);
  margin-bottom: var(--tc-space-2);
  font-size: .68rem;
  font-weight: 700;
}

.tc-onu-tr069-config-row {
  align-items: center;
  gap: var(--tc-space-2);
  margin-bottom: var(--tc-space-2);
  display: flex;
}

.tc-onu-tr069-config-row:last-child {
  margin-bottom: 0;
}

.tc-onu-tr069-select {
  border-radius: var(--tc-radius-sm);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-input-bg, #fff);
  color: var(--admin-text, #1e293b);
  font-size: var(--tc-text-xs);
  flex: 1;
  padding: 6px 10px;
}

.tc-onu-tr069--skeleton .tc-onu-tr069-status, .tc-onu-tr069--skeleton .tc-onu-tr069-detail {
  background: var(--admin-border, #e2e8f0);
  color: #0000;
  border-radius: 3px;
  animation: 1.5s ease-in-out infinite tcOnuSkeletonPulse;
}

.tc-onu-actions-wrap {
  display: inline-flex;
  position: relative;
}

.tc-onu-dropdown {
  z-index: 200;
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  min-width: 200px;
  padding: 4px 0;
  animation: .12s tcOnuDropdownIn;
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  box-shadow: 0 6px 20px #0000001a;
}

@keyframes tcOnuDropdownIn {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.tc-onu-dropdown-item {
  cursor: pointer;
  width: 100%;
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  text-align: left;
  background: none;
  border: none;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  font-weight: 500;
  transition: background .1s;
  display: flex;
}

.tc-onu-dropdown-item:hover:not(:disabled) {
  background: var(--admin-bg, #f8fafc);
}

.tc-onu-dropdown-item:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.tc-onu-dropdown-item--danger {
  color: var(--tc-danger, #ef4444);
}

.tc-onu-dropdown-item--danger:hover:not(:disabled) {
  background: var(--tc-danger-bg, #fee2e2);
}

.tc-onu-dropdown-divider {
  background: var(--admin-border, #e2e8f0);
  height: 1px;
  margin: 4px 0;
}

.tc-onu-dropdown-section-label {
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted, #94a3b8);
  padding: 5px 14px 2px;
  font-size: .65rem;
  font-weight: 700;
}

.tc-onu-actions {
  gap: var(--tc-space-2);
  padding-top: var(--tc-space-3);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  margin-top: var(--tc-space-1);
  flex-wrap: wrap;
  display: flex;
}

.tc-onu-loading {
  align-items: center;
  gap: var(--tc-space-1);
  display: flex;
}

.tc-onu-loading-spinner {
  border: 2px solid var(--admin-primary, #2563eb);
  border-top: 2px solid #0000;
  border-radius: 50%;
  width: 10px;
  height: 10px;
  animation: .8s linear infinite tcOnuSpin;
}

@keyframes tcOnuSpin {
  to {
    transform: rotate(360deg);
  }
}

.tc-onu-loading-text {
  color: var(--admin-primary, #2563eb);
  font-size: .65rem;
  font-weight: 600;
}

.tc-onu-error {
  border-radius: var(--tc-radius-sm);
  background: var(--tc-danger-bg);
  color: var(--tc-danger-text);
  margin-bottom: var(--tc-space-2);
  padding: .3rem .5rem;
  font-size: .78rem;
}

.tc-onu-empty {
  justify-content: center;
  align-items: center;
  gap: var(--tc-space-2);
  flex-direction: column;
  padding: 1.5rem 0;
  display: flex;
}

.tc-onu-empty-text {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-onu-btn-loading {
  align-items: center;
  gap: 4px;
  display: inline-flex;
}

.tc-onu-btn-spinner {
  border: 2px solid;
  border-top-color: #0000;
  border-radius: 50%;
  width: 10px;
  height: 10px;
  animation: .8s linear infinite tcOnuSpin;
}

@media (max-width: 768px) {
  .tc-onu-info-grid {
    grid-template-columns: 1fr 1fr;
  }

  .tc-onu-signal-main {
    flex-direction: column;
  }

  .tc-onu-signal-secondary {
    flex-wrap: wrap;
  }

  .tc-onu-signal-mini {
    min-width: calc(50% - var(--tc-space-1));
  }

  .tc-onu-ports {
    flex-wrap: wrap;
  }
}

[data-theme="dark"] .tc-onu-info-grid {
  background: var(--admin-bg);
  border-color: var(--admin-border);
}

[data-theme="dark"] .tc-onu-refresh-btn {
  background: var(--admin-card-bg);
  border-color: var(--admin-border);
}

[data-theme="dark"] .tc-onu-signal-mini {
  background: var(--admin-bg);
}

[data-theme="dark"] .tc-onu-ports, [data-theme="dark"] .tc-onu-tr069 {
  background: var(--admin-bg);
  border-color: var(--admin-border);
}

[data-theme="dark"] .tc-onu-tr069-config {
  background: var(--admin-card-bg);
  border-color: var(--admin-border);
}

.tc-ftth-header {
  margin-bottom: var(--tc-space-4);
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-ftth-header-title {
  font-size: var(--tc-text-lg);
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 700;
}

.tc-ftth-header-meta {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
}

.tc-ftth-tab {
  gap: var(--tc-space-4);
  flex-direction: column;
  display: flex;
}

.tc-ftth-tab-header {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-3);
  padding: var(--tc-space-3) var(--tc-space-4);
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
  flex-wrap: wrap;
  display: flex;
}

.tc-ftth-tab-header-identity {
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-ftth-tab-serial {
  font-size: var(--tc-text-lg);
  color: var(--admin-text, #1e293b);
  letter-spacing: .02em;
  font-family: SF Mono, Fira Code, monospace;
  font-weight: 700;
}

.tc-ftth-tab-header-actions {
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-ftth-subnav {
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--tc-space-4);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  margin-bottom: var(--tc-space-5);
  display: flex;
}

.tc-ftth-subnav--solo-accion {
  border-bottom: none;
  justify-content: flex-end;
}

.tc-ftth-subnav .tc-tabs {
  border-bottom: none;
  margin-bottom: -1px;
}

.tc-ftth-subnav-action {
  flex-shrink: 0;
  margin-bottom: .35rem;
}

.tc-ftth-subnav .tc-tab {
  font-size: var(--tc-text-md);
  padding: .7rem 1.15rem;
}

.tc-ftth-subnav .tc-tab--active {
  border-bottom-width: 3px;
}

@media (max-width: 560px) {
  .tc-ftth-subnav {
    align-items: stretch;
    gap: var(--tc-space-2);
    flex-direction: column;
  }

  .tc-ftth-subnav-action {
    align-self: flex-end;
    margin-bottom: 0;
  }
}

.tc-ftth-autorefresh-badge {
  color: var(--tc-success-text);
  align-items: center;
  gap: 6px;
  margin-left: auto;
  font-size: .72rem;
  font-weight: 600;
  display: inline-flex;
}

.tc-ftth-autorefresh-pulse {
  justify-content: center;
  align-items: center;
  width: 8px;
  height: 8px;
  display: inline-flex;
  position: relative;
}

.tc-ftth-autorefresh-dot {
  background: var(--tc-success);
  z-index: 1;
  border-radius: 50%;
  width: 8px;
  height: 8px;
  display: inline-block;
  position: relative;
}

.tc-ftth-autorefresh-ping {
  background: var(--tc-success);
  border-radius: 50%;
  animation: 1.8s cubic-bezier(0, 0, .2, 1) infinite tc-ftth-ping;
  position: absolute;
  inset: 0;
}

@keyframes tc-ftth-ping {
  0% {
    opacity: .6;
    transform: scale(1);
  }

  100% {
    opacity: 0;
    transform: scale(2.4);
  }
}

@media (prefers-reduced-motion: reduce) {
  .tc-ftth-autorefresh-ping {
    opacity: 0;
    animation: none;
  }
}

.tc-ftth-signal-footer {
  margin-top: var(--tc-space-3);
  padding-top: var(--tc-space-2);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  align-items: center;
  gap: 5px;
  display: flex;
}

.tc-ftth-lan-ports {
  gap: var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-ftth-lan-port {
  align-items: center;
  gap: var(--tc-space-1);
  border-radius: var(--tc-radius);
  background: var(--admin-bg);
  border: 1px solid var(--admin-border, #e2e8f0);
  min-width: 60px;
  color: var(--admin-text-muted, #94a3b8);
  flex-direction: column;
  padding: 10px 14px;
  display: flex;
}

.tc-ftth-lan-port--up {
  background: var(--tc-success-bg);
  border-color: var(--tc-success);
  color: var(--tc-success);
}

.tc-ftth-lan-port-name {
  color: inherit;
  font-size: .72rem;
  font-weight: 700;
}

.tc-ftth-lan-port-speed {
  color: var(--tc-success-text);
  font-size: .65rem;
}

.tc-ftth-lan-port--clickable {
  cursor: pointer;
  align-items: stretch;
  min-width: 168px;
  transition: border-color .15s, box-shadow .15s;
}

.tc-ftth-lan-port--clickable:hover {
  border-color: var(--tc-primary, #2563eb);
  box-shadow: 0 0 0 1px var(--tc-primary, #2563eb);
}

.tc-ftth-lan-port--clickable:focus-visible {
  outline: 2px solid var(--tc-primary, #2563eb);
  outline-offset: 2px;
}

.tc-ftth-lan-port-top {
  align-items: center;
  gap: 6px;
  width: 100%;
  display: flex;
}

.tc-ftth-lan-port-gear {
  color: var(--admin-text-muted, #94a3b8);
  align-items: center;
  margin-left: auto;
  display: inline-flex;
}

.tc-ftth-lan-port-modo {
  align-self: flex-start;
}

.tc-ftth-lan-port-resumen {
  color: var(--admin-text-muted, #64748b);
  text-align: left;
  width: 100%;
  font-size: .6875rem;
}

.tc-ftth-vlans-strip-chips {
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-ftth-vlan-chip {
  background: var(--admin-bg);
  border: 1px solid var(--admin-border, #e2e8f0);
  color: var(--admin-text, #1e293b);
  border-radius: 999px;
  align-items: center;
  gap: 5px;
  padding: 3px 8px;
  font-size: .6875rem;
  font-weight: 600;
  display: inline-flex;
}

.tc-ftth-vlan-chip-remove {
  color: var(--admin-text-muted, #94a3b8);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  padding: 0;
  display: inline-flex;
}

.tc-ftth-vlan-chip-remove:hover {
  color: var(--tc-danger, #dc2626);
}

.tc-ftth-vlan-chip-remove:disabled {
  opacity: .35;
  cursor: not-allowed;
}

.tc-ftth-vlan-chip-remove:disabled:hover {
  color: var(--admin-text-muted, #94a3b8);
}

.tc-ftth-vlans-strip-selector {
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-ftth-vlans-strip-dropdown {
  min-width: 220px;
}

.tc-ftth-tr069-section {
  gap: var(--tc-space-3);
  flex-direction: column;
  display: flex;
}

.tc-ftth-tr069-status-row {
  margin-bottom: var(--tc-space-2);
}

.tc-ftth-tr069-loading {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-ftth-conectividad {
  align-items: flex-start;
  gap: var(--tc-space-4);
  flex-flow: wrap;
  display: flex;
}

.tc-ftth-conectividad-section--ports {
  flex: 340px;
  min-width: 0;
}

.tc-ftth-conectividad-section--wifi {
  flex: 0 320px;
}

@media (max-width: 900px) {
  .tc-ftth-conectividad {
    flex-direction: column;
  }

  .tc-ftth-conectividad-section--wifi {
    flex-basis: auto;
  }
}

.tc-ftth-conectividad {
  flex-flow: column;
}

.tc-ftth-conectividad-section--ports, .tc-ftth-conectividad-section--wifi {
  flex: auto;
  align-self: stretch;
}

.tc-ftth-lan-ports {
  flex-wrap: nowrap;
}

@media (max-width: 900px) {
  .tc-ftth-lan-ports {
    flex-wrap: wrap;
  }
}

.tc-ftth-conectividad .tc-wifi-fields {
  gap: var(--tc-space-4);
  flex-flow: wrap;
  align-items: flex-start;
}

.tc-ftth-conectividad .tc-wifi-banda {
  flex: 260px;
  min-width: 0;
}

.tc-ftth-conectividad .tc-wifi-chip-info {
  flex-basis: 100%;
}

.tc-ftth-conectividad .tc-wifi-sin-config {
  flex-direction: row;
  justify-content: center;
  align-items: center;
  padding: 1rem;
}

@media (max-width: 900px) {
  .tc-ftth-conectividad .tc-wifi-fields, .tc-ftth-conectividad .tc-wifi-sin-config {
    flex-direction: column;
  }

  .tc-ftth-conectividad .tc-wifi-banda {
    flex-basis: auto;
  }
}

.tc-ftth-conectividad-section--wifi .tc-card-head {
  padding-top: var(--tc-space-2);
  padding-bottom: var(--tc-space-2);
}

.tc-ftth-conectividad-section--wifi .tc-card-body {
  padding-top: var(--tc-space-3);
  padding-bottom: var(--tc-space-3);
}

.tc-ftth-conectividad-section {
  gap: var(--tc-space-2);
  flex-direction: column;
  display: flex;
}

.tc-ftth-conectividad-section-header {
  justify-content: flex-start;
  align-items: center;
  gap: var(--tc-space-2);
  display: flex;
}

.tc-ftth-conectividad-section-title {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .03em;
  font-weight: 600;
}

.tc-ftth-lan-loading-hint {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  align-items: center;
  gap: 4px;
  display: inline-flex;
}

.plan-card-btn {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text, #334155);
  cursor: pointer;
  text-align: center;
  border-radius: 6px;
  flex: 1;
  padding: .35rem .4rem;
  font-size: .78rem;
  font-weight: 500;
  line-height: 1.4;
  transition: background .1s, border-color .1s, color .1s;
}

.plan-card-btn:hover {
  background: var(--admin-table-header, #f8fafc);
  border-color: #94a3b8;
}

.plan-card-btn--danger {
  color: #b91c1c;
}

.plan-card-btn--danger:hover {
  color: #991b1b;
  background: #fef2f2;
  border-color: #fca5a5;
}

.tc-acs-chip-row {
  flex-wrap: wrap;
  gap: 6px;
  display: flex;
}

.tc-sparkline-stat {
  position: relative;
}

.tc-stat-spark {
  right: var(--tc-space-3);
  bottom: var(--tc-space-3);
  opacity: .7;
  pointer-events: none;
  position: absolute;
}

.tc-stat-delta {
  font-size: var(--tc-text-sm);
  margin-top: var(--tc-space-2);
  align-items: center;
  gap: 4px;
  font-weight: 500;
  display: inline-flex;
}

.tc-stat-delta--up {
  color: var(--tc-success);
}

.tc-stat-delta--down {
  color: var(--tc-danger);
}

.tc-stat-delta--neutral {
  color: var(--admin-text-muted);
}

.tc-toplist {
  margin: 0;
  padding: 0;
  list-style: none;
}

.tc-toplist-empty {
  padding: var(--tc-space-4);
  color: var(--admin-text-muted);
  font-size: var(--tc-text-sm);
  text-align: center;
}

.tc-toplist-item {
  align-items: center;
  gap: var(--tc-space-3);
  padding: var(--tc-space-3) var(--tc-space-4);
  border-bottom: 1px solid var(--admin-border);
  font-size: var(--tc-text-base);
  display: flex;
}

.tc-toplist-item:last-child {
  border-bottom: none;
}

.tc-toplist-ico {
  border-radius: var(--tc-radius);
  background: var(--admin-bg);
  width: 28px;
  height: 28px;
  color: var(--tc-neutral-text);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
}

.tc-toplist-name {
  color: var(--admin-text);
  flex: 1;
  font-weight: 500;
}

.tc-toplist-meta {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
  margin-left: var(--tc-space-2);
  font-weight: 400;
}

.tc-toplist-value {
  font-variant-numeric: tabular-nums;
  color: var(--admin-text-muted);
}

.tc-anomaly {
  align-items: flex-start;
  gap: var(--tc-space-3);
  padding: var(--tc-space-3) var(--tc-space-4);
  border-bottom: 1px solid var(--admin-border);
  display: flex;
}

.tc-anomaly:last-child {
  border-bottom: none;
}

.tc-anomaly--clickable {
  cursor: pointer;
}

.tc-anomaly--clickable:hover {
  background: var(--admin-bg);
}

.tc-anomaly-sev {
  border-radius: var(--tc-radius-sm);
  font-size: var(--tc-text-xs);
  letter-spacing: .5px;
  flex-shrink: 0;
  align-items: center;
  gap: 4px;
  padding: 2px 6px;
  font-weight: 600;
  display: inline-flex;
}

.tc-anomaly-sev--crit {
  background: var(--tc-danger-bg);
  color: var(--tc-danger-text);
}

.tc-anomaly-sev--high {
  background: var(--tc-warning-bg);
  color: var(--tc-warning-text);
}

.tc-anomaly-sev--med {
  background: var(--tc-info-bg);
  color: var(--tc-info-text);
}

.tc-anomaly-sev--low {
  background: var(--admin-bg);
  color: var(--tc-neutral-text);
}

.tc-anomaly-msg {
  font-size: var(--tc-text-base);
  color: var(--admin-text);
  flex: 1;
  line-height: 1.45;
}

.tc-anomaly-when {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-hint);
  margin-top: 2px;
  display: block;
}

.tc-router-item {
  align-items: center;
  gap: var(--tc-space-2);
  padding: var(--tc-space-2) var(--tc-space-3);
  border-radius: var(--tc-radius);
  background: var(--admin-bg);
  border: 1px solid var(--admin-border);
  display: flex;
}

.tc-router-item--clickable {
  cursor: pointer;
  transition: border-color .1s;
}

.tc-router-item--clickable:hover {
  border-color: var(--admin-border);
}

.tc-router-dot {
  border-radius: 50%;
  flex-shrink: 0;
  width: 8px;
  height: 8px;
}

.tc-router-dot--ok {
  background: var(--tc-success);
  box-shadow: 0 0 0 3px var(--tc-success-bg);
}

.tc-router-dot--warn {
  background: var(--tc-warning);
  box-shadow: 0 0 0 3px var(--tc-warning-bg);
}

.tc-router-dot--danger {
  background: var(--tc-danger);
  box-shadow: 0 0 0 3px var(--tc-danger-bg);
}

.tc-router-dot--off {
  background: var(--admin-text-hint);
}

.tc-router-meta {
  flex: 1;
  min-width: 0;
}

.tc-router-name {
  font-size: var(--tc-text-base);
  color: var(--admin-text);
  font-weight: 500;
  line-height: 1.2;
}

.tc-router-sub {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
  margin-top: 2px;
}

.tc-router-role {
  text-transform: uppercase;
  letter-spacing: .5px;
}

.tc-router-sep {
  opacity: .6;
}

.tc-forensic-bar {
  padding: var(--tc-space-3) var(--tc-space-6);
  background: var(--admin-card-bg);
  border-bottom: 1px solid var(--admin-border);
  align-items: center;
  gap: var(--tc-space-3);
  display: flex;
}

.tc-forensic-bar-icon {
  color: var(--admin-text-muted);
  display: flex;
}

.tc-forensic-bar-input {
  padding: var(--tc-space-2) var(--tc-space-3);
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-base);
  background: var(--admin-bg);
  color: var(--admin-text);
  flex: 1;
}

.tc-forensic-bar-input:focus {
  border-color: var(--admin-primary);
  outline: none;
}

.tc-forensic-bar-hint {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-hint);
  background: var(--admin-bg);
  border-radius: var(--tc-radius-sm);
  padding: 2px 6px;
}

.tc-chart {
  width: 100%;
  font-size: var(--tc-text-sm);
  color: var(--admin-text);
}

.tc-chart .recharts-text {
  fill: var(--admin-text-hint);
}

.tc-heatmap-wrap {
  gap: var(--tc-space-3);
  flex-direction: column;
  display: flex;
}

.tc-heatmap-grid {
  flex-direction: column;
  gap: 3px;
  display: flex;
}

.tc-heatmap-row {
  grid-template-columns: 42px repeat(24, 1fr);
  align-items: center;
  gap: 2px;
  display: grid;
}

.tc-heatmap-day {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
  padding-right: var(--tc-space-2);
  text-align: right;
  font-weight: 500;
}

.tc-heatmap-cell {
  aspect-ratio: 1;
  background: var(--admin-bg);
  border-radius: 3px;
}

.tc-heatmap-cell--0 {
  background: var(--admin-bg);
}

.tc-heatmap-cell--1 {
  background: #dbeafe;
}

.tc-heatmap-cell--2 {
  background: #93c5fd;
}

.tc-heatmap-cell--3 {
  background: #3b82f6;
}

.tc-heatmap-cell--4 {
  background: #1d4ed8;
}

.tc-heatmap-legend {
  align-items: center;
  gap: var(--tc-space-2);
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
  display: flex;
}

.tc-heatmap-legend .tc-heatmap-cell {
  aspect-ratio: 1;
  width: 14px;
  height: 14px;
  display: inline-block;
}

.tc-heatmap-empty {
  padding: var(--tc-space-4);
  text-align: center;
  color: var(--admin-text-muted);
  font-size: var(--tc-text-sm);
}

.tc-admin-grid {
  gap: var(--tc-space-3);
  padding: var(--tc-space-3) 0 var(--tc-space-6) 0;
  grid-template-columns: 1.4fr 1fr;
  display: grid;
}

.tc-admin-col-left, .tc-admin-col-right {
  gap: var(--tc-space-3);
  flex-direction: column;
  display: flex;
}

@media (max-width: 1100px) {
  .tc-admin-grid {
    grid-template-columns: 1fr;
  }
}

.tc-router-grid {
  gap: var(--tc-space-2);
  grid-template-columns: repeat(3, 1fr);
  display: grid;
}

@media (max-width: 1100px) {
  .tc-router-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.tc-router-empty, .tc-placeholder {
  padding: var(--tc-space-5);
  color: var(--admin-text-muted);
  font-size: var(--tc-text-sm);
  text-align: center;
  background: var(--admin-bg);
  border-radius: var(--tc-radius);
}

.tc-router-mode-toggle {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  background: var(--admin-bg, #f8fafc);
  gap: 0;
  display: flex;
  overflow: hidden;
}

.tc-router-mode-btn {
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
  cursor: pointer;
  background: none;
  border: none;
  flex: 1;
  padding: .4rem .75rem;
  font-weight: 500;
  transition: background .15s, color .15s;
}

.tc-router-mode-btn--active {
  background: var(--admin-primary, #2563eb);
  color: #fff;
}

.tc-router-mode-btn:not(.tc-router-mode-btn--active):hover {
  background: var(--admin-border, #e2e8f0);
  color: var(--admin-text, #1e293b);
}

.tc-router-vpn-nuevo {
  align-items: flex-start;
  gap: var(--tc-space-2);
  padding: var(--tc-space-3) var(--tc-space-4);
  border: 1px dashed var(--admin-border, #cbd5e1);
  border-radius: var(--tc-radius);
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-sm);
  flex-direction: column;
  display: flex;
}

.tc-chip-con-detalle {
  flex-direction: column;
  align-items: center;
  gap: 2px;
  display: inline-flex;
}

.tc-crear-inline {
  gap: var(--tc-space-2);
  padding: var(--tc-space-3) var(--tc-space-4);
  border: 1px dashed var(--admin-border, #cbd5e1);
  border-radius: var(--tc-radius);
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-sm);
  flex-direction: column;
  display: flex;
}

.tc-mono {
  font-family: monospace;
  font-size: var(--tc-text-sm);
}

.tc-spinner-inline {
  color: var(--admin-text-muted, #64748b);
  vertical-align: middle;
  animation: .8s linear infinite tc-spin;
}

.tc-warn-hint {
  font-size: var(--tc-text-sm);
  color: var(--tc-warning);
  align-items: center;
  gap: .2rem;
  display: inline-flex;
}

.tc-modal-error {
  margin-bottom: .75rem;
}

.tc-error-banner {
  margin: var(--tc-space-4) 0;
  padding: var(--tc-space-3) var(--tc-space-4);
  background: var(--tc-danger-bg);
  color: var(--tc-danger-text);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-sm);
  border: 1px solid #fecaca;
}

.tc-card-head-link {
  font-size: var(--tc-text-sm);
  color: var(--admin-primary);
  cursor: pointer;
  align-items: center;
  gap: 2px;
  font-weight: 500;
  text-decoration: none;
  display: inline-flex;
}

.tc-card-head-link:hover {
  opacity: .85;
}

.tc-codeblock {
  color: #e2e8f0;
  padding: var(--tc-space-4);
  border-radius: var(--tc-radius);
  font-family: SF Mono, Menlo, Consolas, monospace;
  font-size: var(--tc-text-sm);
  white-space: pre;
  background: #0f172a;
  margin: 0;
  line-height: 1.5;
  overflow-x: auto;
}

.tc-codeblock--sm {
  padding: var(--tc-space-2) var(--tc-space-3);
  font-size: var(--tc-text-xs);
  white-space: pre-wrap;
  word-break: break-word;
}

.tc-note {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted);
  margin: var(--tc-space-3) 0 0;
  font-style: italic;
}

.tc-field-row {
  align-items: center;
  gap: var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-opciones-comparadas {
  gap: var(--tc-space-3);
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  display: grid;
}

.tc-opcion {
  gap: var(--tc-space-2);
  padding: var(--tc-space-4);
  background: var(--admin-bg);
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius-lg);
  flex-direction: column;
  display: flex;
}

.tc-opcion-titulo {
  align-items: center;
  gap: var(--tc-space-2);
  font-size: var(--tc-text-sm);
  color: var(--admin-text);
  margin: 0;
  font-weight: 700;
  display: flex;
}

.tc-opcion-texto {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted);
  margin: 0;
  line-height: 1.5;
}

.tc-perfil-grid {
  gap: var(--tc-space-3);
  grid-template-columns: repeat(3, 1fr);
  display: grid;
}

.tc-perfil-card {
  gap: var(--tc-space-1);
  padding: var(--tc-space-4);
  background: var(--admin-bg);
  border: 2px solid var(--admin-border);
  border-radius: var(--tc-radius-lg);
  cursor: pointer;
  text-align: left;
  flex-direction: column;
  font-family: inherit;
  transition: border-color .1s;
  display: flex;
}

.tc-perfil-card:hover:not(:disabled) {
  border-color: var(--admin-text-hint, #94a3b8);
}

.tc-perfil-card:disabled {
  opacity: .6;
  cursor: not-allowed;
}

.tc-perfil-card--activo {
  border-color: var(--admin-primary);
  background: var(--tc-primary-bg, #2563eb0d);
}

.tc-perfil-nombre {
  font-size: var(--tc-text-lg);
  color: var(--admin-text);
  font-weight: 600;
}

.tc-perfil-desc {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted);
}

.tc-placeholder-action {
  margin-top: var(--tc-space-4);
  justify-content: center;
  display: flex;
}

@media (max-width: 1024px) {
  .tc-perfil-grid {
    grid-template-columns: 1fr;
  }
}

.tc-slider-row {
  align-items: center;
  gap: var(--tc-space-3);
  display: flex;
}

.tc-slider {
  accent-color: var(--admin-primary);
  flex: 1;
}

.tc-slider-value {
  font-variant-numeric: tabular-nums;
  font-size: var(--tc-text-md);
  color: var(--admin-text);
  min-width: 100px;
}

.tc-info-callout {
  gap: var(--tc-space-2);
  padding: var(--tc-space-3);
  background: var(--tc-info-bg, #2563eb14);
  color: var(--tc-info-text, var(--admin-text-muted));
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-sm);
  margin-bottom: var(--tc-space-4);
  align-items: flex-start;
  display: flex;
}

.tc-inline-msg {
  padding: var(--tc-space-3) var(--tc-space-4);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-sm);
  margin-bottom: var(--tc-space-4);
}

.tc-inline-msg--ok {
  background: var(--tc-success-bg, #33d69f1a);
  color: var(--tc-success-text, #33d69f);
}

.tc-inline-msg--error {
  background: var(--tc-danger-bg, #f871711a);
  color: var(--tc-danger-text, #f87171);
}

.tc-form-actions {
  justify-content: flex-end;
  align-items: center;
  gap: var(--tc-space-2);
  margin-top: var(--tc-space-4);
  display: flex;
}

.tc-savebar {
  z-index: 20;
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-3);
  margin-top: var(--tc-space-4);
  padding: var(--tc-space-3) var(--tc-space-4);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
  background: var(--admin-card-bg, #fff);
  flex-wrap: wrap;
  display: flex;
  position: sticky;
  bottom: 0;
  box-shadow: 0 -2px 12px #00000014;
}

.tc-savebar-msg {
  align-items: center;
  gap: var(--tc-space-2);
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  min-width: 0;
  display: flex;
}

.tc-savebar-msg--dirty {
  color: var(--tc-warning-text, #854d0e);
}

.tc-savebar-actions {
  align-items: center;
  gap: var(--tc-space-2);
  flex-shrink: 0;
  display: flex;
}

@media (max-width: 640px) {
  .tc-savebar {
    flex-direction: column;
    align-items: stretch;
  }

  .tc-savebar-actions {
    justify-content: flex-end;
  }
}

.tc-modal-actions {
  justify-content: flex-end;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-text-muted {
  color: var(--admin-text-muted);
  font-size: var(--tc-text-sm);
  margin: 0 0 var(--tc-space-2);
}

.tc-rango-fechas {
  gap: var(--tc-space-2);
  margin-bottom: var(--tc-space-4);
  flex-direction: column;
  display: flex;
}

.tc-rango-presets {
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-rango-preset {
  background: var(--admin-card-bg);
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-sm);
  cursor: pointer;
  color: var(--admin-text);
  padding: 6px 14px;
}

.tc-rango-preset:hover {
  border-color: var(--admin-text-hint);
}

.tc-rango-preset--activo {
  background: var(--tc-primary-bg);
  border-color: var(--admin-primary);
  color: var(--admin-primary);
  font-weight: 500;
}

.tc-rango-custom {
  gap: var(--tc-space-2);
  font-size: var(--tc-text-sm);
  flex-wrap: wrap;
  align-items: center;
  display: flex;
}

.tc-rango-custom input {
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-sm);
  background: var(--admin-card-bg);
  color: var(--admin-text);
  padding: 6px 8px;
}

.tc-rango-aplicar {
  background: var(--admin-primary);
  color: #fff;
  border-radius: var(--tc-radius);
  cursor: pointer;
  font-size: var(--tc-text-sm);
  border: none;
  padding: 6px 14px;
}

.tc-trafico-tab {
  gap: var(--tc-space-4);
  flex-direction: column;
  display: flex;
}

.tc-placeholder-inline {
  padding: var(--tc-space-4);
  text-align: center;
  color: var(--admin-text-muted);
  font-size: var(--tc-text-sm);
}

.tc-compact-grid {
  gap: var(--tc-space-3);
  grid-template-columns: repeat(2, 1fr);
  display: grid;
}

@media (max-width: 1000px) {
  .tc-compact-grid {
    grid-template-columns: 1fr;
  }
}

.tc-trafico-ver-mas {
  text-align: right;
}

.tc-consumo {
  --tc-consumo-bajada: var(--tc-info, #3b82f6);
  --tc-consumo-subida: #ea580c;
  --tc-consumo-texto: var(--admin-text, #1e293b);
  --tc-consumo-tenue: var(--admin-text-muted, #64748b);
  --tc-consumo-linea: var(--admin-border, #e2e8f0);
  --tc-consumo-foco: var(--admin-table-hover, #f8fafc);
  --tc-consumo-superficie: var(--admin-card-bg, #fff);
  gap: var(--tc-space-3, .75rem);
  flex-direction: column;
  display: flex;
}

.tc-consumo-leyenda {
  gap: var(--tc-space-2, .5rem) var(--tc-space-5, 1.25rem);
  font-size: var(--tc-text-sm, .875rem);
  color: var(--tc-consumo-tenue);
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.tc-consumo-leyenda li {
  align-items: center;
  gap: .45rem;
  display: inline-flex;
}

.tc-consumo-leyenda strong {
  color: var(--tc-consumo-texto);
  font-weight: 600;
}

.tc-consumo-muestra {
  border-radius: 3px;
  flex: none;
  width: 10px;
  height: 10px;
  display: inline-block;
}

.tc-consumo-muestra--bajada {
  background: var(--tc-consumo-bajada);
}

.tc-consumo-muestra--subida {
  background: var(--tc-consumo-subida);
}

.tc-consumo-muestra--parcial {
  background: linear-gradient(to top, var(--tc-consumo-bajada) 70%, var(--tc-consumo-subida) 70%);
  opacity: .4;
}

.tc-consumo-muestra--promedio {
  border-top: 2px dashed var(--tc-consumo-tenue);
  border-radius: 0;
  width: 16px;
  height: 0;
}

.tc-consumo-lienzo {
  width: 100%;
  position: relative;
}

.tc-consumo-lienzo svg {
  display: block;
  overflow: visible;
}

.tc-consumo-rejilla {
  stroke: var(--tc-consumo-linea);
  stroke-width: 1px;
  shape-rendering: crispedges;
}

.tc-consumo-base {
  stroke: var(--tc-consumo-tenue);
  stroke-opacity: .45;
  stroke-width: 1px;
  shape-rendering: crispedges;
}

.tc-consumo-eje {
  fill: var(--tc-consumo-tenue);
  font-variant-numeric: tabular-nums;
  font-size: 11px;
}

.tc-consumo-eje--activo {
  fill: var(--tc-consumo-texto);
  font-weight: 600;
}

.tc-consumo-bajada {
  fill: var(--tc-consumo-bajada);
}

.tc-consumo-subida {
  fill: var(--tc-consumo-subida);
}

.tc-consumo-cero {
  fill: var(--tc-consumo-tenue);
  opacity: .45;
}

.tc-consumo-barra {
  transition: opacity .12s;
}

.tc-consumo-barra--parcial {
  opacity: .4;
}

.tc-consumo-barra--atenuada {
  opacity: .35;
}

.tc-consumo-barra--parcial.tc-consumo-barra--atenuada {
  opacity: .2;
}

.tc-consumo-valor {
  fill: var(--tc-consumo-tenue);
  font-size: 11px;
  font-weight: 500;
}

.tc-consumo-valor--max {
  fill: var(--tc-consumo-texto);
  font-weight: 600;
}

.tc-consumo-promedio {
  stroke: var(--tc-consumo-tenue);
  stroke-width: 1.5px;
  stroke-dasharray: 5 4;
  pointer-events: none;
}

.tc-consumo-foco {
  fill: var(--tc-consumo-foco);
}

.tc-consumo-hit {
  fill: #0000;
  cursor: default;
  outline: none;
}

.tc-consumo-hit:focus-visible {
  stroke: var(--tc-consumo-bajada);
  stroke-width: 2px;
}

.tc-consumo-tip {
  z-index: 5;
  background: var(--tc-consumo-superficie);
  border: 1px solid var(--tc-consumo-linea);
  border-radius: var(--tc-radius, 8px);
  min-width: 190px;
  box-shadow: var(--admin-shadow, 0 4px 12px #00000014);
  font-size: var(--tc-text-sm, .875rem);
  color: var(--tc-consumo-texto);
  pointer-events: none;
  padding: .6rem .75rem;
  position: absolute;
}

.tc-consumo-tip--izq {
  transform: translateX(-100%);
}

.tc-consumo-tip-titulo {
  justify-content: space-between;
  align-items: center;
  gap: .5rem;
  margin-bottom: .4rem;
  font-weight: 600;
  display: flex;
}

.tc-consumo-tip-nota {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--tc-consumo-tenue);
  font-weight: 500;
}

.tc-consumo-tip-fila {
  color: var(--tc-consumo-tenue);
  grid-template-columns: 10px 1fr auto;
  align-items: center;
  gap: .5rem;
  padding: .12rem 0;
  display: grid;
}

.tc-consumo-tip-fila strong {
  color: var(--tc-consumo-texto);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}

.tc-consumo-tip-total {
  border-top: 1px solid var(--tc-consumo-linea);
  margin-top: .3rem;
  padding-top: .4rem;
}

.tc-consumo-tip-pie {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--tc-consumo-tenue);
  margin-top: .4rem;
}

.tc-link-primary {
  color: var(--admin-primary);
  font-size: var(--tc-text-sm);
  cursor: pointer;
  text-align: left;
  background: none;
  border: none;
  align-items: center;
  gap: 4px;
  padding: 0;
  font-family: inherit;
  text-decoration: none;
  display: inline-flex;
}

.tc-icon-label {
  align-items: center;
  gap: 6px;
  display: inline-flex;
}

.tc-inline-chips {
  align-items: center;
  gap: var(--tc-space-1);
  flex-wrap: wrap;
  display: inline-flex;
}

.tc-router-ministats {
  gap: var(--tc-space-3);
  margin-top: var(--tc-space-4);
  grid-template-columns: repeat(4, 1fr);
  display: grid;
}

@media (max-width: 1024px) {
  .tc-router-ministats {
    grid-template-columns: repeat(2, 1fr);
  }
}

.tc-router-ministats--placeholder {
  color: var(--admin-text-muted);
  font-size: var(--tc-text-sm);
  padding: var(--tc-space-3);
  display: block;
}

.tc-router-ministat-link {
  color: inherit;
  text-decoration: none;
}

.tc-router-ministat-link:hover .tc-router-ministat {
  border-color: var(--admin-text-hint);
}

.tc-router-ministat {
  padding: var(--tc-space-3) var(--tc-space-4);
  background: var(--admin-bg);
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius);
  flex-direction: column;
  gap: 2px;
  transition: border-color .15s;
  display: flex;
}

.tc-router-ministat--ok {
  border-left: 3px solid var(--tc-success);
}

.tc-router-ministat--warn {
  border-left: 3px solid var(--tc-warning);
}

.tc-router-ministat--danger {
  border-left: 3px solid var(--tc-danger);
}

.tc-router-ministat-head {
  color: var(--admin-text-muted);
  align-items: center;
  gap: 6px;
  display: flex;
}

.tc-router-ministat-icon {
  display: inline-flex;
}

.tc-router-ministat-label {
  font-size: var(--tc-text-xs);
  letter-spacing: .5px;
  text-transform: uppercase;
  font-weight: 600;
}

.tc-router-ministat-value {
  font-size: var(--tc-text-xl);
  color: var(--admin-text);
  font-weight: 600;
  line-height: 1.2;
}

.tc-router-ministat-sub {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
}

.tc-link-primary:hover {
  text-decoration: underline;
}

.tc-recursos-grid {
  gap: var(--tc-space-3);
  grid-template-columns: repeat(3, 1fr);
  display: grid;
}

@media (max-width: 1024px) {
  .tc-recursos-grid {
    grid-template-columns: 1fr;
  }
}

.tc-recurso-card {
  padding: var(--tc-space-4);
  background: var(--admin-bg, #f1f5f9);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
}

.tc-recurso-head {
  color: var(--admin-text-muted);
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  display: flex;
}

.tc-recurso-icon {
  display: inline-flex;
}

.tc-recurso-label {
  font-size: var(--tc-text-xs);
  letter-spacing: .5px;
  text-transform: uppercase;
  font-weight: 600;
}

.tc-recurso-valor {
  font-size: var(--tc-text-2xl);
  color: var(--admin-text);
  margin-bottom: var(--tc-space-2);
  font-weight: 600;
}

.tc-recurso-barra {
  background: var(--admin-border, #e2e8f0);
  border-radius: 3px;
  width: 100%;
  height: 6px;
  overflow: hidden;
}

.tc-recurso-barra-fill {
  border-radius: 3px;
  height: 100%;
  transition: width .3s, background .3s;
}

.tc-recurso-sub {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
  margin-top: 4px;
}

.tc-asociaciones {
  gap: var(--tc-space-2);
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.tc-asociacion-item {
  align-items: center;
  gap: var(--tc-space-3);
  padding: var(--tc-space-3) var(--tc-space-4);
  background: var(--admin-bg, #f1f5f9);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  color: var(--admin-text);
  text-decoration: none;
  transition: border-color .1s;
  display: flex;
}

.tc-asociacion-item:hover {
  border-color: var(--admin-text-hint, #94a3b8);
}

.tc-asociacion-icon {
  border-radius: var(--tc-radius);
  background: var(--admin-bg);
  width: 32px;
  height: 32px;
  color: var(--admin-primary);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
}

.tc-asociacion-body {
  flex-direction: column;
  flex: 1;
  display: flex;
}

.tc-asociacion-label {
  font-size: var(--tc-text-base);
  font-weight: 500;
}

.tc-asociacion-count {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted);
  font-variant-numeric: tabular-nums;
}

.tc-asociacion-sub {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted);
  font-style: italic;
}

.tc-asociacion-arrow {
  color: var(--admin-text-hint, #94a3b8);
}

.tc-timeline {
  margin: 0;
  padding: 0;
  list-style: none;
}

.tc-timeline-item {
  align-items: flex-start;
  gap: var(--tc-space-3);
  padding: var(--tc-space-3) 0;
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  display: flex;
}

.tc-timeline-item:last-child {
  border-bottom: none;
}

.tc-timeline-icon {
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  display: flex;
}

.tc-timeline-icon--ok {
  background: var(--tc-success-bg);
  color: var(--tc-success);
}

.tc-timeline-icon--warn {
  background: var(--tc-warning-bg);
  color: var(--tc-warning);
}

.tc-timeline-icon--danger {
  background: var(--tc-danger-bg);
  color: var(--tc-danger);
}

.tc-timeline-icon--neutral {
  background: var(--admin-bg);
  color: var(--tc-neutral-text);
}

.tc-timeline-body {
  flex: 1;
}

.tc-timeline-descripcion {
  font-size: var(--tc-text-base);
  color: var(--admin-text);
}

.tc-timeline-meta {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
  margin-top: 2px;
}

.tc-timeline-empty {
  padding: var(--tc-space-5);
  text-align: center;
  color: var(--admin-text-muted);
  font-size: var(--tc-text-sm);
}

.tc-general-grid {
  gap: var(--tc-space-4);
  flex-direction: column;
  display: flex;
}

.tc-general-2col {
  gap: var(--tc-space-4);
  grid-template-columns: 1fr 1fr;
  display: grid;
}

@media (max-width: 1000px) {
  .tc-general-2col {
    grid-template-columns: 1fr;
  }
}

.tc-datos-tecnicos {
  gap: var(--tc-space-3);
  margin: 0;
  display: grid;
}

.tc-datos-tecnicos > div {
  gap: var(--tc-space-3);
  padding-bottom: var(--tc-space-2);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  grid-template-columns: 140px 1fr;
  display: grid;
}

.tc-datos-tecnicos > div:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.tc-datos-tecnicos dt {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted);
  margin: 0;
}

.tc-datos-tecnicos dd {
  font-size: var(--tc-text-base);
  color: var(--admin-text);
  text-align: right;
  word-break: break-word;
  margin: 0;
}

input[type="checkbox"], input[type="radio"] {
  appearance: none;
  border: 1.5px solid var(--admin-border, #cbd5e1);
  background: var(--admin-card-bg, #fff);
  cursor: pointer;
  vertical-align: middle;
  box-sizing: border-box;
  flex-shrink: 0;
  width: 16px;
  min-width: 16px;
  max-width: 16px;
  height: 16px;
  min-height: 16px;
  max-height: 16px;
  margin: 0;
  padding: 0;
  transition: background .12s, border-color .12s;
  position: relative;
}

input[type="checkbox"] {
  border-radius: 4px;
}

input[type="radio"] {
  border-radius: 50%;
}

input[type="checkbox"]:hover:not(:disabled), input[type="radio"]:hover:not(:disabled) {
  border-color: var(--admin-primary, #2563eb);
}

input[type="checkbox"]:checked, input[type="radio"]:checked {
  background: var(--admin-primary, #2563eb);
  border-color: var(--admin-primary, #2563eb);
}

input[type="checkbox"]:checked:after {
  content: "";
  border: 2px solid #fff;
  border-width: 0 2px 2px 0;
  width: 5px;
  height: 9px;
  position: absolute;
  top: -1px;
  left: 3px;
  transform: rotate(45deg);
}

input[type="radio"]:checked:after {
  content: "";
  background: #fff;
  border-radius: 50%;
  width: 6px;
  height: 6px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

input[type="checkbox"]:focus-visible, input[type="radio"]:focus-visible {
  outline: 2px solid var(--admin-primary, #2563eb);
  outline-offset: 2px;
}

input[type="checkbox"]:disabled, input[type="radio"]:disabled {
  opacity: .5;
  cursor: not-allowed;
}

.tc-nowrap {
  white-space: nowrap;
}

@media (max-width: 640px) {
  .tc-filter-bar {
    flex-direction: column;
    align-items: stretch;
  }

  .tc-filter-bar > * {
    width: 100%;
    max-width: 100%;
  }

  .tc-filter-search {
    min-width: 0;
  }
}

.tc-skeleton {
  background: linear-gradient(90deg,
    var(--admin-border, #e2e8f0) 0%,
    var(--admin-bg, #f8fafc) 50%,
    var(--admin-border, #e2e8f0) 100%);
  color: #0000;
  -webkit-user-select: none;
  user-select: none;
  pointer-events: none;
  background-size: 200% 100%;
  border-radius: 4px;
  animation: 1.4s ease-in-out infinite tcSkeletonShimmer;
  display: inline-block;
}

@media (prefers-reduced-motion: reduce) {
  .tc-skeleton {
    opacity: .7;
    animation: none;
  }
}

@keyframes tcSkeletonShimmer {
  0% {
    background-position: 100% 0;
  }

  100% {
    background-position: -100% 0;
  }
}

.tc-skeleton--stat {
  width: 60%;
  height: 24px;
  margin-top: 4px;
}

.tc-skeleton--line {
  width: 100%;
  height: 12px;
  margin: 4px 0;
  display: block;
}

.tc-summary-strip {
  background: var(--admin-card-bg);
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius-lg);
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin-bottom: 16px;
  padding: 12px 18px;
  display: grid;
}

.tc-summary-strip--auto {
  grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
  row-gap: .75rem;
}

.tc-summary-item {
  border-left: 1px solid var(--admin-border);
  flex-direction: column;
  gap: 3px;
  padding: 0 18px;
  display: flex;
}

.tc-summary-item--link {
  color: inherit;
  border-radius: var(--tc-radius);
  text-decoration: none;
  transition: background .12s;
}

.tc-summary-item--link:hover {
  background: var(--admin-bg, #f8fafc);
}

.tc-summary-item:first-child {
  border-left: none;
  padding-left: 0;
}

.tc-summary-label {
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--admin-text-muted);
  align-items: center;
  gap: 6px;
  font-size: 10.5px;
  font-weight: 600;
  display: flex;
}

.tc-summary-icon {
  opacity: .7;
  width: 14px;
  height: 14px;
  display: inline-flex;
}

.tc-summary-value {
  color: var(--admin-text);
  font-variant-numeric: tabular-nums;
  align-items: baseline;
  gap: 4px;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  display: flex;
}

.tc-summary-value--warn {
  color: var(--tc-warning);
}

.tc-summary-value--danger {
  color: var(--tc-danger);
}

.tc-summary-value--success {
  color: var(--tc-success);
}

.tc-summary-sub {
  color: var(--admin-text-muted);
  margin-top: 2px;
  font-size: 11px;
}

.tc-skeleton--line-sm {
  width: 60%;
  height: 10px;
  margin: 3px 0;
  display: block;
}

@media (max-width: 1024px) {
  .tc-summary-strip {
    grid-template-columns: repeat(2, 1fr);
    row-gap: 12px;
  }

  .tc-summary-item:nth-child(odd) {
    border-left: none;
    padding-left: 0;
  }
}

@media (max-width: 640px) {
  .tc-summary-strip {
    grid-template-columns: 1fr;
    padding: 14px;
  }

  .tc-summary-item {
    border-left: none;
    border-top: 1px solid var(--admin-border);
    padding: 8px 0 0;
  }

  .tc-summary-item:first-child {
    border-top: none;
    padding-top: 0;
  }

  .tc-summary-value {
    font-size: 20px;
  }
}

:root {
  --tc-violet: #7c3aed;
  --tc-violet-bg: #ede9fe;
  --tc-violet-text: #5b21b6;
}

.admin-shell[data-theme="dark"] {
  --tc-violet: #a78bfa;
  --tc-violet-bg: #7c3aed26;
  --tc-violet-text: #c4b5fd;
}

:root {
  --tc-orange: #ea580c;
  --tc-orange-bg: #fff7ed;
  --tc-orange-text: #9a3412;
}

.admin-shell[data-theme="dark"] {
  --tc-orange: #fb923c;
  --tc-orange-bg: #ea580c2e;
  --tc-orange-text: #fdba74;
}

:root {
  --tc-slate: #334155;
  --tc-slate-bg: #e2e8f0;
  --tc-slate-text: #1e293b;
}

.admin-shell[data-theme="dark"] {
  --tc-slate: #cbd5e1;
  --tc-slate-bg: #33415566;
  --tc-slate-text: #e2e8f0;
}

.tc-action-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(14rem, 25% - 9px)), 1fr));
  gap: 12px;
  display: grid;
}

.tc-action-grid--3 {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(16rem, 33.3333% - 8px)), 1fr));
}

.tc-action-card {
  background: var(--admin-card-bg);
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius-lg);
  cursor: pointer;
  height: 100%;
  transition: border-color .15s,
              transform var(--tc-transicion) var(--tc-curva),
              box-shadow var(--tc-transicion) var(--tc-curva);
  grid-template-columns: 42px 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  display: grid;
}

.tc-action-card:hover {
  border-color: var(--admin-primary);
}

@media (hover: hover) and (pointer: fine) {
  .tc-action-card:hover {
    transform: translateY(var(--tc-hover-lift));
    box-shadow: var(--admin-shadow, 0 4px 12px #00000014);
  }
}

.tc-action-card:active {
  transform: translateY(0) scale(var(--tc-press-escala));
}

.tc-action-card--danger {
  background: linear-gradient(180deg, var(--admin-card-bg) 0%, #fee2e240 100%);
  border-color: #ef44444d;
}

.tc-action-card--warn {
  background: linear-gradient(180deg, var(--admin-card-bg) 0%, #fef9c359 100%);
  border-color: #eab3084d;
}

.tc-action-icon {
  border-radius: 10px;
  justify-content: center;
  align-items: center;
  width: 42px;
  height: 42px;
  display: flex;
}

.tc-action-icon--info {
  background: var(--tc-info-bg);
  color: var(--tc-info);
}

.tc-action-icon--success {
  background: var(--tc-success-bg);
  color: var(--tc-success);
}

.tc-action-icon--warning {
  background: var(--tc-warning-bg);
  color: var(--tc-warning);
}

.tc-action-icon--danger {
  background: var(--tc-danger-bg);
  color: var(--tc-danger);
}

.tc-action-icon--violet {
  background: var(--tc-violet-bg, #ede9fe);
  color: var(--tc-violet, #7c3aed);
}

.tc-action-icon--orange {
  color: #ea580c;
  background: #fff7ed;
}

.tc-action-body {
  min-width: 0;
  overflow: hidden;
}

.tc-action-label {
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--admin-text-muted);
  margin-bottom: 2px;
  font-size: 11px;
  font-weight: 600;
}

.tc-action-big {
  align-items: baseline;
  gap: 8px;
  display: flex;
}

.tc-action-value {
  color: var(--admin-text);
  font-variant-numeric: tabular-nums;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
}

.tc-action-hint {
  color: var(--admin-text-muted);
  align-items: center;
  gap: 4px;
  margin-top: 2px;
  font-size: 11px;
  display: flex;
}

.tc-action-hint--urgent {
  color: var(--tc-danger);
  font-weight: 600;
}

.tc-action-hint--warn {
  color: var(--tc-warning-text);
  font-weight: 600;
}

.tc-action-hint--success {
  color: var(--tc-success);
  font-weight: 600;
}

.tc-action-arrow {
  color: var(--admin-text-muted);
}

@media (max-width: 640px) {
  .tc-action-grid {
    gap: 10px;
  }

  .tc-action-card {
    padding: 12px 14px;
  }

  .tc-action-icon {
    width: 36px;
    height: 36px;
  }

  .tc-action-value {
    font-size: 22px;
  }
}

.tc-pulse-dot {
  background: var(--tc-danger);
  border-radius: 50%;
  flex-shrink: 0;
  width: 6px;
  height: 6px;
  animation: 2s infinite tc-pulse;
}

@keyframes tc-pulse {
  0%, 100% {
    opacity: 1;
  }

  50% {
    opacity: .3;
  }
}

.tc-nav-tile-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 22px;
  display: grid;
}

.tc-nav-tile {
  background: var(--admin-card-bg);
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius-lg);
  align-items: center;
  gap: 12px;
  min-height: 56px;
  padding: 10px 14px;
  text-decoration: none;
  transition: border-color .15s, background .15s;
  display: flex;
}

.tc-nav-tile:hover {
  border-color: var(--admin-primary);
  background: var(--admin-surface-hover, var(--admin-card-bg));
}

.tc-nav-tile-icon {
  border-radius: 8px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 32px;
  height: 32px;
  display: flex;
}

.tc-nav-tile-icon--info {
  background: var(--tc-info-bg);
  color: var(--tc-info);
}

.tc-nav-tile-icon--success {
  background: var(--tc-success-bg);
  color: var(--tc-success);
}

.tc-nav-tile-icon--warning {
  background: var(--tc-warning-bg);
  color: var(--tc-warning);
}

.tc-nav-tile-icon--danger {
  background: var(--tc-danger-bg);
  color: var(--tc-danger);
}

.tc-nav-tile-body {
  flex-direction: column;
  flex: 1;
  min-width: 0;
  display: flex;
}

.tc-nav-tile-title {
  color: var(--admin-text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
}

.tc-nav-tile-chevron {
  color: var(--admin-text-muted);
  flex-shrink: 0;
}

@media (max-width: 1024px) {
  .tc-nav-tile-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .tc-nav-tile-grid {
    grid-template-columns: 1fr;
  }

  .tc-nav-tile {
    min-height: 0;
  }
}

.tc-inv-filtros .tc-filter-input {
  margin-top: 0;
}

.tc-band-head {
  justify-content: space-between;
  align-items: center;
  margin: 0 0 10px 4px;
  display: flex;
}

.tc-band-title {
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--admin-text-muted);
  margin: 0;
  font-size: 11px;
  font-weight: 700;
}

.tc-band-action {
  align-items: center;
  gap: 8px;
  display: flex;
}

.tc-band {
  margin-bottom: 14px;
}

.tc-perf-chart {
  background: var(--admin-card-bg);
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius-lg);
  padding: 18px 20px;
}

.tc-perf-title {
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--admin-text-muted);
  margin-bottom: 8px;
  font-size: 11px;
  font-weight: 600;
}

.tc-perf-headline {
  align-items: baseline;
  gap: 12px;
  margin-bottom: 14px;
  display: flex;
}

.tc-perf-big {
  color: var(--admin-text);
  font-variant-numeric: tabular-nums;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
}

.tc-perf-delta {
  font-size: 13px;
  font-weight: 600;
}

.tc-perf-delta--up {
  color: var(--tc-success);
}

.tc-perf-delta--down {
  color: var(--tc-danger);
}

.tc-perf-delta--flat {
  color: var(--admin-text-muted);
}

.tc-perf-sub {
  color: var(--admin-text-muted);
  margin-left: auto;
  font-size: 12px;
}

.tc-perf-chart-slot {
  width: 100%;
}

.tc-perf-chart-slot svg {
  width: 100%;
  display: block;
}

.tc-perf-legend {
  color: var(--admin-text-muted);
  gap: 16px;
  margin-top: 8px;
  font-size: 11px;
  display: flex;
}

.tc-legend-dot {
  vertical-align: middle;
  border-radius: 3px;
  width: 10px;
  height: 10px;
  margin-right: 4px;
  display: inline-block;
}

.tc-legend-dot--round {
  border-radius: 50%;
}

.tc-kpi-stack {
  flex-direction: column;
  gap: 10px;
  display: flex;
}

.tc-kpi-row {
  background: var(--admin-card-bg);
  border: 1px solid var(--admin-border);
  border-radius: 10px;
  grid-template-columns: 32px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  display: grid;
}

.tc-kpi-dot {
  border-radius: var(--tc-radius);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 32px;
  height: 32px;
  display: flex;
}

.tc-kpi-dot--info {
  background: var(--tc-info-bg);
  color: var(--tc-info);
}

.tc-kpi-dot--success {
  background: var(--tc-success-bg);
  color: var(--tc-success);
}

.tc-kpi-dot--warning {
  background: var(--tc-warning-bg);
  color: var(--tc-warning);
}

.tc-kpi-dot--danger {
  background: var(--tc-danger-bg);
  color: var(--tc-danger);
}

.tc-kpi-dot--violet {
  background: var(--tc-violet-bg);
  color: var(--tc-violet);
}

.tc-kpi-text {
  min-width: 0;
}

.tc-kpi-label {
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted);
  font-size: 11px;
  font-weight: 600;
}

.tc-kpi-value {
  color: var(--admin-text);
  font-variant-numeric: tabular-nums;
  margin-top: 2px;
  font-size: 17px;
  font-weight: 700;
}

.tc-kpi-delta {
  font-variant-numeric: tabular-nums;
  border-radius: 6px;
  padding: 2px 6px;
  font-size: 11px;
  font-weight: 600;
}

.tc-kpi-delta--up {
  color: var(--tc-success);
  background: var(--tc-success-bg);
}

.tc-kpi-delta--down {
  color: var(--tc-danger);
  background: var(--tc-danger-bg);
}

.tc-kpi-delta--flat {
  color: var(--admin-text-muted);
  background: var(--admin-bg);
}

@media (max-width: 640px) {
  .tc-kpi-stack {
    gap: 8px;
  }

  .tc-kpi-stack > * {
    font-size: .85rem;
  }
}

.tc-comp-card {
  background: var(--admin-card-bg);
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius-lg);
  padding: 18px;
}

.tc-comp-card-head {
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
  display: flex;
}

.tc-comp-card-title {
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--admin-text-muted);
  font-size: 11px;
  font-weight: 600;
}

.tc-comp-card-head a {
  color: var(--admin-primary);
  text-transform: none;
  letter-spacing: 0;
  font-size: 12px;
  font-weight: 500;
  text-decoration: none;
}

.tc-comp-rows {
  grid-template-columns: minmax(0, 170px) minmax(2.5rem, 1fr) auto;
  gap: 0 10px;
  display: grid;
}

.tc-bar-row {
  grid-template-columns: subgrid;
  border-bottom: 1px solid var(--admin-border);
  grid-column: 1 / -1;
  align-items: center;
  padding: 8px 0;
  display: grid;
}

.tc-bar-row > * {
  min-width: 0;
}

.tc-comp-rows > :not(.tc-bar-row) {
  grid-column: 1 / -1;
}

.tc-bar-row:last-child {
  border-bottom: none;
}

.tc-bar-label {
  color: var(--admin-text);
  font-size: 13px;
  font-weight: 500;
}

.tc-bar-label--mono {
  overflow-wrap: anywhere;
  font-family: ui-monospace, monospace;
}

.tc-bar-sub {
  color: var(--admin-text-muted);
  margin-top: 1px;
  font-size: 11px;
}

.tc-bar-track {
  background: var(--admin-bg);
  border-radius: 4px;
  height: 8px;
  overflow: hidden;
}

.tc-bar-fill {
  border-radius: 4px;
  height: 100%;
}

.tc-bar-fill--ok {
  background: var(--tc-success);
}

.tc-bar-fill--warn {
  background: var(--tc-warning);
}

.tc-bar-fill--danger {
  background: var(--tc-danger);
}

.tc-bar-fill--info {
  background: var(--admin-primary);
}

.tc-bar-fill--violet {
  background: var(--tc-violet);
}

.tc-bar-fill--neutral {
  background: var(--tc-estado-neutral-icono, #94a3b8);
}

.tc-bar-fill--segmented {
  display: flex;
  overflow: hidden;
}

.tc-bar-segment {
  height: 100%;
}

.tc-bar-segment:not(:last-child) {
  border-right: 1px solid var(--admin-card-bg);
}

.tc-bar-segment--ok {
  background: var(--tc-success);
}

.tc-bar-segment--warn {
  background: var(--tc-warning);
}

.tc-bar-segment--danger {
  background: var(--tc-danger);
}

.tc-bar-segment--info {
  background: var(--admin-primary);
}

.tc-bar-segment--violet {
  background: var(--tc-violet);
}

.tc-bar-caption {
  color: var(--admin-text-muted);
  margin-top: 4px;
  font-size: 11px;
  line-height: 1.4;
}

.tc-bar-value-col {
  text-align: right;
}

.tc-bar-value {
  color: var(--admin-text);
  font-variant-numeric: tabular-nums;
  font-size: 14px;
  font-weight: 700;
}

.tc-bar-value--warn {
  color: var(--tc-warning-text);
}

.tc-bar-value--danger {
  color: var(--tc-danger);
}

.tc-bar-value-sub {
  color: var(--admin-text-muted);
  margin-top: 1px;
  font-size: 11px;
  font-weight: 500;
}

.tc-bar-delta {
  font-variant-numeric: tabular-nums;
  font-size: 11px;
  font-weight: 600;
}

.tc-bar-delta--up {
  color: var(--tc-success);
}

.tc-bar-delta--down {
  color: var(--tc-danger);
}

.tc-bar-delta--flat {
  color: var(--admin-text-muted);
}

@media (max-width: 640px) {
  .tc-comp-card {
    padding: 12px;
  }

  .tc-comp-card-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  .tc-comp-card-title {
    font-size: 14px;
  }
}

.tc-timeline {
  flex-direction: column;
  gap: 0;
  display: flex;
}

.tc-timeline-empty {
  color: var(--admin-text-muted);
  text-align: center;
  padding: 24px;
  font-size: 13px;
}

.tc-tl-row {
  border-bottom: 1px solid var(--admin-border);
  grid-template-columns: 90px 22px 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 11px 0;
  display: grid;
}

.tc-tl-row:last-child {
  border-bottom: none;
}

.tc-actividad-flush .tc-tl-row {
  padding-left: var(--tc-space-5);
  padding-right: var(--tc-space-5);
}

.tc-tl-time {
  color: var(--admin-text-muted);
  font-variant-numeric: tabular-nums;
  font-size: 11px;
}

.tc-tl-dot {
  justify-content: center;
  align-items: center;
  display: flex;
  position: relative;
}

.tc-tl-dot:before {
  content: "";
  background: var(--admin-border);
  z-index: 0;
  width: 1px;
  position: absolute;
  top: -12px;
  bottom: -12px;
  left: 50%;
  transform: translateX(-.5px);
}

.tc-tl-row:first-child .tc-tl-dot:before {
  top: 50%;
}

.tc-tl-row:last-child .tc-tl-dot:before {
  bottom: 50%;
}

.tc-tl-bullet {
  z-index: 1;
  border: 2px solid var(--admin-card-bg);
  box-sizing: content-box;
  border-radius: 50%;
  width: 10px;
  height: 10px;
  position: relative;
}

.tc-tl-bullet--success {
  background: var(--tc-success);
}

.tc-tl-bullet--danger {
  background: var(--tc-danger);
}

.tc-tl-bullet--info {
  background: var(--tc-info);
}

.tc-tl-bullet--violet {
  background: var(--tc-violet);
}

.tc-tl-bullet--warning {
  background: var(--tc-warning);
}

.tc-tl-msg {
  color: var(--admin-text);
  font-size: 13px;
  line-height: 1.4;
}

.tc-tl-msg .tc-strong {
  font-weight: 600;
}

.tc-tl-msg .tc-muted {
  color: var(--admin-text-muted);
}

.tc-tl-msg .tc-link {
  color: var(--admin-primary);
  font-weight: 600;
  text-decoration: none;
}

.tc-tl-msg .tc-mono {
  font-family: ui-monospace, monospace;
  font-size: 12px;
}

.tc-tl-type {
  border-radius: 20px;
  flex-shrink: 0;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
}

.tc-tl-type--success {
  background: var(--tc-success-bg);
  color: var(--tc-success-text);
}

.tc-tl-type--danger {
  background: var(--tc-danger-bg);
  color: var(--tc-danger-text);
}

.tc-tl-type--info {
  background: var(--tc-info-bg);
  color: var(--tc-info-text);
}

.tc-tl-type--violet {
  background: var(--tc-violet-bg);
  color: var(--tc-violet-text);
}

.tc-tl-type--warning {
  background: var(--tc-warning-bg);
  color: var(--tc-warning-text);
}

.tc-timeline-footer {
  padding: var(--tc-space-4) var(--tc-space-5);
  border-top: 1px solid var(--admin-border);
  justify-content: center;
  display: flex;
}

.tc-team-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  display: grid;
}

.tc-tech-card {
  background: var(--admin-card-bg);
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius-lg);
  flex-direction: column;
  gap: 10px;
  padding: 14px;
  display: flex;
}

.tc-tech-card--busy {
  border-color: #eab3084d;
}

.tc-tech-card--overloaded {
  border-color: #ef44444d;
}

.tc-tech-card--free {
  border-color: #16a34a40;
}

.tc-tech-card--offline {
  opacity: .55;
  background: linear-gradient(180deg, var(--admin-card-bg) 0%, var(--admin-bg) 100%);
}

.tc-tech-head {
  align-items: center;
  gap: 10px;
  display: flex;
}

.tc-tech-avatar {
  background: var(--tc-info-bg);
  width: 36px;
  height: 36px;
  color: var(--tc-info-text);
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  font-size: 14px;
  font-weight: 700;
  display: flex;
}

.tc-tech-avatar--2 {
  background: var(--tc-violet-bg);
  color: var(--tc-violet-text);
}

.tc-tech-avatar--3 {
  background: var(--tc-success-bg);
  color: var(--tc-success-text);
}

.tc-tech-avatar--4 {
  background: var(--tc-warning-bg);
  color: var(--tc-warning-text);
}

.tc-tech-avatar--5 {
  color: #854d0e;
  background: #fef3c7;
}

.tc-tech-avatar--6 {
  color: #5b21b6;
  background: #ede9fe;
}

.tc-tech-avatar--7 {
  color: #9d174d;
  background: #fce7f3;
}

.tc-tech-avatar--8 {
  background: var(--admin-bg);
  color: var(--admin-text-muted);
}

.tc-tech-head-text {
  min-width: 0;
}

.tc-tech-name {
  color: var(--admin-text);
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.2;
}

.tc-tech-meta-row {
  color: var(--admin-text-muted);
  justify-content: space-between;
  font-size: 12px;
  line-height: 1.3;
  display: flex;
}

.tc-tech-val {
  color: var(--admin-text);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}

.tc-tech-next {
  color: var(--admin-text-muted);
  border-top: 1px solid var(--admin-border);
  padding-top: 8px;
  font-size: 11px;
}

.tc-tech-next-time {
  color: var(--admin-text);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}

.tc-tech-next--empty, .tc-tech-next--offline {
  color: var(--admin-text-muted);
}

.tc-tech-load {
  background: var(--admin-bg);
  border-radius: 3px;
  height: 5px;
  margin-top: 4px;
  overflow: hidden;
}

.tc-tech-load-fill {
  background: var(--tc-success);
  border-radius: 3px;
  height: 100%;
}

.tc-tech-load-fill--busy {
  background: var(--tc-warning);
}

.tc-tech-load-fill--overloaded {
  background: var(--tc-danger);
}

.tc-rr-card {
  background: var(--admin-card-bg);
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius-lg);
  overflow: hidden;
}

.tc-rr-head {
  border-bottom: 1px solid var(--admin-border);
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  display: flex;
}

.tc-rr-title {
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--admin-text-muted);
  font-size: 11px;
  font-weight: 600;
}

.tc-rr-meta {
  color: var(--admin-text-muted);
  font-size: 12px;
}

.tc-rr-all {
  color: var(--admin-primary);
  font-size: 12px;
  font-weight: 500;
  text-decoration: none;
}

.tc-rr-tbl {
  border-collapse: collapse;
  width: 100%;
}

.tc-rr-tbl th {
  text-align: left;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted);
  background: var(--admin-bg);
  border-bottom: 1px solid var(--admin-border);
  white-space: nowrap;
  padding: 9px 14px;
  font-size: 10.5px;
  font-weight: 600;
}

.tc-rr-tbl th.tc-rr-right {
  text-align: right;
}

.tc-rr-tbl td {
  border-bottom: 1px solid var(--admin-border);
  padding: 11px 14px;
  font-size: 13px;
}

.tc-rr-tbl tr:last-child td {
  border-bottom: none;
}

.tc-rr-tbl tr:hover td {
  background: var(--admin-bg);
}

.tc-rr-tbl td.tc-rr-right {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.tc-rr-tbl td.tc-rr-mono {
  color: var(--admin-text-muted);
  font-family: ui-monospace, monospace;
  font-size: 12px;
}

.tc-rr-tbl td.tc-rr-muted {
  color: var(--admin-text-muted);
  font-size: 12px;
}

.tc-rr-name {
  color: var(--admin-text);
  font-weight: 600;
}

.tc-rr-lat--warn {
  color: var(--tc-warning-text);
  font-weight: 600;
}

.tc-rr-lat--danger {
  color: var(--tc-danger);
  font-weight: 600;
}

.tc-rr-link {
  color: var(--admin-primary);
  font-size: 12px;
  font-weight: 500;
  text-decoration: none;
}

.tc-rr-link--danger {
  color: var(--tc-danger);
}

.tc-rr-scroll {
  overflow-x: auto;
}

.tc-action-link {
  color: inherit;
  text-decoration: none;
  display: block;
}

.admin-shell[data-theme="dark"] .tc-action-icon--orange {
  color: #fdba74;
  background: #ea580c2e;
}

.admin-shell[data-theme="dark"] .tc-tech-avatar--5 {
  color: #fde68a;
  background: #eab3082e;
}

.admin-shell[data-theme="dark"] .tc-tech-avatar--6 {
  color: #c4b5fd;
  background: #7c3aed33;
}

.admin-shell[data-theme="dark"] .tc-tech-avatar--7 {
  color: #fbcfe8;
  background: #f472b62e;
}

.admin-shell[data-theme="dark"] .tc-action-card--danger {
  background: linear-gradient(180deg, var(--admin-card-bg) 0%, #ef44441a 100%);
}

.admin-shell[data-theme="dark"] .tc-action-card--warn {
  background: linear-gradient(180deg, var(--admin-card-bg) 0%, #eab3081a 100%);
}

.tc-comp-empty {
  color: var(--admin-text-muted);
  text-align: center;
  padding: 20px 0;
  font-size: 13px;
}

.tc-dashboard-capacity-grid {
  grid-template-columns: 2fr 1fr;
  align-items: start;
  gap: 16px;
  display: grid;
}

.tc-dashboard-mini-stack {
  flex-direction: column;
  gap: 12px;
  display: flex;
}

@media (max-width: 1024px) {
  .tc-dashboard-capacity-grid {
    grid-template-columns: 1fr;
  }
}

.tc-header-actions {
  align-items: center;
  gap: 8px;
  display: flex;
}

.tc-perf-row {
  grid-template-columns: 2fr 1fr;
  align-items: start;
  gap: 14px;
  display: grid;
}

@media (max-width: 1024px) {
  .tc-perf-row {
    grid-template-columns: 1fr;
  }
}

.tc-comp-grid {
  grid-template-columns: 1fr 1fr;
  align-items: start;
  gap: 14px;
  display: grid;
}

@media (max-width: 1024px) {
  .tc-comp-grid {
    grid-template-columns: 1fr;
  }
}

.tc-bar12m-wrap {
  align-items: flex-end;
  gap: 4px;
  width: 100%;
  display: flex;
  overflow: hidden;
}

.tc-bar12m-col {
  flex-direction: column;
  flex: 1;
  align-items: center;
  gap: 4px;
  min-width: 0;
  display: flex;
}

.tc-bar12m-bars {
  align-items: flex-end;
  gap: 2px;
  width: 100%;
  display: flex;
}

.tc-bar12m-fact {
  background: var(--tc-info-bg);
  border-radius: 3px 3px 0 0;
  flex: 1;
  min-height: 2px;
}

.tc-bar12m-cobr {
  background: var(--tc-success);
  opacity: .75;
  border-radius: 3px 3px 0 0;
  flex: 1;
  min-height: 2px;
}

.tc-bar12m-label {
  color: var(--admin-text-muted);
  white-space: nowrap;
  text-align: center;
  font-variant-numeric: tabular-nums;
  text-overflow: ellipsis;
  max-width: 100%;
  font-size: 9px;
  overflow: hidden;
}

.tc-bar-chart-empty {
  color: var(--admin-text-muted);
  text-align: center;
  padding: 32px 0;
  font-size: 13px;
}

.tc-chart-legend {
  color: var(--admin-text-muted);
  gap: 14px;
  margin-top: 6px;
  font-size: 11px;
  display: flex;
}

.tc-chart-legend-item {
  align-items: center;
  gap: 5px;
  display: flex;
}

.tc-chart-legend-dot {
  border-radius: 3px;
  width: 10px;
  height: 10px;
  display: inline-block;
}

.tc-chart-legend-dot--info {
  background: var(--tc-info-bg);
  border: 1px solid var(--tc-info);
}

.tc-bar4sem {
  align-items: flex-end;
  gap: 8px;
  width: 100%;
  height: 80px;
  display: flex;
}

.tc-bar4sem-group {
  flex-direction: column;
  flex: 1;
  align-items: center;
  gap: 4px;
  display: flex;
}

.tc-bar4sem-pair {
  align-items: flex-end;
  gap: 3px;
  width: 100%;
  height: 64px;
  display: flex;
}

.tc-bar4sem-bar {
  border-radius: 3px 3px 0 0;
  flex: 1;
  min-height: 4px;
  transition: height .3s;
}

.tc-bar4sem-bar--blue {
  background: var(--tc-info);
  opacity: .85;
}

.tc-bar4sem-bar--violet {
  background: var(--tc-violet, #7c3aed);
  opacity: .75;
}

.tc-bar4sem-label {
  color: var(--admin-text-muted);
  font-variant-numeric: tabular-nums;
  font-size: 10px;
}

.tc-bar4sem-legend {
  color: var(--admin-text-muted);
  align-items: center;
  gap: 12px;
  font-size: 11px;
  display: flex;
}

.tc-bar4sem-legend-dot {
  border-radius: 2px;
  width: 10px;
  height: 10px;
  display: inline-block;
}

.tc-bar4sem-legend-dot--blue {
  background: var(--tc-info);
}

.tc-bar4sem-legend-dot--violet {
  background: var(--tc-violet, #7c3aed);
}

.tc-timeline-card {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  padding: 16px 20px;
}

.tc-chart-legend-dot--success {
  background: var(--tc-success);
  opacity: .75;
}

.tc-historial-header {
  align-items: center;
  display: flex;
}

.tc-historial-header:hover {
  background: var(--admin-bg, #f8fafc);
}

.tc-historial-toggle {
  min-width: 0;
  padding: var(--tc-space-4) var(--tc-space-5);
  cursor: pointer;
  text-align: left;
  color: var(--admin-text, #1e293b);
  background: none;
  border: none;
  flex: 1;
  align-items: center;
  display: flex;
}

.tc-historial-toggle-left {
  align-items: center;
  gap: var(--tc-space-2);
  font-size: var(--tc-text-base);
  font-weight: 600;
  display: flex;
}

.tc-historial-toggle-right {
  align-items: center;
  gap: var(--tc-space-2);
  padding-right: var(--tc-space-5);
  color: var(--admin-text-muted, #64748b);
  display: flex;
}

.tc-historial-chevron-btn {
  padding: var(--tc-space-1);
  cursor: pointer;
  color: var(--admin-text-muted, #64748b);
  background: none;
  border: none;
  justify-content: center;
  align-items: center;
  display: inline-flex;
}

.tc-historial-body {
  padding: var(--tc-space-3) var(--tc-space-5) var(--tc-space-4);
  border-top: 1px solid var(--admin-border, #e2e8f0);
}

.tc-timeline-nota {
  margin-top: var(--tc-space-1);
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  font-style: italic;
}

.tc-timeline-detalle {
  margin-top: var(--tc-space-1);
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.tc-timeline-icon--info {
  background: var(--tc-info-bg);
  color: var(--tc-info);
}

.tc-timeline-icon--primary {
  background: var(--tc-primary-bg);
  color: var(--tc-primary-text);
}

.tc-factura-impuestos-header {
  padding: var(--tc-space-2) var(--tc-space-5);
  background: var(--admin-bg, #f8fafc);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.tc-factura-detalle-label {
  font-size: var(--tc-text-xs);
  letter-spacing: .04em;
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  font-weight: 700;
}

.tc-factura-detalle-head {
  padding: var(--tc-space-3) var(--tc-space-5);
  background: var(--admin-bg, #f8fafc);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  justify-content: space-between;
  display: flex;
}

.tc-factura-detalle-head span {
  font-size: var(--tc-text-xs);
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--admin-text-muted, #64748b);
  font-weight: 700;
}

.tc-factura-detalle-subtotal {
  padding: var(--tc-space-2) var(--tc-space-5);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.tc-factura-detalle-subtotal-label {
  font-size: var(--tc-text-xs);
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--admin-text-muted, #64748b);
  font-weight: 700;
}

.tc-factura-detalle-subtotal-valor {
  font-size: var(--tc-text-sm);
  font-variant-numeric: tabular-nums;
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-grid-1-2-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

@media (max-width: 1024px) {
  .tc-grid-1-2-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .tc-grid-1-2-4 {
    grid-template-columns: 1fr;
  }
}

.tc-grid-1-2-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

@media (max-width: 1024px) {
  .tc-grid-1-2-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .tc-grid-1-2-3 {
    grid-template-columns: 1fr;
  }
}

.tc-grid-tarjetas {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, max(20rem, 33.3333% - 9.33333px)), 1fr));
  gap: 14px;
  display: grid;
}

.tc-grid-1-2-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

@media (max-width: 640px) {
  .tc-grid-1-2-2 {
    grid-template-columns: 1fr;
  }
}

.tc-grid-asym-2-1 {
  grid-template-columns: 2fr 1fr;
  gap: 14px;
  display: grid;
}

@media (max-width: 1024px) {
  .tc-grid-asym-2-1 {
    grid-template-columns: 1fr;
  }
}

.tc-grid-stack-side {
  grid-template-columns: 1fr 340px;
  gap: 16px;
  display: grid;
}

@media (max-width: 1024px) {
  .tc-grid-stack-side {
    grid-template-columns: 1fr;
  }
}

.tc-grid-label-value {
  grid-template-columns: 140px 1fr;
  gap: 12px;
  display: grid;
}

@media (max-width: 640px) {
  .tc-grid-label-value {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}

.tc-cobertura-cta-group {
  flex-direction: column;
  gap: .5rem;
  display: flex;
}

.tc-selcob {
  background: var(--admin-card-bg, #fff);
  grid-template-columns: minmax(0, 1fr) 360px;
  height: 100%;
  min-height: 480px;
  display: grid;
}

.tc-selcob-mapa {
  height: 100%;
  min-height: 320px;
  position: relative;
}

.tc-selcob-cargando {
  z-index: 1000;
  background: var(--admin-bg, #f1f5f9);
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-base);
  justify-content: center;
  align-items: center;
  display: flex;
  position: absolute;
  inset: 0;
}

.tc-selcob-panel {
  gap: var(--tc-space-4);
  padding: var(--tc-space-4);
  background: var(--admin-bg, #f1f5f9);
  border-left: 1px solid var(--admin-border, #e2e8f0);
  flex-direction: column;
  display: flex;
  overflow-y: auto;
}

.tc-selcob-cabecera {
  gap: var(--tc-space-2);
  color: var(--admin-primary, #2563eb);
  align-items: flex-start;
  display: flex;
}

.tc-selcob-titulo {
  font-size: var(--tc-text-lg);
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 700;
}

.tc-selcob-ayuda {
  margin: var(--tc-space-1) 0 0;
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  line-height: 1.45;
}

.tc-selcob-seccion {
  gap: var(--tc-space-2);
  padding: var(--tc-space-3);
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
  flex-direction: column;
  display: flex;
}

.tc-selcob-seccion .tc-form-label {
  font-size: var(--tc-text-sm);
  margin-bottom: 0;
}

.tc-selcob-seccion .tc-form-input {
  margin-top: 0;
}

.tc-selcob-subtitulo {
  font-size: var(--tc-text-xs);
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--admin-text-muted, #64748b);
  margin: 0;
  font-weight: 700;
}

.tc-selcob-buscador {
  position: relative;
}

.tc-selcob-buscando {
  right: var(--tc-space-3);
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.tc-selcob-sugerencias {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-sm);
  background: var(--admin-card-bg, #fff);
  max-height: 180px;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-y: auto;
}

.tc-selcob-sugerencias li + li {
  border-top: 1px solid var(--admin-border, #e2e8f0);
}

.tc-selcob-sugerencias button {
  width: 100%;
  padding: var(--tc-space-2) var(--tc-space-3);
  text-align: left;
  font-size: var(--tc-text-xs);
  color: var(--admin-text, #1e293b);
  cursor: pointer;
  background: none;
  border: none;
  display: block;
}

.tc-selcob-sugerencias button:hover {
  background: var(--admin-bg, #f1f5f9);
}

.tc-selcob-coordenadas {
  gap: var(--tc-space-2);
  align-items: center;
  display: flex;
}

.tc-selcob-coordenadas .tc-form-input {
  font-variant-numeric: tabular-nums;
  flex: 1;
  min-width: 0;
}

.tc-selcob-error {
  font-size: var(--tc-text-xs);
  color: var(--tc-danger-text, #991b1b);
  margin: 0;
}

.tc-selcob-radio {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  justify-content: space-between;
  align-items: baseline;
  display: flex;
}

.tc-selcob-radio strong {
  color: var(--admin-text, #1e293b);
}

.tc-selcob-rango {
  width: 100%;
  accent-color: var(--admin-primary, #2563eb);
  margin: 0;
}

.tc-selcob-vacio {
  gap: var(--tc-space-2);
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  align-items: flex-start;
  margin: 0;
  line-height: 1.45;
  display: flex;
}

.tc-selcob-naps {
  gap: var(--tc-space-2);
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.tc-selcob-nap {
  gap: var(--tc-space-1);
  width: 100%;
  padding: var(--tc-space-2) var(--tc-space-3);
  text-align: left;
  cursor: pointer;
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-sm);
  flex-direction: column;
  display: flex;
}

.tc-selcob-nap:disabled {
  cursor: default;
  opacity: 1;
}

.tc-selcob-nap--lejos {
  background: var(--tc-warning-bg, #fef9c3);
}

.tc-selcob-nap--elegida {
  background: var(--tc-primary-bg, #eef2ff);
  border-color: var(--tc-primary-text, #4338ca);
}

.tc-selcob-nap-fila {
  justify-content: space-between;
  gap: var(--tc-space-2);
  align-items: flex-start;
  display: flex;
}

.tc-selcob-nap-nombre {
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  font-weight: 700;
  overflow: hidden;
}

.tc-selcob-nap-ok, .tc-selcob-nap-lejos {
  gap: var(--tc-space-1);
  align-items: center;
  font-weight: 600;
  display: inline-flex;
}

.tc-selcob-nap-ok {
  color: var(--tc-success-text, #166534);
}

.tc-selcob-nap-lejos {
  color: var(--tc-warning-text, #854d0e);
}

.tc-selcob-nap-datos {
  justify-content: space-between;
  gap: var(--tc-space-2);
  display: flex;
}

.tc-selcob-nap-sin-puertos {
  color: var(--tc-danger-text, #991b1b);
  font-weight: 600;
}

.tc-selcob-nota {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

@media (max-width: 1024px) {
  .tc-selcob {
    grid-template-columns: 1fr;
    height: auto;
  }

  .tc-selcob-mapa {
    height: 55vh;
  }

  .tc-selcob-panel {
    border-left: none;
    border-top: 1px solid var(--admin-border, #e2e8f0);
    overflow: visible;
  }
}

.tc-modal-ubicacion {
  height: min(78vh, 56rem);
  margin: -1.25rem;
}

@media (max-width: 1024px) {
  .tc-modal-ubicacion {
    height: auto;
  }
}

.tc-dir-ubicacion {
  gap: var(--tc-space-3);
  flex-direction: column;
  grid-column: 1 / -1;
  display: flex;
}

.tc-dir-resuelto {
  align-items: center;
  gap: var(--tc-space-1) var(--tc-space-4);
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  flex-wrap: wrap;
  display: flex;
}

.tc-dir-resuelto strong {
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-dir-resuelto-link {
  color: var(--admin-primary, #2563eb);
  align-items: center;
  gap: 4px;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
}

.tc-dir-resuelto-link:hover {
  text-decoration: underline;
}

.tc-dir-vacio {
  align-items: center;
  gap: var(--tc-space-3);
  padding: var(--tc-space-6) var(--tc-space-4);
  text-align: center;
  border: 1.5px dashed var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
  background: var(--admin-bg, #f1f5f9);
  flex-direction: column;
  display: flex;
}

.tc-dir-vacio p {
  max-width: 52ch;
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-dir-pegar {
  gap: var(--tc-space-2);
  width: min(32rem, 100%);
  display: flex;
}

.tc-dir-pegar .tc-form-input {
  flex: 1;
  min-width: 0;
  margin-top: 0;
}

.tc-dir-pegar-error {
  font-size: var(--tc-text-xs);
  color: var(--tc-danger-text, #991b1b);
  margin: 0;
}

.tc-dir-alerta-fila {
  align-items: center;
  gap: var(--tc-space-3) var(--tc-space-4);
  flex-wrap: wrap;
  display: flex;
}

.tc-dir-campos {
  gap: var(--tc-space-4);
  flex-direction: column;
  grid-column: 1 / -1;
  display: flex;
  container-type: inline-size;
}

.tc-dir-fila-ubicacion {
  gap: var(--tc-space-4);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  display: grid;
}

@container (max-width: 720px) {
  .tc-dir-fila-ubicacion {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@container (max-width: 380px) {
  .tc-dir-fila-ubicacion {
    grid-template-columns: 1fr;
  }
}

.tc-dir-fila-calle {
  gap: var(--tc-space-4);
  grid-template-columns: minmax(0, 3fr) minmax(110px, 1fr);
  display: grid;
}

@media (max-width: 640px) {
  .tc-dir-fila-calle {
    grid-template-columns: 1fr;
  }
}

.tc-dir-gps {
  margin-left: var(--tc-space-2);
  font-size: var(--tc-text-xs);
  color: var(--tc-primary-text, #4338ca);
  align-items: center;
  gap: 4px;
  font-weight: 600;
  display: inline-flex;
}

.tc-dir-gps:before {
  content: "";
  background: currentColor;
  border-radius: 50%;
  width: 6px;
  height: 6px;
}

.tc-dir-pills {
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  grid-column: 1 / -1;
  display: flex;
}

.tc-dir-pill {
  padding: var(--tc-space-2) var(--tc-space-4);
  font: inherit;
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  cursor: pointer;
  border-radius: 999px;
  font-weight: 600;
}

.tc-dir-pill:hover {
  border-color: var(--admin-primary, #2563eb);
}

.tc-dir-pill:focus-visible {
  outline: 2px solid var(--admin-primary, #2563eb);
  outline-offset: 2px;
}

.tc-dir-pill--activo {
  color: var(--tc-primary-text, #4338ca);
  background: var(--tc-primary-bg, #eef2ff);
  border-color: var(--admin-primary, #2563eb);
}

.tc-dir-pill--otro {
  color: var(--admin-text-muted, #64748b);
  border-style: dashed;
}

.tc-dir-vivienda-vacia {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-alta-instalacion {
  grid-column: 1 / -1;
}

.tc-alta-nap {
  align-items: center;
  gap: var(--tc-space-3) var(--tc-space-4);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: color-mix(in srgb, var(--admin-primary, #2563eb) 6%, var(--admin-card-bg, #fff));
  border-radius: 10px;
  flex-wrap: wrap;
  grid-column: 1 / -1;
  max-width: 48rem;
  padding: .7rem .9rem;
  display: flex;
}

.tc-alta-nap--vacia {
  background: var(--admin-card-bg, #fff);
  border-style: dashed;
}

.tc-alta-nap-icono {
  width: 32px;
  height: 32px;
  color: var(--admin-primary, #2563eb);
  background: color-mix(in srgb, var(--admin-primary, #2563eb) 14%, var(--admin-card-bg, #fff));
  border-radius: 8px;
  flex-shrink: 0;
  place-items: center;
  display: grid;
}

.tc-alta-nap-caja {
  flex-direction: column;
  min-width: 0;
  display: flex;
}

.tc-alta-nap-nombre {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-alta-nap-libres {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
}

.tc-alta-nap-puerto {
  align-items: center;
  gap: var(--tc-space-2);
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  font-weight: 600;
  display: flex;
}

.tc-alta-nap-puerto .tc-dropdown {
  width: 8rem;
}

.tc-alta-nap-puerto--falta .tc-dropdown-trigger {
  border-color: var(--tc-warning, #eab308);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--tc-warning, #eab308) 18%, transparent);
}

.tc-alta-nap-acciones {
  gap: var(--tc-space-2);
  margin-left: auto;
  display: flex;
}

.tc-alta-nap-opcional {
  margin-left: var(--tc-space-2);
  border: 1px solid var(--admin-border, #e2e8f0);
  font-size: var(--tc-text-xs);
  text-transform: none;
  letter-spacing: 0;
  color: var(--admin-text-muted, #64748b);
  border-radius: 999px;
  padding: 1px 8px;
  font-weight: 600;
}

.tc-alta-nap-ayuda {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  grid-column: 1 / -1;
  margin: 0;
}

.tc-cobertura-pantalla {
  height: calc(100vh - 220px);
  min-height: 520px;
  padding: 0;
  overflow: hidden;
}

@media (max-width: 1024px) {
  .tc-cobertura-pantalla {
    height: auto;
  }
}

.tc-calendar-grid {
  grid-template-columns: repeat(7, minmax(120px, 1fr));
  gap: 1px;
  display: grid;
}

.tc-calendar-grid > * {
  min-height: 80px;
}

@media (max-width: 1024px) {
  .tc-calendar-wrap {
    -webkit-overflow-scrolling: touch;
    overflow-x: auto;
  }

  .tc-calendar-grid {
    min-width: 840px;
  }
}

@media (max-width: 640px) {
  .tc-calendar-wrap {
    overflow-x: visible;
  }

  .tc-calendar-grid {
    flex-direction: column;
    gap: 8px;
    min-width: 0;
    display: flex;
  }

  .tc-calendar-grid > * {
    border: 1px solid var(--admin-border);
    border-radius: var(--tc-radius);
    min-height: auto;
    padding: 12px;
  }

  .tc-calendar-day-header {
    margin-bottom: 8px;
    font-size: 13px;
    font-weight: 600;
  }
}

.tc-datepicker-grid {
  grid-template-columns: repeat(7, 1fr);
  display: grid;
}

.tc-datepicker-wrap {
  width: 100%;
  position: relative;
}

.tc-datepicker-wrap--sm {
  width: auto;
}

.tc-datepicker-trigger {
  cursor: pointer;
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2);
  text-align: left;
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text, #1e293b);
  display: flex;
}

.tc-datepicker-trigger:disabled {
  opacity: .5;
  cursor: not-allowed;
}

.tc-datepicker-trigger--sm {
  font-size: var(--tc-text-xs);
  min-width: 120px;
  padding: 4px 8px;
}

.tc-datepicker-placeholder {
  color: var(--admin-text-muted, #64748b);
  flex: 1;
}

.tc-datepicker-value {
  color: var(--admin-text, #1e293b);
  flex: 1;
}

.tc-datepicker-icon {
  color: var(--admin-text-muted, #64748b);
  flex-shrink: 0;
}

.tc-datepicker-clear {
  color: var(--admin-text-muted, #64748b);
  cursor: pointer;
  flex-shrink: 0;
}

.tc-datepicker-clear:hover {
  color: var(--tc-danger, #ef4444);
}

.tc-datepicker-popover {
  z-index: 60;
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  padding: var(--tc-space-3, 12px);
  width: 280px;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  box-shadow: 0 8px 24px #0000001f;
}

.tc-datepicker-header {
  margin-bottom: var(--tc-space-2, 8px);
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.tc-datepicker-month-label {
  font-weight: 600;
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text, #1e293b);
}

.tc-datepicker-nav {
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  display: flex;
}

.tc-datepicker-weekdays {
  margin-bottom: var(--tc-space-1, 4px);
}

.tc-datepicker-weekday {
  text-align: center;
  color: var(--admin-text-muted, #64748b);
  padding: var(--tc-space-1, 4px);
  font-size: .72rem;
  font-weight: 600;
}

.tc-datepicker-day {
  cursor: pointer;
  width: 32px;
  height: 32px;
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text, #1e293b);
  background: none;
  border: none;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  margin: 1px auto;
  font-weight: 400;
  transition: background .1s;
  display: flex;
}

.tc-datepicker-day:hover:not(:disabled) {
  background: var(--tc-primary-bg, #eef2ff);
  color: var(--admin-primary, #2563eb);
}

.tc-datepicker-day--in-range {
  background: var(--tc-primary-bg, #eef2ff);
  border-radius: 0;
}

.tc-datepicker-day--today {
  color: var(--admin-primary, #2563eb);
  font-weight: 600;
}

.tc-datepicker-day--selected {
  background: var(--admin-primary, #2563eb);
  color: var(--admin-card-bg, #fff);
  font-weight: 700;
}

.tc-datepicker-day--selected:hover {
  background: var(--admin-primary, #2563eb);
  color: var(--admin-card-bg, #fff);
}

.tc-rango-fechas {
  align-items: center;
  gap: var(--tc-space-2);
  flex-flow: row;
  display: inline-flex;
}

.tc-rango-fechas .tc-datepicker-wrap {
  flex: auto;
  min-width: 0;
}

.tc-rango-fechas-al {
  font-size: var(--tc-text-sm, .84rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-rango-fechas-limpiar {
  padding: var(--tc-space-1);
  border-radius: var(--tc-radius-sm);
  color: var(--admin-text-muted, #64748b);
  cursor: pointer;
  background: none;
  border: none;
  justify-content: center;
  align-items: center;
  display: inline-flex;
}

.tc-rango-fechas-limpiar:hover {
  background: var(--admin-table-hover, #0000000d);
  color: var(--admin-text, #1e293b);
}

@media (max-width: 640px) {
  .tc-rango-fechas {
    flex-wrap: wrap;
  }
}

.tc-datepicker-day--disabled {
  color: var(--admin-border, #e2e8f0);
  cursor: not-allowed;
  opacity: .4;
}

.tc-datepicker-footer {
  text-align: center;
  margin-top: var(--tc-space-2, 8px);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  padding-top: var(--tc-space-2, 8px);
}

.tc-datepicker-month-info {
  flex-direction: column;
  align-items: center;
  gap: 2px;
  display: flex;
}

.tc-datepicker-month-badge {
  letter-spacing: .02em;
  border-radius: var(--tc-radius-sm);
  padding: 1px 6px;
  font-size: .65rem;
  font-weight: 600;
  line-height: 1.4;
}

.tc-datepicker-month-badge--facturado {
  background: var(--tc-warning-bg, #fef9c3);
  color: var(--tc-warning-text, #854d0e);
}

.tc-datepicker-month-badge--disabled {
  background: var(--tc-neutral-bg, #f1f5f9);
  color: var(--tc-neutral-text, #475569);
}

.tc-datetimepicker-row {
  gap: var(--tc-space-2);
  width: 100%;
  display: flex;
}

.tc-datetimepicker-row .tc-datepicker-wrap {
  flex: auto;
  min-width: 0;
}

.tc-datetimepicker-time {
  flex: 0 0 7.5rem;
}

.tc-datepicker-popover--portal {
  z-index: 100001;
}

.tc-datetimepicker-time .tc-dropdown {
  width: 100%;
}

@media (max-width: 640px) {
  .tc-datetimepicker-row {
    flex-wrap: wrap;
  }

  .tc-datetimepicker-time {
    flex: 100%;
  }
}

.tc-portal-page {
  background: var(--admin-bg, #f8fafc);
  min-height: 100vh;
  color: var(--admin-text, #1e293b);
}

.tc-portal-container {
  max-width: 600px;
  margin: 0 auto;
  padding: 16px;
}

.tc-portal-header {
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  display: flex;
}

.tc-portal-header h1 {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
}

.tc-portal-back {
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  width: 36px;
  height: 36px;
  color: var(--admin-text, #1e293b);
  cursor: pointer;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  font-size: 1.1rem;
  text-decoration: none;
  display: inline-flex;
}

.tc-portal-list {
  flex-direction: column;
  gap: 10px;
  display: flex;
}

.tc-portal-card {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 12px;
  padding: 1rem 1.25rem;
}

.tc-portal-card--warning {
  border-left: 4px solid var(--tc-warning, #eab308);
}

.tc-portal-card-title {
  font-weight: 600;
  font-size: var(--tc-text-md);
  color: var(--admin-text, #1e293b);
  margin-bottom: 6px;
}

.tc-portal-card-title code {
  font-family: ui-monospace, monospace;
  font-size: var(--tc-text-sm);
  background: var(--admin-bg, #f8fafc);
  border-radius: 4px;
  padding: 1px 5px;
}

.tc-portal-card-meta {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin-bottom: 12px;
  line-height: 1.6;
}

.tc-portal-card-urgente {
  color: var(--tc-warning-text, #854d0e);
  font-weight: 600;
}

.tc-portal-actions {
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

.tc-portal-actions .tc-btn {
  flex: 1;
  min-width: 120px;
}

.tc-portal-state {
  text-align: center;
  color: var(--admin-text-muted, #64748b);
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 12px;
  padding: 2rem;
}

.tc-portal-state h2 {
  font-size: var(--tc-text-lg);
  color: var(--admin-text, #1e293b);
  margin-bottom: 6px;
  font-weight: 600;
}

.tc-portal-state p {
  margin-bottom: 16px;
  font-size: .85rem;
}

.tc-portal-state--error {
  background: var(--tc-danger-bg, #fee2e2);
  color: var(--tc-danger-text, #991b1b);
  border-color: var(--tc-danger, #fca5a5);
}

.tc-solicitar-cancelacion-info {
  border-radius: var(--tc-radius);
  background: var(--tc-warning-bg, #fef9c3);
  color: var(--tc-warning-text, #713f12);
  font-size: var(--tc-text-base);
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 16px;
  padding: 12px 14px;
  line-height: 1.45;
  display: flex;
}

.tc-solicitar-cancelacion-info-icon {
  flex-shrink: 0;
  margin-top: 1px;
}

.tc-modal-footer-actions {
  justify-content: flex-end;
  gap: 8px;
  display: flex;
}

.tc-cancelar-servicio-alerta {
  border-radius: var(--tc-radius);
  background: var(--tc-danger-bg, #fee2e2);
  color: var(--tc-danger-text, #991b1b);
  font-size: var(--tc-text-base);
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 16px;
  padding: 12px 14px;
  line-height: 1.45;
  display: flex;
}

.tc-cancelar-servicio-alerta-icon {
  flex-shrink: 0;
  margin-top: 1px;
}

.tc-cancelar-servicio-field {
  margin-bottom: 16px;
}

.tc-cancelar-servicio-label {
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted, #64748b);
  margin-bottom: 6px;
  font-size: .78rem;
  font-weight: 700;
  display: block;
}

.tc-cancelar-servicio-required {
  color: var(--tc-danger, #ef4444);
  margin-left: 2px;
}

.tc-cancelar-servicio-textarea {
  resize: vertical;
  min-height: 72px;
  font-family: inherit;
}

.tc-cancelar-servicio-contador {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  text-align: right;
  margin-top: 4px;
}

.tc-cancelar-servicio-empty {
  color: var(--admin-text-muted, #64748b);
  margin: 0;
  font-size: .85rem;
}

.tc-cancelar-servicio-error {
  border-radius: var(--tc-radius);
  background: var(--tc-danger-bg, #fee2e2);
  color: var(--tc-danger-text, #991b1b);
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  padding: 10px 12px;
  font-size: .85rem;
  font-weight: 500;
  display: flex;
}

.tc-portal-section-label {
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted, #64748b);
  margin-bottom: 8px;
  font-size: .78rem;
  font-weight: 600;
  display: block;
}

.tc-config-group {
  margin-bottom: var(--tc-space-6);
}

.tc-config-group-title {
  font-size: var(--tc-text-sm);
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 2px;
  font-weight: 700;
}

.tc-config-group-desc {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 var(--tc-space-3);
}

.tc-config-grid {
  gap: var(--tc-space-3);
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  display: grid;
}

.tc-config-card {
  align-items: flex-start;
  gap: var(--tc-space-3);
  padding: var(--tc-space-4);
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
  text-decoration: none;
  transition: border-color .15s, box-shadow .15s;
  display: flex;
}

.tc-config-card:hover {
  border-color: var(--admin-primary, #2563eb);
  box-shadow: 0 2px 8px #00000014;
}

.tc-config-card-icon {
  border-radius: var(--tc-radius);
  background: var(--tc-primary-bg, #eef2ff);
  width: 40px;
  height: 40px;
  color: var(--admin-primary, #2563eb);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: inline-flex;
}

.tc-config-card-body {
  flex-direction: column;
  flex: 1;
  gap: 4px;
  min-width: 0;
  display: flex;
}

.tc-config-card-title {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  font-weight: 700;
}

.tc-config-card-desc {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  line-height: 1.5;
}

.tc-config-card-arrow {
  color: var(--admin-text-muted, #64748b);
  flex-shrink: 0;
  align-self: center;
}

.tc-chip-clase {
  align-items: center;
  gap: .3rem;
  display: inline-flex;
}

.tc-chip--xs {
  border-radius: 8px;
  align-items: center;
  gap: 3px;
  padding: 1px 6px;
  font-size: .68rem;
  display: inline-flex;
}

.tc-router-servicios {
  flex-wrap: wrap;
  align-items: center;
  gap: 3px;
  display: flex;
}

.tc-sig {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  border-radius: 999px;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  font-size: .78rem;
  font-weight: 500;
  display: inline-flex;
}

.tc-sig--good {
  border-color: var(--tc-success, #16a34a);
  background: var(--tc-success-bg, #dcfce7);
  color: var(--tc-success-text, #166534);
}

.tc-sig--warn {
  border-color: var(--tc-warning, #eab308);
  background: var(--tc-warning-bg, #fef9c3);
  color: var(--tc-warning-text, #854d0e);
}

.tc-sig--bad {
  border-color: var(--tc-danger, #ef4444);
  background: var(--tc-danger-bg, #fee2e2);
  color: var(--tc-danger-text, #991b1b);
}

.tc-sig--na {
  color: var(--admin-text-muted, #64748b);
  background: none;
  border-color: #0000;
  font-weight: 400;
}

.tc-sig-wrap {
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  display: inline-flex;
}

.tc-sig-edad {
  color: var(--admin-text-muted, #64748b);
  font-size: .68rem;
}

.tc-sig-label {
  font-weight: 600;
}

.tc-sig-value {
  font-variant-numeric: tabular-nums;
}

.tc-sig-unit {
  opacity: .75;
  font-size: .7rem;
}

.admin-shell[data-theme="dark"] .admin-content .tc-sig--good {
  color: #4ade80;
  background: #22c55e26;
  border-color: #22c55e66;
}

.admin-shell[data-theme="dark"] .admin-content .tc-sig--warn {
  color: #facc15;
  background: #eab30826;
  border-color: #eab30866;
}

.admin-shell[data-theme="dark"] .admin-content .tc-sig--bad {
  color: #f87171;
  background: #ef444426;
  border-color: #ef444466;
}

.tc-capbar {
  flex-direction: column;
  gap: 4px;
  min-width: 160px;
  display: flex;
}

.tc-capbar-track {
  background: var(--admin-border, #e2e8f0);
  border-radius: 999px;
  width: 100%;
  height: 6px;
  overflow: hidden;
}

.tc-capbar-fill {
  height: 100%;
  transition: width .2s ease-out;
}

.tc-capbar--good .tc-capbar-fill {
  background: var(--tc-success, #16a34a);
}

.tc-capbar--warn .tc-capbar-fill {
  background: var(--tc-warning, #eab308);
}

.tc-capbar--bad .tc-capbar-fill {
  background: var(--tc-danger, #ef4444);
}

.tc-capbar-label {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  font-variant-numeric: tabular-nums;
  justify-content: space-between;
  display: flex;
}

.tc-capbar-numeric {
  font-weight: 500;
}

.tc-spinner {
  justify-content: center;
  align-items: center;
  display: inline-flex;
}

.tc-spinner-circle {
  border: 2px solid var(--admin-border, #e2e8f0);
  border-top-color: var(--admin-primary, #2563eb);
  border-radius: 50%;
  animation: .8s linear infinite tc-spin;
  display: inline-block;
}

.tc-spinner--sm .tc-spinner-circle {
  border-width: 2px;
  width: 14px;
  height: 14px;
}

.tc-spinner--md .tc-spinner-circle {
  border-width: 3px;
  width: 22px;
  height: 22px;
}

.tc-spinner--lg .tc-spinner-circle {
  border-width: 4px;
  width: 38px;
  height: 38px;
}

.tc-sr-only {
  clip: rect(0 0 0 0);
  white-space: nowrap;
  width: 1px;
  height: 1px;
  position: absolute;
  overflow: hidden;
}

.tc-empty {
  text-align: center;
  color: var(--admin-text-muted, #64748b);
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 32px 16px;
  display: flex;
}

.tc-empty-icon {
  color: var(--admin-text-muted, #94a3b8);
  opacity: .5;
  margin-bottom: 4px;
}

.tc-empty-title {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-size: .95rem;
  font-weight: 600;
}

.tc-empty-description {
  max-width: 360px;
  margin: 0;
  font-size: .85rem;
}

.tc-page-loading {
  justify-content: center;
  align-items: center;
  gap: .75rem;
  padding: 3rem 1rem;
  display: flex;
}

.tc-actions-list {
  flex-direction: column;
  gap: .5rem;
  display: flex;
}

.tc-action-item {
  justify-content: flex-start;
  width: 100%;
}

.tc-tool-row {
  align-items: center;
  gap: var(--tc-space-4);
  padding: var(--tc-space-4) 0;
  display: flex;
}

.tc-tool-row--divider {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
}

.tc-tool-row-icon {
  color: var(--admin-text-muted, #64748b);
  flex-shrink: 0;
}

.tc-tool-row-body {
  flex: 1;
  min-width: 0;
}

.tc-tool-row-title {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  margin: 0 0 3px;
  font-weight: 600;
}

.tc-tool-row-result {
  font-size: var(--tc-text-sm);
  align-items: center;
  gap: 4px;
  margin: 6px 0 0;
  display: flex;
}

.tc-tool-row-result--ok {
  color: var(--tc-success);
}

.tc-tool-row-result--warning {
  color: var(--tc-warning);
}

.tc-tool-row-result--danger {
  color: var(--tc-danger);
}

.tc-diagnostic-guide-item + .tc-diagnostic-guide-item {
  margin-top: var(--tc-space-4);
}

.tc-diagnostic-steps {
  margin: 0;
  padding-left: 18px;
}

.tc-diagnostic-steps li {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin-bottom: 3px;
  line-height: 1.5;
}

.tc-radius-grupo-detail {
  padding: 0 var(--tc-space-4) var(--tc-space-4);
  background: var(--admin-bg, #f8fafc);
}

.tc-config-sections {
  flex-direction: column;
  gap: 1rem;
  display: flex;
}

.tc-config-toggles {
  flex-direction: column;
  gap: .75rem;
  padding: .25rem 0;
  display: flex;
}

.tc-guardado-dominios {
  gap: var(--tc-space-5);
  margin-top: var(--tc-space-5);
  padding-top: var(--tc-space-4);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
  display: grid;
}

.tc-guardado-bloque {
  min-width: 0;
}

.tc-olt-section-header--plegable {
  cursor: pointer;
  text-align: left;
  width: 100%;
  font-family: inherit;
  font-size: var(--tc-text-sm);
  background: var(--admin-bg, #f8fafc);
  color: var(--admin-text, #1e293b);
  border: 0;
  font-weight: 700;
}

.tc-olt-section-resumen {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  font-weight: 400;
}

.tc-olt-section-chevron {
  transition: transform .15s;
}

.tc-olt-section-chevron--abierta {
  transform: rotate(180deg);
}

.tc-form-grid--compacto {
  gap: var(--tc-space-3) var(--tc-space-5);
  grid-template-columns: repeat(auto-fit, minmax(200px, 240px));
}

@media (max-width: 640px) {
  .tc-form-grid--compacto, .tc-guardado-campos {
    grid-template-columns: 1fr;
  }
}

.tc-guardado-campos {
  gap: var(--tc-space-3) var(--tc-space-5);
  margin-top: var(--tc-space-3);
  grid-template-columns: repeat(auto-fit, minmax(200px, 240px));
  display: grid;
}

.tc-config-action {
  justify-content: flex-end;
  padding-top: .75rem;
  display: flex;
}

.tc-diag-loading {
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: .75rem;
  padding: 3rem 1rem;
  display: flex;
}

.tc-diag-grid {
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 1rem;
  display: grid;
}

.tc-diag-refresh-hint {
  text-align: right;
  font-size: var(--tc-text-sm);
  grid-column: 1 / -1;
}

.tc-historial-load-more {
  justify-content: center;
  padding-top: 1rem;
  display: flex;
}

.tc-historial-detalle-btn {
  opacity: .7;
  gap: .2rem;
  padding: 1px 4px;
  font-size: .7rem;
}

.tc-historial-detalle-pre {
  background: var(--admin-input-bg, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-sm);
  color: var(--admin-text, #1e293b);
  white-space: pre-wrap;
  word-break: break-all;
  max-height: 200px;
  margin: .4rem 0 0;
  padding: .5rem .75rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .7rem;
  display: block;
  overflow-y: auto;
}

@media (max-width: 640px) {
  .tc-diag-grid {
    grid-template-columns: 1fr;
  }
}

.tc-segmented {
  background: var(--admin-bg, var(--tc-surface-2));
  border: 1px solid var(--admin-border);
  border-radius: 8px;
  gap: 2px;
  padding: 3px;
  display: inline-flex;
}

.tc-segmented__item {
  color: var(--admin-text-muted, var(--tc-text-muted));
  font-size: var(--tc-text-sm);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 6px;
  padding: 5px 14px;
  font-weight: 500;
}

.tc-segmented__item.is-active {
  background: var(--admin-card-bg, var(--tc-surface));
  color: var(--admin-text, var(--tc-text));
  box-shadow: 0 1px 2px #00000014;
}

.tc-segmented--lg {
  margin-bottom: var(--tc-space-5);
  background: var(--admin-card-bg, var(--tc-surface));
  box-shadow: var(--admin-shadow, 0 1px 3px #0000000f);
}

.tc-segmented--lg .tc-segmented__item {
  padding: 9px 22px;
  font-size: .95rem;
  font-weight: 600;
}

.tc-listado-toolbar .tc-segmented__item {
  padding-top: 4px;
  padding-bottom: 4px;
}

.tc-page-actions > .tc-segmented {
  background: var(--admin-card-bg, var(--tc-surface));
  box-shadow: var(--admin-shadow, 0 1px 3px #0000000f);
}

.tc-form-group {
  margin-top: .75rem;
}

.tc-mt-2 {
  margin-top: .5rem;
}

.tc-mr-2 {
  margin-right: .4rem;
}

.tc-detail-col--full {
  grid-column: 1 / -1;
}

.tc-empty-action {
  margin-top: 8px;
}

.tc-stepper {
  margin-bottom: var(--tc-space-5);
  padding: 0 var(--tc-space-1);
  align-items: center;
  display: flex;
}

.tc-stepper-item {
  flex-shrink: 0;
  align-items: center;
  display: flex;
  position: relative;
}

.tc-stepper-item--connector {
  flex: 1;
}

.tc-stepper-circle {
  width: 24px;
  height: 24px;
  font-size: var(--tc-text-xs);
  background: var(--admin-border, #e2e8f0);
  color: var(--admin-text-muted, #64748b);
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  font-weight: 800;
  transition: background .2s, color .2s;
  display: flex;
}

.tc-stepper-circle--active {
  background: var(--admin-primary, #2563eb);
  color: #fff;
}

.tc-stepper-circle--done {
  background: var(--tc-success, #16a34a);
  color: #fff;
}

.tc-stepper-label {
  font-size: var(--tc-text-sm);
  margin-left: var(--tc-space-2);
  white-space: nowrap;
  color: var(--admin-text-muted, #64748b);
  font-weight: 500;
  transition: color .2s;
}

.tc-stepper-label--active {
  color: var(--admin-text, #1e293b);
  font-weight: 700;
}

.tc-stepper-label--done {
  color: var(--tc-success, #16a34a);
}

.tc-stepper-line {
  height: 2px;
  margin: 0 var(--tc-space-3);
  background: var(--admin-border, #e2e8f0);
  flex: 1;
  transition: background .2s;
}

.tc-stepper-line--done {
  background: var(--tc-success, #16a34a);
}

.admin-shell[data-theme="dark"] .tc-stepper-circle {
  background: var(--admin-border, #334155);
}

.admin-shell[data-theme="dark"] .tc-stepper-circle--active {
  background: var(--admin-primary, #3b82f6);
}

.admin-shell[data-theme="dark"] .tc-stepper-circle--done {
  background: var(--tc-success, #16a34a);
}

.onu-row {
  cursor: pointer;
  transition: background .1s;
}

.onu-row:hover {
  background: var(--tc-primary-bg, #eef2ff);
}

.onu-row-selected {
  background: var(--tc-primary-bg, #eef2ff);
  box-shadow: inset 4px 0 0 var(--admin-primary, #2563eb);
}

.onu-serial-chip {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: var(--tc-text-sm);
  border-radius: var(--tc-radius-sm);
  background: var(--tc-neutral-bg, #f1f5f9);
  color: var(--admin-text, #1e293b);
  border: 1px solid #0000;
  padding: 2px 8px;
  font-weight: 600;
  transition: background .15s, color .15s;
  display: inline-block;
}

.onu-serial-chip--selected {
  background: var(--tc-primary-bg, #eef2ff);
  color: var(--admin-primary, #2563eb);
  border-color: #6366f14d;
}

.onu-table-wrap {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
  background: var(--admin-card-bg, #fff);
  overflow: hidden;
}

.onu-result-center {
  text-align: center;
  justify-content: center;
  align-items: center;
  gap: var(--tc-space-4);
  flex-direction: column;
  padding: 3rem 2rem;
  display: flex;
}

.onu-result-icon {
  background: var(--tc-success-bg, #dcfce7);
  width: 56px;
  height: 56px;
  color: var(--tc-success, #16a34a);
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  display: flex;
}

.onu-result-icon--error {
  background: var(--tc-danger-bg, #fee2e2);
  color: var(--tc-danger, #ef4444);
}

.onu-result-icon--warning {
  background: var(--tc-warning-bg, #fef3c7);
  color: var(--tc-warning, #d97706);
}

.onu-result-warning-block {
  margin-top: var(--tc-space-4);
  padding: var(--tc-space-4) var(--tc-space-5);
  border-radius: var(--tc-radius-lg);
  border: 1px solid var(--tc-warning, #d97706);
  background: var(--tc-warning-bg, #fef3c7);
  gap: var(--tc-space-2);
  flex-direction: column;
  display: flex;
}

.onu-result-warning-title {
  color: var(--tc-warning-text, #92400e);
  margin: 0;
  font-weight: 600;
}

.onu-result-warning-msg {
  font-size: var(--tc-text-sm, .875rem);
  color: var(--admin-text, #1e293b);
  font-family: var(--font-mono, ui-monospace, monospace);
  margin: 0;
}

.onu-result-warning-help {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.onu-result-warning-actions {
  align-items: center;
  gap: var(--tc-space-3);
  margin-top: var(--tc-space-2);
  display: flex;
}

.onu-result-retry-msg {
  font-size: var(--tc-text-xs);
  margin: 0;
}

.onu-result-retry-msg--ok {
  color: var(--tc-success, #16a34a);
}

.onu-result-retry-msg--err {
  color: var(--tc-danger, #ef4444);
}

.onu-spin {
  margin-right: var(--tc-space-1, .25rem);
  animation: 1s linear infinite onu-spin-anim;
}

@keyframes onu-spin-anim {
  from {
    transform: rotate(0);
  }

  to {
    transform: rotate(360deg);
  }
}

.onu-section-footer {
  padding-top: var(--tc-space-4);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  margin-top: var(--tc-space-4);
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2);
  display: flex;
}

.onu-equipo-inventario-ok {
  align-items: center;
  gap: var(--tc-space-2);
  display: flex;
}

.onu-toggle-panel {
  margin-top: var(--tc-space-4);
  padding: var(--tc-space-4) var(--tc-space-5);
  border-radius: var(--tc-radius-lg);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-bg, #f8fafc);
  transition: background .2s, border-color .2s;
}

.onu-toggle-panel--active {
  background: var(--tc-info-bg, #dbeafe);
  border-color: var(--tc-info, #3b82f6);
}

.onu-toggle-panel-header {
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.onu-config-section {
  margin-bottom: var(--tc-space-5);
}

.onu-config-section-title {
  align-items: center;
  gap: var(--tc-space-2);
  margin: 0 0 var(--tc-space-3) 0;
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  font-weight: 700;
  display: flex;
}

.onu-config-section-title svg {
  color: var(--admin-primary, #2563eb);
  flex-shrink: 0;
}

.onu-wan-method-grid {
  gap: var(--tc-space-3);
  grid-template-columns: repeat(3, 1fr);
  display: grid;
}

@media (max-width: 640px) {
  .onu-wan-method-grid {
    grid-template-columns: 1fr;
  }
}

.tc-form-helper {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin-top: var(--tc-space-1, .25rem);
}

.tc-form-helper-warn {
  color: var(--tc-warning-text, #92400e);
  margin-left: .4rem;
  font-style: italic;
}

.onu-count-hint {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin-top: var(--tc-space-2);
  text-align: right;
  font-weight: 500;
}

.onu-td {
  border-bottom: 1px solid var(--admin-bg, #f8fafc);
  padding: 10px 14px;
}

.onu-th {
  color: var(--admin-text-muted, #64748b);
  font-weight: 700;
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .06em;
  border-bottom: 2px solid var(--admin-border, #e2e8f0);
  white-space: nowrap;
  background: var(--admin-card-bg, #fff);
  text-align: left;
  padding: 7px 14px;
}

.onu-th--right, .onu-td--right {
  text-align: right;
}

.onu-td-text {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  font-weight: 500;
}

.onu-td-muted {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  font-weight: 500;
}

.onu-td-sub {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin-top: 1px;
}

.onu-toggle-title {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  font-weight: 700;
}

.onu-toggle-subtitle {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.onu-result-title {
  font-size: var(--tc-text-xl);
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 700;
}

.onu-result-desc {
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
  margin: 6px 0 0;
}

.onu-result-error {
  font-size: var(--tc-text-base);
  color: var(--tc-danger, #ef4444);
  margin: 6px 0 0;
}

.onu-mono {
  font-family: ui-monospace, monospace;
  font-weight: 600;
}

.onu-flex-row {
  align-items: center;
  gap: 8px;
  display: flex;
}

.onu-flex-row-space {
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.onu-flex-baseline {
  align-items: baseline;
  gap: 14px;
  display: flex;
}

.onu-flex-center-col {
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 3rem 0;
  display: flex;
}

.onu-filter-bar {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  display: flex;
}

.onu-filter-search {
  flex: 1;
  min-width: 160px;
  position: relative;
}

.onu-filter-search-icon {
  color: var(--admin-text-muted);
  pointer-events: none;
  position: absolute;
  top: 50%;
  left: 10px;
  transform: translateY(-50%);
}

.onu-filter-search-input {
  padding-left: 32px !important;
}

.onu-filter-col-olt, .onu-filter-col-board, .onu-filter-col-port {
  align-items: center;
  display: flex;
}

.onu-filter-col-olt {
  width: 170px;
}

.onu-filter-col-board {
  width: 165px;
}

.onu-filter-col-port {
  width: 160px;
}

.onu-filter-bar .tc-btn {
  white-space: nowrap;
  align-self: center;
}

.onu-table {
  border-collapse: collapse;
  width: 100%;
}

.onu-table-scroll {
  max-height: 400px;
  overflow-y: auto;
}

.onu-table-scroll-sm {
  max-height: 360px;
  margin-top: 10px;
  overflow-y: auto;
}

.onu-no-results {
  text-align: center;
  color: var(--admin-text-muted);
  font-size: var(--tc-text-sm);
  padding: 2rem 0;
}

.onu-collapse-trigger {
  border-radius: var(--tc-radius-lg);
  border: 1px solid var(--admin-border);
  background: var(--admin-bg);
  cursor: pointer;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 10px 16px;
  transition: background .15s;
  display: flex;
}

.onu-collapse-trigger--open {
  background: var(--tc-primary-bg);
}

.onu-collapse-trigger-icon {
  color: var(--admin-text-muted);
}

.onu-row--bloqueada .onu-serial-chip {
  opacity: .7;
}

.onu-motivo {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin-top: 2px;
}

.onu-servicio-identidad {
  flex-wrap: wrap;
  align-items: baseline;
  gap: .75rem;
  margin: .5rem 0 .75rem;
  display: flex;
}

.onu-servicio-serial {
  color: var(--admin-text, #0f172a);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 1.5rem;
  font-weight: 600;
}

.onu-servicio-datos {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: .75rem 1.5rem;
  max-width: 48rem;
  display: grid;
}

.onu-servicio-motivo {
  margin-top: .75rem;
}

.onu-servicio-encabezado {
  margin-bottom: .75rem;
}

.admin-shell[data-theme="dark"] .onu-table-wrap, .admin-shell[data-theme="dark"] .onu-collapse-trigger {
  --tc-primary-bg: #3b82f62e;
  --tc-neutral-bg: #ffffff1a;
}

.onu-section-footer--right {
  justify-content: flex-end;
}

.onu-form-grid-anchos {
  grid-template-columns: repeat(12, 1fr);
}

.onu-form-grid-anchos .tc-form-field {
  grid-column: span 6;
}

.onu-form-grid-anchos .tc-form-field--corto {
  grid-column: span 4;
}

.onu-form-grid-anchos .tc-form-field--largo {
  grid-column: span 8;
}

@media (max-width: 640px) {
  .onu-form-grid-anchos {
    grid-template-columns: 1fr;
  }

  .onu-form-grid-anchos .tc-form-field, .onu-form-grid-anchos .tc-form-field--corto, .onu-form-grid-anchos .tc-form-field--largo {
    grid-column: 1 / -1;
  }
}

.tc-mt-1 {
  margin-top: .25rem;
}

.tc-mb-1 {
  margin-bottom: .25rem;
}

.tc-mb-2 {
  margin-bottom: .5rem;
}

.tc-mb-4 {
  margin-bottom: 1rem;
}

.tc-link-action {
  cursor: pointer;
  font-size: var(--tc-text-sm);
  color: var(--admin-primary, #2563eb);
  background: none;
  border: none;
  align-items: center;
  gap: .3rem;
  padding: 0;
  font-weight: 500;
  text-decoration: none;
  display: inline-flex;
}

.tc-link-action:hover {
  text-decoration: underline;
}

.tc-inline-new-fab {
  flex-direction: column;
  gap: .4rem;
  display: flex;
}

.tc-inline-new-fab-actions {
  gap: .5rem;
  display: flex;
}

.tc-form-error {
  font-size: var(--tc-text-sm);
  color: var(--tc-danger-text, #991b1b);
  margin-top: .25rem;
}

.admin-shell[data-theme="dark"] .tc-form-error, .admin-shell[data-theme="dark"] .tc-form-error-msg {
  color: #fca5a5;
}

.tc-radio-group {
  flex-direction: column;
  gap: .5rem;
  margin-top: .25rem;
  display: flex;
}

.tc-radio-group--horizontal {
  flex-flow: wrap;
  gap: 1rem;
}

.tc-radio-item {
  font-size: var(--tc-text-base);
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  align-items: center;
  gap: .4rem;
  display: inline-flex;
}

.tc-radio-item input[type="radio"] {
  cursor: pointer;
  width: 15px;
  height: 15px;
  accent-color: var(--admin-primary, #2563eb);
}

.tc-radio-item--disabled {
  opacity: .55;
  cursor: not-allowed;
}

.tc-radio-item--disabled input[type="radio"] {
  cursor: not-allowed;
}

.tc-checkbox-group {
  gap: 1.25rem;
  margin-top: .25rem;
  display: flex;
}

.tc-checkbox-group--vertical {
  flex-direction: column;
  gap: .5rem;
}

.tc-checkbox-item {
  font-size: var(--tc-text-base);
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  align-items: center;
  gap: .4rem;
  display: inline-flex;
}

.tc-checkbox-item input[type="checkbox"] {
  cursor: pointer;
  width: 15px;
  height: 15px;
  accent-color: var(--admin-primary, #2563eb);
}

.tc-spin {
  animation: .8s linear infinite tc-spin-anim;
  display: inline-block;
}

@keyframes tc-spin-anim {
  from {
    transform: rotate(0);
  }

  to {
    transform: rotate(360deg);
  }
}

.onu-hint-italic {
  font-style: italic;
}

.onu-estado-vivo {
  align-items: center;
  gap: var(--tc-space-2);
  margin-top: var(--tc-space-2);
  display: flex;
}

.onu-estado-vivo-posiciones {
  gap: var(--tc-space-1);
  flex-direction: column;
  min-width: 0;
  display: flex;
}

.onu-th {
  z-index: 1;
  position: sticky;
  top: 0;
}

.tc-wifi-card-actions {
  align-items: center;
  gap: .25rem;
  display: flex;
}

.tc-wifi-sin-config {
  color: var(--tc-text-muted, #64748b);
  flex-direction: column;
  align-items: center;
  gap: .75rem;
  padding: 1.5rem 1rem;
  display: flex;
}

.tc-wifi-sin-config-icon {
  opacity: .35;
  color: var(--tc-text-muted, #64748b);
}

.tc-wifi-sin-config-text {
  font-size: var(--tc-text-base, .875rem);
  margin: 0;
}

.tc-wifi-fields {
  flex-direction: column;
  gap: .75rem;
  display: flex;
}

.tc-wifi-chip-info {
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  margin-bottom: .25rem;
  display: flex;
}

.tc-wifi-chip-hint {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--tc-text-muted, #64748b);
}

.tc-wifi-banda {
  flex-direction: column;
  gap: .4rem;
  display: flex;
}

.tc-wifi-banda-titulo {
  font-size: var(--tc-text-xs, .75rem);
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--tc-text-muted, #64748b);
  margin-bottom: .25rem;
  font-weight: 700;
}

.tc-wifi-campo {
  font-size: var(--tc-text-base, .875rem);
  align-items: center;
  gap: .5rem;
  display: flex;
}

.tc-wifi-campo-label {
  color: var(--tc-text-muted, #64748b);
  flex-shrink: 0;
  min-width: 80px;
}

.tc-wifi-campo-valor {
  color: var(--tc-text, #1e293b);
  flex: 1;
  font-weight: 500;
}

.tc-wifi-campo-mono {
  letter-spacing: .03em;
  font-family: ui-monospace, monospace;
}

.tc-wifi-eye-btn-sm {
  color: var(--tc-text-muted, #64748b);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 4px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  padding: 2px 4px;
  transition: color .15s;
  display: inline-flex;
}

.tc-wifi-eye-btn-sm:hover {
  color: var(--tc-text, #1e293b);
}

.tc-wifi-password-wrap {
  align-items: center;
  display: flex;
  position: relative;
}

.tc-wifi-password-input {
  flex: 1;
  padding-right: 2.5rem !important;
}

.tc-wifi-eye-btn {
  color: var(--tc-text-muted, #64748b);
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 4px;
  justify-content: center;
  align-items: center;
  padding: 4px;
  transition: color .15s;
  display: inline-flex;
  position: absolute;
  right: .6rem;
}

.tc-wifi-eye-btn:hover {
  color: var(--tc-text, #1e293b);
}

.tc-wifi-historial-loading {
  color: var(--tc-text-muted, #64748b);
  font-size: var(--tc-text-sm, .8125rem);
  align-items: center;
  gap: .5rem;
  padding: 1rem 0;
  display: flex;
}

.tc-wifi-historial-empty {
  color: var(--tc-text-muted, #64748b);
  font-size: var(--tc-text-sm, .8125rem);
  text-align: center;
  padding: 1.5rem 0;
}

.tc-wifi-historial-timeline {
  flex-direction: column;
  gap: 0;
  display: flex;
}

.tc-wifi-historial-item {
  gap: .75rem;
  padding-bottom: 1.25rem;
  display: flex;
}

.tc-wifi-historial-connector {
  flex-direction: column;
  flex-shrink: 0;
  align-items: center;
  padding-top: 2px;
  display: flex;
}

.tc-wifi-historial-dot {
  background: var(--tc-info, #3b82f6);
  border-radius: 50%;
  flex-shrink: 0;
  width: 10px;
  height: 10px;
}

.tc-wifi-historial-line {
  background: var(--tc-border, #e2e8f0);
  flex: 1;
  width: 2px;
  min-height: 16px;
  margin-top: 4px;
}

.tc-wifi-historial-content {
  flex: 1;
  min-width: 0;
}

.tc-wifi-historial-header {
  flex-wrap: wrap;
  align-items: center;
  gap: .6rem;
  margin-bottom: .25rem;
  display: flex;
}

.tc-wifi-historial-ts {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--tc-text, #1e293b);
  align-items: center;
  gap: .3rem;
  font-weight: 600;
  display: inline-flex;
}

.tc-wifi-historial-user {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--tc-text-muted, #64748b);
  align-items: center;
  gap: .3rem;
  display: inline-flex;
}

.tc-wifi-historial-motivo {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--tc-text-muted, #64748b);
  margin: 0 0 .35rem;
  font-style: italic;
}

.tc-wifi-historial-toggle {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--tc-info, #3b82f6);
  cursor: pointer;
  text-underline-offset: 2px;
  background: none;
  border: none;
  padding: 0;
  text-decoration: underline;
}

.tc-wifi-historial-toggle:hover {
  color: var(--tc-info-text, #1e40af);
}

.tc-wifi-historial-detalle {
  background: var(--tc-neutral-bg, #f1f5f9);
  border-radius: var(--tc-radius);
  flex-direction: column;
  gap: .75rem;
  margin-top: .6rem;
  padding: .75rem;
  display: flex;
}

.tc-wifi-historial-banda {
  flex-direction: column;
  gap: .35rem;
  display: flex;
}

.tc-wifi-historial-banda-label {
  font-size: var(--tc-text-xs, .75rem);
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--tc-text-muted, #64748b);
  font-weight: 700;
}

.tc-wifi-historial-campo {
  font-size: var(--tc-text-base, .875rem);
  align-items: center;
  gap: .4rem;
  display: flex;
}

.tc-wifi-historial-campo-label {
  color: var(--tc-text-muted, #64748b);
  flex-shrink: 0;
  min-width: 72px;
}

.tc-wifi-historial-campo-valor {
  color: var(--tc-text, #1e293b);
  flex: 1;
}

.tc-wifi-historial-campo-mono {
  letter-spacing: .03em;
  font-family: ui-monospace, monospace;
}

.tc-wifi-historial-mismo {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--tc-text-muted, #64748b);
  margin: 0;
}

.tc-wifi-seccion-titulo {
  font-size: var(--tc-text-xs, .75rem);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--tc-text-muted, #64748b);
  margin-top: .5rem;
  margin-bottom: .5rem;
  font-weight: 700;
}

.admin-shell[data-theme="dark"] .tc-wifi-historial-detalle {
  background: #ffffff0a;
}

.admin-shell[data-theme="dark"] .tc-wifi-campo-valor, .admin-shell[data-theme="dark"] .tc-wifi-historial-campo-valor, .admin-shell[data-theme="dark"] .tc-wifi-eye-btn:hover, .admin-shell[data-theme="dark"] .tc-wifi-eye-btn-sm:hover {
  color: var(--admin-text, #e2e8f0);
}

.tc-onus-header-actions {
  align-items: center;
  gap: .75rem;
  display: flex;
}

.tc-onus-last-update {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-onus-rate-limit {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--tc-warning-text, #854d0e);
  background: var(--tc-warning-bg, #fef9c3);
  border-radius: var(--tc-radius);
  padding: .35rem .75rem;
  font-weight: 600;
}

.tc-onus-chips {
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem;
  display: inline-flex;
}

.tc-onus-row-actions {
  align-items: center;
  gap: .25rem;
  display: flex;
}

.tc-onus-error {
  background: var(--tc-danger-bg, #fee2e2);
  color: var(--tc-danger-text, #991b1b);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-base, .875rem);
  margin-bottom: 1rem;
  padding: .75rem 1rem;
}

.tc-onus-modal-desc {
  font-size: var(--tc-text-base, .875rem);
  color: var(--admin-text, #1e293b);
  margin: 0 0 1rem;
}

.tc-onus-pos {
  flex-direction: column;
  gap: .1rem;
  line-height: 1.3;
  display: inline-flex;
}

.tc-onus-pos-olt {
  color: var(--admin-text, #1e293b);
}

.tc-onus-pos-slot {
  font-family: var(--tc-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-onus-pos-celda {
  flex-direction: column;
  align-items: flex-start;
  gap: .15rem;
  display: inline-flex;
}

.tc-onus-pos-extra {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  align-items: center;
  gap: .25rem;
  display: inline-flex;
}

.tc-onus-pos-lista {
  font-size: var(--tc-text-sm, .8125rem);
  flex-direction: column;
  gap: .15rem;
  display: inline-flex;
}

.tc-onus-motivo-wrap {
  flex-direction: column;
  gap: .375rem;
  display: flex;
}

.tc-onus-char-count {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  text-align: right;
  margin: 0;
}

.tc-onus-pagination {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  justify-content: space-between;
  align-items: center;
  padding: .875rem 1rem;
  display: flex;
}

.tc-onus-pagination-info {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-onus-pagination-btns {
  gap: .5rem;
  display: flex;
}

.tc-onus-servicio-sel {
  background: var(--tc-success-bg, #dcfce7);
  border: 1px solid var(--tc-success, #16a34a);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-base, .875rem);
  color: var(--tc-success-text, #166534);
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  padding: .5rem .75rem;
  font-weight: 500;
  display: flex;
}

.tc-onus-servicio-lista {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  background: var(--admin-card-bg, #fff);
  max-height: 200px;
  margin-top: .375rem;
  overflow-y: auto;
}

.tc-onus-servicio-item {
  text-align: left;
  border: none;
  border-bottom: 1px solid var(--admin-bg, #f8fafc);
  cursor: pointer;
  width: 100%;
  font-size: var(--tc-text-sm, .8125rem);
  background: none;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .5rem;
  padding: .5rem .75rem;
  transition: background .15s;
  display: grid;
}

.tc-onus-servicio-item:hover {
  background: var(--admin-bg, #f8fafc);
}

.tc-onus-servicio-item:last-child {
  border-bottom: none;
}

.tc-onus-servicio-codigo {
  color: var(--admin-primary, #2563eb);
  white-space: nowrap;
  font-family: monospace;
  font-weight: 600;
}

.tc-onus-servicio-nombre {
  color: var(--admin-text, #1e293b);
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.tc-onus-servicio-plan {
  color: var(--admin-text-muted, #64748b);
  white-space: nowrap;
  font-size: var(--tc-text-xs, .75rem);
}

.tc-onus-modo-radios {
  gap: 1rem;
  padding: .5rem 0;
  display: flex;
}

.tc-onus-modo-radio {
  cursor: pointer;
  font-size: var(--tc-text-base, .875rem);
  color: var(--admin-text, #1e293b);
  align-items: center;
  gap: .4rem;
  font-weight: 500;
  display: flex;
}

.tc-onus-live-loading {
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-base, .875rem);
  justify-content: center;
  align-items: center;
  gap: .75rem;
  padding: 2rem 1rem;
  display: flex;
}

.tc-onus-live-readonly {
  min-height: 2rem;
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-base, .875rem);
  align-items: center;
  padding: .25rem 0;
  display: flex;
}

.tc-table-muted {
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-sm, .8125rem);
}

.tc-table-mono {
  font-family: monospace;
  font-size: var(--tc-text-sm);
}

.tc-cli-pre {
  background: var(--admin-bg, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-sm);
  white-space: pre-wrap;
  word-break: break-all;
  max-height: 240px;
  color: var(--admin-text, #1e293b);
  margin: 0;
  padding: .75rem;
  font-family: monospace;
  overflow-y: auto;
}

.tc-table-row-clickable {
  cursor: pointer;
}

.tc-table-row-clickable:hover td {
  background: var(--tc-fila-hover);
}

.tc-table-nowrap {
  white-space: nowrap;
}

.tc-table-truncate {
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 200px;
  overflow: hidden;
}

.tc-table-actions {
  text-align: right;
}

.tc-cli-section-header {
  margin-bottom: 1rem;
}

.tc-cli-section-title {
  font-size: var(--tc-text-lg, 1rem);
  color: var(--admin-text, #1e293b);
  margin: 0 0 .25rem;
  font-weight: 700;
}

.tc-cli-section-desc {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-cli-error {
  background: var(--tc-danger-bg, #fee2e2);
  color: var(--tc-danger-text, #991b1b);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-base, .875rem);
  margin-bottom: 1rem;
  padding: .75rem;
}

.tc-cli-filterbar {
  margin-bottom: .5rem;
}

.tc-cli-rango-fechas {
  margin-bottom: 1rem;
}

.tc-cli-rango-fechas .tc-rango-fechas {
  margin-bottom: 0;
}

.tc-card-inset {
  background: var(--admin-bg, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  padding: .75rem;
}

.tc-wan-card {
  border-top: 3px solid var(--tc-info, #3b82f6);
}

.tc-wan-header {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  margin-bottom: .75rem;
  padding-bottom: .5rem;
  display: flex;
}

.tc-wan-header-title {
  font-size: var(--tc-text-base, .875rem);
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-firma-canvas {
  aspect-ratio: 560 / 220;
  border-radius: var(--tc-radius);
  cursor: crosshair;
  touch-action: none;
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

.admin-shell[data-theme="dark"] .tc-card-inset {
  background: #ffffff0a;
  border-color: #ffffff14;
}

.admin-shell[data-theme="dark"] .tc-wan-header {
  border-bottom-color: #ffffff14;
}

.admin-shell[data-theme="dark"] .tc-wan-header-title {
  color: var(--admin-text, #e2e8f0);
}

.admin-shell[data-theme="dark"] .tc-onus-error {
  color: #f87171;
  background: #ef444426;
}

.admin-shell[data-theme="dark"] .tc-onus-rate-limit {
  color: #fbbf24;
  background: #eab30826;
}

.admin-shell[data-theme="dark"] .tc-cli-pre {
  color: var(--admin-text, #e2e8f0);
  background: #00000040;
  border-color: #ffffff14;
}

.admin-shell[data-theme="dark"] .tc-cli-error {
  color: #f87171;
  background: #ef444426;
}

.admin-shell[data-theme="dark"] .tc-cli-section-title {
  color: var(--admin-text, #e2e8f0);
}

.admin-shell[data-theme="dark"] .tc-cli-section-desc {
  color: var(--admin-text-muted, #94a3b8);
}

.tc-stat-chip {
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  cursor: pointer;
  align-items: center;
  gap: .4rem;
  padding: .4rem .75rem;
  font-family: inherit;
  line-height: 1;
  transition: all .15s;
  display: inline-flex;
}

.tc-stat-chip:hover {
  border-color: var(--tc-stat-chip-color, var(--admin-border, #e2e8f0));
  background: color-mix(in srgb, var(--tc-stat-chip-color, transparent) 8%, var(--admin-card-bg, #fff));
}

.tc-stat-chip--active {
  border: 2px solid var(--tc-stat-chip-color, var(--admin-border, #e2e8f0));
  background: color-mix(in srgb, var(--tc-stat-chip-color, transparent) 10%, var(--admin-card-bg, #fff));
}

.tc-stat-chip--inactive {
  cursor: default;
  opacity: .85;
}

.tc-stat-chip-dot {
  background: var(--tc-stat-chip-color, var(--admin-border));
  border-radius: 50%;
  flex-shrink: 0;
  width: 7px;
  height: 7px;
}

.tc-stat-chip-value {
  color: var(--tc-stat-chip-color, var(--admin-text, #1e293b));
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1;
}

.tc-stat-chip-label {
  color: var(--admin-text-muted, #64748b);
  font-size: .7rem;
  font-weight: 500;
}

.tc-stats-row {
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: 1rem;
  display: flex;
}

.admin-shell[data-theme="dark"] .tc-stat-chip {
  background: var(--admin-card-bg, #1e293b);
  border-color: var(--admin-border, #ffffff14);
}

.admin-shell[data-theme="dark"] .tc-stat-chip--active {
  background: color-mix(in srgb, var(--tc-stat-chip-color, transparent) 15%, var(--admin-card-bg, #1e293b));
}

.tc-diff-stats {
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  margin-bottom: .75rem;
  display: flex;
}

.tc-diff-olt-name {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
  margin-left: auto;
}

.tc-diff-body {
  font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;
  font-size: var(--tc-text-xs);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  background: var(--admin-card-bg, #fff);
  max-height: 480px;
  line-height: 1.5;
  overflow: auto;
}

.tc-diff-line {
  white-space: pre;
  min-height: 1.5em;
  color: var(--admin-text, #1e293b);
  padding: 0 .75rem;
}

.tc-diff-line--add {
  background: var(--tc-success-bg, #dcfce7);
  color: var(--tc-success-text, #166534);
}

.tc-diff-line--remove {
  background: var(--tc-danger-bg, #fee2e2);
  color: var(--tc-danger-text, #991b1b);
}

.tc-diff-line--hunk {
  background: var(--tc-info-bg, #dbeafe);
  color: var(--tc-info-text, #1e40af);
  font-weight: 600;
}

.admin-shell[data-theme="dark"] .tc-diff-body {
  background: var(--admin-card-bg, #1e293b);
  border-color: var(--admin-border, #334155);
}

.admin-shell[data-theme="dark"] .tc-diff-line {
  color: var(--admin-text, #f1f5f9);
}

.admin-shell[data-theme="dark"] .tc-diff-line--add {
  color: #86efac;
  background: #16a34a26;
}

.admin-shell[data-theme="dark"] .tc-diff-line--remove {
  color: #fca5a5;
  background: #ef444426;
}

.admin-shell[data-theme="dark"] .tc-diff-line--hunk {
  color: #93c5fd;
  background: #3b82f626;
}

.tc-audit-filtros-bar {
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 14px;
  display: flex;
}

.tc-audit-filtros-grupo {
  flex-wrap: wrap;
  flex: 0 520px;
  gap: 14px;
  min-width: 0;
  display: flex;
}

.tc-audit-filtros-grupo--fechas {
  flex-wrap: nowrap;
  flex: 0 290px;
}

.tc-audit-filtros-grupo--fechas > .tc-form-field {
  flex: 120px;
}

.tc-audit-filtros-grupo > .tc-form-field {
  flex: 140px;
  min-width: 0;
  margin-bottom: 0;
}

.tc-audit-accion-cell {
  align-items: center;
  gap: .35rem;
  display: inline-flex;
}

.tc-audit-accion-icon {
  color: var(--admin-text-muted, #64748b);
}

.tc-audit-accion-cell-wrap {
  flex-direction: column;
  gap: 2px;
  display: flex;
}

.tc-audit-accion-modulo {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  padding-left: 1.15rem;
}

.tc-audit-diff-section, .tc-audit-detalle-section {
  margin-top: 1rem;
}

.tc-audit-modal-loading {
  justify-content: center;
  padding: 1.5rem 0;
  display: flex;
}

.tc-audit-diff-antes {
  background: var(--tc-danger-bg, #fee2e2);
  color: var(--tc-danger-text, #991b1b);
}

.tc-audit-diff-despues {
  background: var(--tc-success-bg, #dcfce7);
  color: var(--tc-success-text, #166534);
}

.admin-shell[data-theme="dark"] .tc-audit-diff-antes {
  color: #fca5a5;
  background: #ef444426;
}

.admin-shell[data-theme="dark"] .tc-audit-diff-despues {
  color: #86efac;
  background: #16a34a26;
}

.tc-drift-step1 {
  gap: var(--tc-space-4);
  flex-direction: column;
  display: flex;
}

.tc-drift-desc {
  font-size: var(--tc-text-sm);
  color: var(--tc-text-muted, #64748b);
  margin: 0;
}

.tc-drift-loading {
  align-items: center;
  gap: var(--tc-space-2);
  font-size: var(--tc-text-sm);
  color: var(--tc-text-muted, #64748b);
  padding: var(--tc-space-3) 0;
  display: flex;
}

.tc-drift-olt-list {
  gap: var(--tc-space-2);
  flex-direction: column;
  display: flex;
}

.tc-drift-olt-item {
  align-items: center;
  gap: var(--tc-space-3);
  border-radius: var(--tc-radius);
  border: 1px solid var(--tc-border, #e2e8f0);
  background: var(--tc-surface, #fff);
  cursor: pointer;
  text-align: left;
  width: 100%;
  padding: .75rem 1rem;
  transition: all .15s;
  display: flex;
}

.tc-drift-olt-item:hover {
  background: var(--tc-surface-hover, #f8fafc);
}

.tc-drift-olt-item--selected {
  border: 2px solid var(--tc-primary, #2563eb);
  background: var(--tc-primary-bg, #eef2ff);
}

.tc-drift-olt-icon {
  border-radius: var(--tc-radius);
  background: var(--tc-border, #e2e8f0);
  width: 36px;
  height: 36px;
  color: var(--tc-text-muted, #64748b);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  font-size: .7rem;
  font-weight: 700;
  display: flex;
}

.tc-drift-olt-icon--selected {
  background: var(--tc-primary, #2563eb);
  color: #fff;
}

.tc-drift-olt-info {
  flex: 1;
  min-width: 0;
}

.tc-drift-olt-name {
  font-weight: 600;
  font-size: var(--tc-text-base);
  color: var(--tc-text, #1e293b);
}

.tc-drift-olt-meta {
  font-size: var(--tc-text-sm);
  color: var(--tc-text-muted, #64748b);
}

.tc-drift-olt-check {
  color: var(--tc-primary, #2563eb);
  flex-shrink: 0;
}

.tc-drift-result {
  gap: var(--tc-space-4);
  flex-direction: column;
  display: flex;
}

.tc-drift-result-header {
  gap: var(--tc-space-2);
  flex-direction: column;
  display: flex;
}

.tc-drift-result-olt {
  font-size: var(--tc-text-sm);
  color: var(--tc-text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: 600;
}

.tc-drift-section {
  gap: var(--tc-space-2);
  flex-direction: column;
  display: flex;
}

.tc-drift-section-header {
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--tc-space-3);
  display: flex;
}

.tc-drift-section-header .tc-alert {
  flex: 1;
  min-width: 0;
}

.tc-drift-section-action {
  flex-shrink: 0;
  align-items: center;
  display: flex;
}

.tc-drift-table {
  border-collapse: collapse;
  width: 100%;
  font-size: var(--tc-text-sm);
}

.tc-drift-table th {
  text-align: left;
  font-weight: 600;
  font-size: var(--tc-text-xs);
  color: var(--tc-text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .04em;
  background: var(--tc-surface-hover, #f8fafc);
  border-bottom: 1px solid var(--tc-border, #e2e8f0);
  white-space: nowrap;
  padding: .45rem .75rem;
}

.tc-drift-table td {
  vertical-align: middle;
  border-bottom: 1px solid var(--tc-border, #e2e8f0);
  color: var(--tc-text, #1e293b);
  padding: .5rem .75rem;
}

.tc-drift-table tr:last-child td {
  border-bottom: none;
}

.tc-drift-td-name {
  font-weight: 600;
}

.tc-drift-td-mono {
  color: var(--tc-text-muted, #64748b);
  font-family: monospace;
  font-size: .78rem;
}

.tc-drift-td-bd {
  color: var(--tc-info-text, #1e40af) !important;
}

.tc-drift-td-olt {
  color: var(--tc-warning-text, #854d0e) !important;
}

.tc-drift-td-actions {
  white-space: nowrap;
  gap: var(--tc-space-1);
  align-items: center;
  display: flex;
}

.tc-drift-footer {
  justify-content: flex-end;
  gap: var(--tc-space-2);
  display: flex;
}

.admin-shell[data-theme="dark"] .tc-drift-olt-item {
  background: var(--admin-card-bg, #1e293b);
  border-color: var(--admin-border, #334155);
}

.admin-shell[data-theme="dark"] .tc-drift-olt-item:hover {
  background: var(--admin-surface-hover, #334155);
}

.admin-shell[data-theme="dark"] .tc-drift-olt-item--selected {
  border-color: var(--tc-primary, #2563eb);
  background: #2563eb26;
}

.admin-shell[data-theme="dark"] .tc-drift-olt-icon {
  background: var(--admin-border, #334155);
  color: var(--admin-text-muted, #94a3b8);
}

.admin-shell[data-theme="dark"] .tc-drift-table th {
  border-color: var(--admin-border, #334155);
  background: #ffffff08;
}

.admin-shell[data-theme="dark"] .tc-drift-table td {
  border-color: var(--admin-border, #334155);
  color: var(--admin-text, #f1f5f9);
}

.tc-wizard-stepper {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  flex-wrap: nowrap;
  align-items: center;
  gap: 0;
  margin-bottom: 1.5rem;
  padding: 1rem .5rem;
  display: flex;
  overflow-x: auto;
}

.tc-wizard-step {
  flex-shrink: 0;
  align-items: center;
  gap: .5rem;
  display: flex;
}

.tc-wizard-step-circle {
  width: 28px;
  height: 28px;
  font-size: var(--tc-text-sm);
  background: var(--admin-bg, #f8fafc);
  color: var(--admin-text-muted, #64748b);
  border: 2px solid var(--admin-border, #e2e8f0);
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  font-weight: 700;
  transition: all .2s;
  display: flex;
}

.tc-wizard-step-circle--active {
  background: var(--admin-primary, #2563eb);
  color: #fff;
  border-color: var(--admin-primary, #2563eb);
}

.tc-wizard-step-circle--done {
  background: var(--tc-success-bg, #dcfce7);
  color: var(--tc-success-text, #166534);
  border-color: var(--tc-success, #16a34a);
}

.tc-wizard-step-label {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  white-space: nowrap;
}

.tc-wizard-step-label--active {
  color: var(--admin-primary, #2563eb);
  font-weight: 600;
}

.tc-wizard-step-line {
  background: var(--admin-border, #e2e8f0);
  flex: 1;
  min-width: 1.5rem;
  height: 2px;
  margin: 0 .5rem;
}

.tc-checkbox-label {
  font-size: var(--tc-text-base);
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  align-items: center;
  gap: .4rem;
  display: inline-flex;
}

.tc-checkbox-input {
  cursor: pointer;
  width: 15px;
  height: 15px;
  accent-color: var(--admin-primary, #2563eb);
  flex-shrink: 0;
}

.tc-radio-label {
  font-size: var(--tc-text-base);
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  align-items: center;
  gap: .4rem;
  display: inline-flex;
}

.tc-radio-input {
  cursor: pointer;
  width: 15px;
  height: 15px;
  accent-color: var(--admin-primary, #2563eb);
  flex-shrink: 0;
}

.tc-toggle-label {
  font-size: var(--tc-text-base);
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  align-items: center;
  gap: .5rem;
  display: inline-flex;
}

.tc-chip-row {
  flex-wrap: wrap;
  gap: .4rem;
  margin-top: .5rem;
  display: flex;
}

.tc-chip--removable {
  cursor: pointer;
  font: inherit;
  border: none;
  align-items: center;
  gap: .3rem;
  padding: .2rem .6rem;
  display: inline-flex;
}

.tc-chip--removable:hover {
  opacity: .8;
}

.tc-chip--removable {
  transition: opacity var(--tc-transicion) var(--tc-curva),
              transform var(--tc-transicion) var(--tc-curva);
}

.tc-chip--removable:active {
  transform: scale(var(--tc-press-escala));
}

.tc-label-section {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .04em;
  align-items: center;
  gap: .35rem;
  margin: 0 0 .5rem;
  font-weight: 700;
  display: flex;
}

.tc-capitalize {
  text-transform: capitalize;
}

.tc-aviso-previa-wrap {
  background: var(--admin-bg, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  padding: .875rem 1rem;
}

.tc-aviso-counts {
  flex-direction: column;
  gap: .4rem;
  display: flex;
}

.tc-aviso-counts-total {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  align-items: center;
  gap: .5rem;
  display: flex;
}

.tc-aviso-counts-list {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  border-left: 2px solid var(--admin-border, #e2e8f0);
  flex-direction: column;
  gap: .25rem;
  margin: .25rem 0 0;
  padding: 0 0 0 1.25rem;
  list-style: none;
  display: flex;
}

.tc-aviso-counts-list li {
  align-items: center;
  gap: .4rem;
  display: flex;
}

.tc-aviso-counts-sincanal {
  color: var(--tc-warning-text, #854d0e) !important;
}

.tc-aviso-canales-grid {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  flex-direction: column;
  gap: .75rem;
  padding: .875rem 1rem;
  display: flex;
}

.tc-aviso-canal-row {
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 1rem;
  display: flex;
}

.tc-aviso-canal-label {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  align-items: center;
  gap: .35rem;
  min-width: 90px;
  padding-top: .15rem;
  font-weight: 600;
  display: flex;
}

.tc-radio-group {
  flex-flow: wrap;
  gap: 1rem;
  display: flex;
}

.tc-aviso-confirm-list {
  background: var(--admin-bg, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  flex-direction: column;
  gap: .5rem;
  margin: 0;
  padding: .75rem 1rem;
  list-style: none;
  display: flex;
}

.tc-aviso-confirm-list li {
  font-size: var(--tc-text-base);
  align-items: center;
  gap: .5rem;
  display: flex;
}

.tc-aviso-confirm-total {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  font-size: var(--tc-text-sm);
  margin-top: .25rem;
  padding-top: .5rem;
}

.tc-confirm-icon-ok {
  color: var(--tc-success, #16a34a);
  flex-shrink: 0;
}

.tc-aviso-confirm-preview {
  background: var(--admin-bg, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  padding: .875rem 1rem;
}

.tc-aviso-confirm-text {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  white-space: pre-wrap;
  margin: 0;
  line-height: 1.55;
}

.tc-aviso-resultado-list {
  flex-direction: column;
  gap: .75rem;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.tc-aviso-resultado-item {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  padding: .75rem 1rem;
}

.tc-aviso-resultado-canal {
  font-size: var(--tc-text-base);
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  display: flex;
}

.tc-aviso-resultado-error {
  font-size: var(--tc-text-sm);
  color: var(--tc-danger-text, #991b1b);
  margin: .35rem 0 0;
}

.tc-aviso-resultado-detalle {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin-top: .5rem;
}

.tc-aviso-resultado-detalle summary {
  cursor: pointer;
  color: var(--admin-primary, #2563eb);
  font-weight: 600;
}

.tc-aviso-resultado-detalle ul {
  margin: .35rem 0 0 1rem;
  padding: 0;
  list-style: outside;
}

.tc-modal-nav-footer {
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  width: 100%;
  display: flex;
}

.tc-modal-nav-right {
  align-items: center;
  gap: .5rem;
  margin-left: auto;
  display: flex;
}

.tc-mt-3 {
  margin-top: .75rem;
}

.tc-mb-3 {
  margin-bottom: .75rem;
}

.tc-stack-5 {
  gap: var(--tc-space-5);
  flex-direction: column;
  display: flex;
}

.tc-stack-4 {
  flex-direction: column;
  gap: 1rem;
  display: flex;
}

.tc-stack-3 {
  flex-direction: column;
  gap: .75rem;
  display: flex;
}

.tc-stack-2 {
  flex-direction: column;
  gap: .5rem;
  display: flex;
}

.tc-stack-2--inicio {
  align-items: flex-start;
}

.tc-stack-1 {
  flex-direction: column;
  gap: .25rem;
  display: flex;
}

.tc-row-2 {
  align-items: center;
  gap: .5rem;
  display: flex;
}

.tc-settings-page-stack {
  max-width: 720px;
}

.tc-text-right {
  text-align: right;
}

.tc-text-base {
  font-size: var(--tc-text-base);
}

.tc-text-sm {
  font-size: var(--tc-text-sm);
}

.tc-text-xs {
  font-size: var(--tc-text-xs);
}

.tc-text-bold {
  font-weight: 700;
}

.tc-text-pre-wrap {
  white-space: pre-wrap;
}

.tc-icono-error-inline {
  cursor: help;
  vertical-align: middle;
  color: var(--tc-danger);
  margin-left: .35rem;
}

.tc-icon-muted {
  color: var(--admin-text-muted, #64748b);
}

.tc-icon-warning {
  color: var(--tc-warning);
}

.tc-section-muted {
  opacity: .5;
  pointer-events: none;
}

.tc-badge-pon-link {
  text-decoration: none;
  display: inline-flex;
}

.tc-badge-pon-link:hover .tc-chip {
  opacity: .8;
}

.tc-form-grid--2col {
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  display: grid;
}

@media (max-width: 640px) {
  .tc-form-grid--2col {
    grid-template-columns: 1fr;
  }
}

.tc-form-grid--3col {
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1rem;
  display: grid;
}

@media (max-width: 640px) {
  .tc-form-grid--3col {
    grid-template-columns: 1fr;
  }
}

.tc-field--narrow {
  max-width: 24rem;
}

.tc-ftth-vlans-lista {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: .625rem;
  grid-template-columns: minmax(0, auto) auto;
  width: fit-content;
  min-width: min(22rem, 100%);
  max-width: 100%;
  display: grid;
  overflow: hidden;
}

.tc-ftth-vlan-fila {
  grid-column: 1 / -1;
  grid-template-columns: subgrid;
  align-items: center;
  column-gap: var(--tc-space-5, 1.25rem);
  padding: .3rem .5rem .3rem .75rem;
  display: grid;
}

.tc-ftth-vlans-lista > * + * {
  border-top: 1px solid var(--admin-border, #e2e8f0);
}

.tc-ftth-vlan-nombre {
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  overflow: hidden;
}

.tc-ftth-vlan-nueva {
  color: var(--admin-primary, #3b5bdb);
  margin-left: .375rem;
  font-size: .6875rem;
}

.tc-ftth-vlan-fila-acciones {
  justify-content: flex-end;
  align-items: center;
  gap: .25rem;
  display: flex;
}

.tc-ftth-vlan-fila-agregar, .tc-ftth-vlans-vacio {
  flex-wrap: wrap;
  grid-column: 1 / -1;
  align-items: center;
  gap: .5rem;
  padding: .3rem .5rem .3rem .75rem;
  display: flex;
}

.tc-ftth-vlans-vacio {
  padding-block: .5rem;
}

.tc-ftth-vlan-fila-agregar .tc-ftth-vlans-strip-dropdown {
  flex: 14rem;
  min-width: 0;
}

.tc-ftth-vlans-pool > .tc-form-field, .tc-ftth-vlans-pool > .tc-alert, .tc-ftth-vlans-pool > .tc-onu-conexion > .tc-form-field, .tc-ftth-vlan-efecto p {
  margin: 0;
}

.tc-modal-overlay {
  z-index: 1200;
  background: #0f172a8c;
  justify-content: center;
  align-items: center;
  padding: 1rem;
  animation: .15s ease-out tc-fade-in;
  display: flex;
  position: fixed;
  inset: 0;
}

.tc-modal-overlay-card {
  text-align: center;
  background: var(--admin-card-bg, #fff);
  max-width: 22rem;
  color: var(--admin-text, #1e293b);
  border-radius: var(--tc-radius-xl, 14px);
  flex-direction: column;
  align-items: center;
  gap: .75rem;
  padding: 2rem 2.5rem;
  animation: .2s ease-out tc-pop-in;
  display: flex;
  box-shadow: 0 20px 60px #00000040;
}

.tc-modal-overlay-title {
  font-size: 1.05rem;
  font-weight: 600;
}

.tc-modal-overlay-sub {
  color: var(--tc-neutral-text, #64748b);
  font-size: .85rem;
}

.admin-shell[data-theme="dark"] .tc-modal-overlay-sub {
  color: var(--admin-text-muted, #94a3b8);
}

.tc-spinner-lg {
  color: var(--tc-info, #3b82f6);
  animation: .8s linear infinite tc-spin;
}

.tc-modal-overlay-ok {
  color: var(--tc-success, #16a34a);
}

.tc-modal-overlay-warn {
  color: var(--tc-warning, #eab308);
}

.tc-modal-overlay-error {
  color: var(--tc-danger, #ef4444);
}

.tc-modal-overlay-card--result {
  max-width: 30rem;
}

.tc-modal-overlay-body {
  text-align: left;
  width: 100%;
  max-height: 14rem;
  overflow-y: auto;
}

.tc-confirmar-onu {
  text-align: center;
  flex-direction: column;
  align-items: center;
  gap: .85rem;
  padding: .35rem 0 .15rem;
  display: flex;
}

.tc-confirmar-onu-icono {
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 3.25rem;
  height: 3.25rem;
  display: flex;
}

.tc-confirmar-onu--danger .tc-confirmar-onu-icono {
  background: var(--tc-danger-bg, #fee2e2);
  color: var(--tc-danger-text, #991b1b);
}

.tc-confirmar-onu--primary .tc-confirmar-onu-icono {
  background: var(--tc-primary-bg, #eef2ff);
  color: var(--tc-primary-text, #4338ca);
}

.tc-confirmar-onu-texto {
  max-width: 24rem;
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-size: .95rem;
  line-height: 1.55;
}

.admin-shell[data-theme="dark"] .tc-confirmar-onu {
  --tc-danger-bg: #ef444429;
  --tc-danger-text: #fca5a5;
  --tc-primary-bg: #3b82f62e;
  --tc-primary-text: #93c5fd;
}

@keyframes tc-fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes tc-pop-in {
  from {
    opacity: 0;
    transform: scale(.94);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.admin-shell[data-theme="dark"] .tc-aviso-previa-wrap, .admin-shell[data-theme="dark"] .tc-aviso-canales-grid, .admin-shell[data-theme="dark"] .tc-aviso-confirm-list, .admin-shell[data-theme="dark"] .tc-aviso-confirm-preview, .admin-shell[data-theme="dark"] .tc-aviso-resultado-item {
  background: var(--admin-bg, #0f172a);
  border-color: var(--admin-border, #334155);
}

.admin-shell[data-theme="dark"] .tc-wizard-stepper {
  border-color: var(--admin-border, #334155);
}

.admin-shell[data-theme="dark"] .tc-wizard-step-line {
  background: var(--admin-border, #334155);
}

.admin-shell[data-theme="dark"] .tc-wizard-step-circle {
  background: var(--admin-bg, #0f172a);
  border-color: var(--admin-border, #334155);
}

.admin-shell[data-theme="dark"] .tc-aviso-counts-list, .admin-shell[data-theme="dark"] .tc-aviso-confirm-list, .admin-shell[data-theme="dark"] .tc-aviso-confirm-total {
  border-color: var(--admin-border, #334155);
}

.tc-canal-header {
  align-items: center;
  gap: var(--tc-space-2);
  display: inline-flex;
}

.tc-canal-info-btn {
  cursor: pointer;
  color: var(--admin-text-muted, #64748b);
  border-radius: var(--tc-radius-sm);
  background: none;
  border: none;
  justify-content: center;
  align-items: center;
  padding: 0;
  transition: color .15s;
  display: inline-flex;
  position: relative;
}

.tc-canal-info-btn:hover {
  color: var(--admin-text, #1e293b);
}

.tc-canal-info-btn .tc-canal-tooltip {
  background: var(--admin-text, #1e293b);
  color: #fff;
  font-size: var(--tc-text-xs);
  border-radius: var(--tc-radius-sm);
  white-space: normal;
  z-index: 10;
  pointer-events: none;
  width: max-content;
  max-width: 240px;
  padding: .4rem .6rem;
  font-weight: 400;
  line-height: 1.4;
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
}

.tc-canal-info-btn:hover .tc-canal-tooltip, .tc-canal-info-btn:focus-visible .tc-canal-tooltip {
  display: block;
}

.tc-canal-grid {
  gap: var(--tc-space-4);
  grid-template-columns: repeat(3, 1fr);
  display: grid;
}

@media (max-width: 640px) {
  .tc-canal-grid {
    grid-template-columns: 1fr;
  }
}

.tc-canal-card {
  background: var(--admin-card-bg, #fff);
  border-radius: var(--tc-radius-sm);
  cursor: pointer;
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2);
  -webkit-user-select: none;
  user-select: none;
  outline: none;
  min-height: 0;
  padding: .55rem .75rem;
  transition: box-shadow .15s, border-color .15s;
  display: flex;
}

.tc-canal-card:focus-visible {
  box-shadow: var(--tc-focus-ring);
}

.tc-canal-card:hover:not(.tc-canal-card--loading) {
  box-shadow: 0 4px 12px #00000014;
}

.tc-canal-card--on {
  border: 1px solid var(--tc-success);
}

.tc-canal-card--on .tc-canal-card-icon {
  color: var(--tc-success);
  opacity: 1;
}

.tc-canal-card--on .tc-canal-card-label {
  color: var(--admin-text, #1e293b);
}

.tc-canal-card--off {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-bg, #f8fafc);
}

.tc-canal-card--off .tc-canal-card-icon {
  opacity: .35;
  color: var(--admin-text-muted, #64748b);
}

.tc-canal-card--off .tc-canal-card-label {
  color: var(--admin-text-muted, #64748b);
}

.tc-canal-card--loading {
  opacity: .6;
  cursor: wait;
  pointer-events: none;
}

.tc-canal-card-icon-wrap {
  align-items: center;
  gap: var(--tc-space-2);
  min-width: 0;
  display: flex;
}

.tc-canal-card-icon {
  flex-shrink: 0;
  transition: color .15s, opacity .15s;
}

.tc-canal-card-label {
  font-size: var(--tc-text-sm);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-weight: 600;
  transition: color .15s;
  overflow: hidden;
}

.tc-canal-card-switch {
  flex-shrink: 0;
}

.admin-shell[data-theme="dark"] .tc-canal-card--on {
  background: var(--admin-card-bg, #1e293b);
}

.admin-shell[data-theme="dark"] .tc-canal-card--off {
  background: var(--admin-bg, #0f172a);
  border-color: var(--admin-border, #334155);
}

.admin-shell[data-theme="dark"] .tc-canal-card--off .tc-canal-card-dot {
  background: var(--admin-border, #475569);
}

.admin-shell[data-theme="dark"] .tc-canal-info-btn .tc-canal-tooltip {
  background: var(--admin-text, #e2e8f0);
  color: #0f172a;
}

.tc-radiocard {
  align-items: flex-start;
  gap: var(--tc-space-2);
  cursor: pointer;
  border-radius: var(--tc-radius);
  border: 1.5px solid var(--admin-border, #e2e8f0);
  background: none;
  padding: .6rem .75rem;
  transition: border-color .15s, background .15s;
  display: flex;
}

.tc-radiocard-input {
  margin-top: 2px;
}

.tc-radiocard-body {
  flex-direction: column;
  display: flex;
}

.tc-radiocard-title {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-radiocard-desc {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
}

.tc-radiocard--disabled {
  cursor: not-allowed;
  opacity: .6;
}

.tc-radiocard--primary.tc-radiocard--selected {
  border-color: var(--admin-primary, #2563eb);
  background: var(--tc-primary-bg);
}

.tc-radiocard--primary.tc-radiocard--selected .tc-radiocard-title {
  color: var(--admin-primary, #2563eb);
}

.tc-radiocard--danger.tc-radiocard--selected {
  border-color: var(--tc-danger);
  background: var(--tc-danger-bg);
}

.tc-radiocard--danger.tc-radiocard--selected .tc-radiocard-title {
  color: var(--tc-danger-text);
}

.admin-shell[data-theme="dark"] .tc-radiocard {
  border-color: var(--admin-border, #ffffff1a);
}

.admin-shell[data-theme="dark"] .tc-radiocard--primary.tc-radiocard--selected {
  --tc-primary-bg: #3b82f62e;
}

.tc-radiocard--lg {
  align-items: flex-start;
  gap: var(--tc-space-3);
  padding: var(--tc-space-4);
  border-radius: var(--tc-radius-lg);
  border-width: 2px;
}

.tc-radiocard--lg .tc-radiocard-input {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

.tc-radiocard-icon {
  border-radius: var(--tc-radius);
  background: var(--tc-surface-hover, #f1f5f9);
  width: 2.25rem;
  height: 2.25rem;
  color: var(--admin-text-muted, #64748b);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  transition: background .15s, color .15s;
  display: flex;
}

.tc-radiocard--lg .tc-radiocard-title {
  font-size: var(--tc-text-base);
}

.tc-radiocard--primary.tc-radiocard--selected .tc-radiocard-icon {
  background: var(--admin-primary, #2563eb);
  color: #fff;
}

.tc-radiocard--danger.tc-radiocard--selected .tc-radiocard-icon {
  background: var(--tc-danger);
  color: #fff;
}

.admin-shell[data-theme="dark"] .tc-radiocard-icon {
  background: var(--admin-surface-hover, #334155);
  color: var(--admin-text-muted, #94a3b8);
}

.admin-shell[data-theme="dark"] .tc-radiocard--primary.tc-radiocard--selected .tc-radiocard-icon {
  background: var(--admin-primary, #3b82f6);
  color: #fff;
}

.tc-aliases-list {
  gap: var(--tc-space-2);
  margin-top: var(--tc-space-3);
  flex-direction: column;
  display: flex;
}

.tc-alias-item {
  align-items: center;
  gap: var(--tc-space-2);
  display: flex;
}

.tc-alias-item .tc-form-input {
  flex: 1;
  min-width: 0;
}

.tc-alias-item--canonical .tc-form-input {
  color: var(--admin-text-muted, #64748b);
  font-family: ui-monospace, monospace;
  font-weight: 600;
}

.admin-shell[data-theme="dark"] .tc-alias-item--canonical .tc-form-input {
  color: var(--admin-text-muted, #94a3b8);
}

.tc-search-combo {
  width: 100%;
  position: relative;
}

.tc-search-combo-field {
  align-items: center;
  display: flex;
  position: relative;
}

.tc-search-combo-icon-left {
  color: var(--admin-text-muted, #64748b);
  pointer-events: none;
  align-items: center;
  display: flex;
  position: absolute;
  top: 50%;
  left: .625rem;
  transform: translateY(-50%);
}

.tc-search-combo-spinner {
  animation: .8s linear infinite tc-spin;
}

.tc-search-combo-input {
  width: 100%;
  padding: var(--tc-space-2) var(--tc-space-3);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-md);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text, #1e293b);
  box-sizing: border-box;
  padding-left: 2.25rem;
  padding-right: 2rem;
  line-height: 1.5;
}

.tc-search-combo-input:focus {
  border-color: var(--admin-primary, #2563eb);
  box-shadow: var(--tc-focus-ring);
  outline: none;
}

.tc-search-combo-input::placeholder {
  color: var(--admin-text-muted, #94a3b8);
}

.tc-search-combo-input:disabled {
  opacity: .6;
  cursor: not-allowed;
}

.tc-search-combo-clear {
  cursor: pointer;
  width: 22px;
  height: 22px;
  color: var(--admin-text-muted, #94a3b8);
  border-radius: var(--tc-radius-sm);
  background: none;
  border: none;
  justify-content: center;
  align-items: center;
  padding: 0;
  display: flex;
  position: absolute;
  top: 50%;
  right: .5rem;
  transform: translateY(-50%);
}

.tc-search-combo-clear:hover {
  background: var(--tc-neutral-bg, #f1f5f9);
  color: var(--admin-text, #1e293b);
}

.tc-search-combo-dropdown {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
  z-index: 10050;
  max-height: 420px;
  position: fixed;
  overflow-y: auto;
  box-shadow: 0 8px 24px #0000001a;
}

.tc-search-combo-empty {
  padding: 1rem var(--tc-space-4);
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-base);
  text-align: center;
}

.tc-search-combo-section {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
}

.tc-search-combo-section:last-child {
  border-bottom: none;
}

.tc-search-combo-section-header {
  padding: .45rem var(--tc-space-4);
  background: var(--admin-bg, #f8fafc);
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--admin-text-muted, #64748b);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  align-items: center;
  gap: .35rem;
  font-weight: 700;
  display: flex;
}

.tc-search-combo-count {
  background: var(--tc-neutral-bg, #f1f5f9);
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  border-radius: 10px;
  margin-left: auto;
  padding: 0 .4rem;
  font-weight: 600;
}

.tc-search-combo-item {
  width: 100%;
  padding: .6rem var(--tc-space-4);
  cursor: pointer;
  text-align: left;
  border: none;
  border-bottom: 1px solid var(--admin-border, #f1f5f9);
  background: none;
  transition: background .1s;
  display: flex;
}

.tc-search-combo-item:last-child {
  border-bottom: none;
}

.tc-search-combo-item:hover {
  background: var(--tc-primary-bg, #eef2ff);
}

.tc-search-combo-item-content {
  flex-direction: column;
  gap: .15rem;
  min-width: 0;
  display: flex;
}

.tc-search-combo-item-primary {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  font-weight: 500;
  display: flex;
}

.tc-search-combo-item-meta {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  flex-wrap: wrap;
  align-items: center;
  gap: .25rem .75rem;
  display: flex;
}

.tc-search-combo-sep:before {
  content: "·";
  color: var(--admin-text-muted, #94a3b8);
  margin-right: .4rem;
}

.tc-search-combo-mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #475569);
}

.tc-search-combo-saldo {
  color: var(--tc-danger, #ef4444);
  font-weight: 600;
}

.admin-shell[data-theme="dark"] .tc-search-combo-dropdown {
  box-shadow: 0 8px 24px #0006;
}

.admin-shell[data-theme="dark"] .tc-search-combo-item:hover {
  background: #6366f11f;
}

.tc-preview-dl {
  grid-template-columns: max-content 1fr;
  gap: 4px 12px;
  margin: 0;
  display: grid;
}

.tc-preview-dl dt {
  color: var(--admin-text-muted, #64748b);
  font-weight: 500;
}

.tc-preview-dl dd {
  margin: 0;
}

.admin-shell[data-theme="dark"] .tc-preview-dl dt {
  color: var(--admin-text-muted, #94a3b8);
}

.tc-preview-toggle {
  cursor: pointer;
  color: var(--admin-text-muted, #64748b);
  background: none;
  border: none;
  align-items: center;
  padding: .1rem;
  line-height: 1;
  display: inline-flex;
}

.tc-preview-toggle:hover {
  color: var(--admin-text, #0f172a);
}

.admin-shell[data-theme="dark"] .tc-preview-toggle {
  color: var(--admin-text-muted, #94a3b8);
}

.admin-shell[data-theme="dark"] .tc-preview-toggle:hover {
  color: var(--admin-text, #e2e8f0);
}

.tc-ubicacion-root {
  margin-top: 8px;
}

.tc-ubicacion-mapa-wrap {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 8px;
  height: 180px;
  overflow: hidden;
}

.tc-ubicacion-mapa-placeholder {
  background: var(--admin-bg);
  border-radius: 8px;
  height: 180px;
}

.tc-ubicacion-footer {
  font-size: var(--tc-text-xs);
  justify-content: space-between;
  align-items: center;
  margin-top: 6px;
  display: flex;
}

.tc-ubicacion-coords {
  color: var(--admin-text-muted, #64748b);
  font-family: SF Mono, Fira Code, monospace;
}

.tc-ubicacion-actions {
  align-items: center;
  gap: 12px;
  display: flex;
}

.tc-ubicacion-maps-link {
  color: var(--admin-primary, #2563eb);
  font-weight: 500;
  font-size: var(--tc-text-xs);
  align-items: center;
  gap: 3px;
  text-decoration: none;
  display: inline-flex;
}

.tc-ubicacion-maps-link:hover {
  text-decoration: underline;
}

.tc-ubicacion-edit-btn {
  color: var(--admin-primary, #2563eb);
  font-size: var(--tc-text-xs);
  cursor: pointer;
  background: none;
  border: none;
  align-items: center;
  gap: 3px;
  padding: 0;
  font-weight: 600;
  display: inline-flex;
}

.tc-ubicacion-edit-btn:hover {
  text-decoration: underline;
}

.tc-ubicacion-empty--no-mt {
  margin-top: 0;
}

.tc-ubicacion-empty {
  background: var(--admin-bg, #f8fafc);
  border: 1px dashed var(--admin-border, #e2e8f0);
  font-size: var(--tc-text-xs);
  border-radius: 8px;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 10px 14px;
  display: flex;
}

.tc-ubicacion-empty-icon {
  color: var(--admin-text-muted, #64748b);
  flex-shrink: 0;
}

.tc-ubicacion-empty-text {
  color: var(--admin-text-muted, #64748b);
  flex: 1;
}

.tc-ubicacion-add-btn {
  color: var(--admin-primary, #2563eb);
  font-size: var(--tc-text-xs);
  cursor: pointer;
  white-space: nowrap;
  background: none;
  border: none;
  padding: 0;
  font-weight: 600;
}

.tc-ubicacion-add-btn:hover {
  text-decoration: underline;
}

.tc-ubicacion-edit {
  background: var(--tc-info-bg);
  border: 1px solid #bfdbfe;
  border-radius: 10px;
  margin-top: 8px;
  padding: 14px;
}

.tc-ubicacion-edit-hint {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 8px;
}

.tc-ubicacion-inputs {
  gap: 6px;
  margin-top: 8px;
  margin-bottom: 8px;
  display: flex;
}

.tc-ubicacion-inputs .tc-form-input {
  flex: 1;
}

.tc-ubicacion-error {
  font-size: var(--tc-text-xs);
  color: var(--tc-danger);
  margin: 0 0 6px;
}

.tc-ubicacion-edit-actions {
  justify-content: flex-end;
  gap: 6px;
  display: flex;
}

.tc-ubicacion-chip {
  background: var(--tc-info-bg);
  font-size: var(--tc-text-xs);
  color: var(--tc-info-text, #1e40af);
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  align-items: center;
  gap: 5px;
  padding: 6px 12px;
  display: inline-flex;
}

.tc-ubicacion-chip--empty {
  background: var(--admin-bg, #f8fafc);
  border-color: var(--admin-border, #e2e8f0);
  color: var(--admin-text-muted, #64748b);
}

.tc-ubicacion-principal-icon {
  color: var(--admin-text, #1e293b);
  flex-shrink: 0;
}

.tc-ubicacion-principal-icon--pending {
  color: var(--admin-text-muted, #64748b);
}

.admin-shell[data-theme="dark"] .tc-ubicacion-mapa-wrap {
  border-color: var(--admin-border, #334155);
}

.admin-shell[data-theme="dark"] .tc-ubicacion-empty {
  background: var(--admin-bg, #1e293b);
  border-color: var(--admin-border, #334155);
}

.admin-shell[data-theme="dark"] .tc-ubicacion-edit {
  background: #3b82f614;
  border-color: #3b82f64d;
}

.admin-shell[data-theme="dark"] .tc-ubicacion-chip {
  color: #93c5fd;
  background: #3b82f614;
  border-color: #3b82f64d;
}

.tc-mapa-ubicacion {
  isolation: isolate;
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
  background: var(--admin-bg, #f1f5f9);
  width: 100%;
  max-width: 100%;
  position: relative;
  overflow: hidden;
}

.tc-mapa-ubicacion--ficha {
  aspect-ratio: 16 / 7;
  min-height: 150px;
  max-height: 260px;
}

.tc-mapa-ubicacion--paso {
  aspect-ratio: 16 / 5;
  min-height: 170px;
  max-height: 240px;
}

.tc-mapa-ubicacion-cargando {
  background: var(--admin-bg, #f1f5f9);
  width: 100%;
  height: 100%;
}

.tc-mapa-ubicacion-accion {
  z-index: 1000;
  gap: 6px;
  display: flex;
  position: absolute;
  top: 10px;
  right: 10px;
}

.tc-mapa-ubicacion-coords {
  z-index: 1000;
  font-size: var(--tc-text-xs);
  font-variant-numeric: tabular-nums;
  color: var(--admin-text, #1e293b);
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 999px;
  padding: 4px 10px;
  font-weight: 600;
  position: absolute;
  bottom: 10px;
  left: 10px;
}

.tc-mapa-ubicacion .leaflet-container {
  pointer-events: none;
}

.tc-mapa-pin-gota {
  filter: drop-shadow(0 2px 3px #00000059);
  background: none;
  border: 0;
}

.tc-ubicacion-bloque {
  gap: var(--tc-space-2);
  margin-top: var(--tc-space-2);
  flex-direction: column;
  display: flex;
}

.tc-ubicacion-pie {
  align-items: center;
  gap: var(--tc-space-1) var(--tc-space-3);
  font-size: var(--tc-text-sm);
  flex-wrap: wrap;
  display: flex;
}

.tc-ubicacion-pie-dir {
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-ubicacion-pie-link {
  color: var(--admin-primary, #2563eb);
  align-items: center;
  gap: 4px;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
}

.tc-ubicacion-pie-link:hover {
  text-decoration: underline;
}

.tc-ubicacion-mapa-wrap--amplio {
  height: min(60vh, 440px);
}

@media (max-height: 500px) {
  .tc-ubicacion-mapa-wrap--amplio {
    height: 45vh;
  }
}

.tc-service-context-link {
  color: var(--admin-primary, #2563eb);
  font-weight: 600;
  text-decoration: none;
}

.tc-service-context-link:hover {
  text-decoration: underline;
}

.tc-chip.tc-chip--outline {
  border: 1px solid var(--tc-estado-neutral-borde, #e2e8f0);
  color: var(--tc-estado-neutral-texto, #475569);
  background: none;
}

.tc-service-hero-bands {
  flex-direction: column;
  display: flex;
}

.tc-service-hero-band {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  padding: .875rem 0;
}

.tc-service-hero-band:first-child {
  border-top: none;
  padding-top: 0;
}

.tc-service-hero-band:last-child {
  padding-bottom: 0;
}

.tc-service-hero-identity {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  display: flex;
}

.tc-service-hero-identity-left {
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  display: flex;
}

.tc-service-hero-identity-left h1 {
  font-size: var(--tc-text-3xl);
  letter-spacing: -.02em;
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 700;
}

.tc-service-hero-fields {
  flex-wrap: wrap;
  gap: .75rem 0;
  display: flex;
}

.tc-service-hero-field {
  border-left: 1px solid var(--admin-border, #e2e8f0);
  flex: 180px;
  min-width: 0;
  padding: 0 1.25rem;
}

.tc-service-hero-field:first-child {
  border-left: none;
  padding-left: 0;
}

.tc-service-hero-label {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 .3rem;
  font-weight: 600;
  display: block;
}

.tc-service-hero-value {
  font-size: var(--tc-text-md);
  color: var(--admin-text, #1e293b);
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem;
  font-weight: 600;
  display: flex;
}

.tc-service-hero-value--muted {
  color: var(--admin-text-muted, #64748b);
  font-weight: 500;
}

.tc-service-hero-value--danger {
  color: var(--tc-danger);
}

.tc-service-hero-value svg {
  flex-shrink: 0;
}

.tc-service-hero-value-link-icon {
  color: var(--admin-primary, #2563eb);
  align-items: center;
  display: inline-flex;
}

.tc-service-hero-price-special {
  background: var(--tc-warning-bg);
  font-size: var(--tc-text-sm);
  border: 1px solid #fde68a;
  border-radius: 8px;
  align-items: center;
  gap: 6px;
  padding: 2px 10px;
  display: inline-flex;
}

.tc-service-hero-price-special-value {
  color: var(--tc-warning-text);
  font-weight: 700;
}

.tc-service-hero-price-special-original {
  color: var(--tc-warning-text);
  font-size: .7rem;
  text-decoration: line-through;
}

.tc-service-hero-price-special-tag {
  background: var(--tc-warning-bg);
  color: var(--tc-warning-text);
  border-radius: 999px;
  padding: 1px 6px;
  font-size: .65rem;
  font-weight: 700;
}

.tc-service-hero-split {
  gap: 1.5rem;
  display: flex;
}

.tc-service-hero-split-col {
  flex: 1 1 0;
  min-width: 0;
}

.tc-service-hero-split-col + .tc-service-hero-split-col {
  border-left: 1px solid var(--admin-border, #e2e8f0);
  padding-left: 1.5rem;
}

.tc-service-hero-address {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  align-items: center;
  gap: 6px;
  margin-top: .4rem;
  display: flex;
}

.tc-service-hero-address svg {
  flex-shrink: 0;
}

.tc-service-hero-cycle {
  flex-wrap: wrap;
  gap: .875rem 1.25rem;
  margin-top: .5rem;
  display: flex;
}

.tc-service-hero-cycle-item {
  min-width: 90px;
}

.tc-service-hero-cycle-note {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin-top: .625rem;
}

@media (max-width: 640px) {
  .tc-service-hero-fields {
    flex-direction: column;
    gap: .75rem;
  }

  .tc-service-hero-field {
    border-left: none;
    border-top: 1px solid var(--admin-border, #e2e8f0);
    flex: none;
    padding: .75rem 0 0;
  }

  .tc-service-hero-field:first-child {
    border-top: none;
    padding-top: 0;
  }

  .tc-service-hero-split {
    flex-direction: column;
    gap: 1rem;
  }

  .tc-service-hero-split-col + .tc-service-hero-split-col {
    border-left: none;
    border-top: 1px solid var(--admin-border, #e2e8f0);
    padding-top: 1rem;
    padding-left: 0;
  }
}

.tc-hero-entidad-icono {
  background: var(--tc-hero-entidad-bg);
  width: 48px;
  height: 48px;
  color: var(--tc-hero-entidad-fg);
  border-radius: 12px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: inline-flex;
}

.tc-hero-entidad-icono--cliente {
  --tc-hero-entidad-bg: var(--tc-info-bg, #dbeafe);
  --tc-hero-entidad-fg: var(--tc-info-text, #1e40af);
}

.tc-hero-entidad-icono--servicio {
  --tc-hero-entidad-bg: var(--tc-violet-bg, #ede9fe);
  --tc-hero-entidad-fg: var(--tc-violet-text, #5b21b6);
}

.admin-shell[data-theme="dark"] .tc-hero-entidad-icono--cliente {
  --tc-hero-entidad-bg: #3b82f62e;
  --tc-hero-entidad-fg: #93c5fd;
}

.tc-cliente-hero-doc {
  width: auto;
  font: inherit;
  color: inherit;
  letter-spacing: .03em;
  background: var(--admin-bg, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  cursor: pointer;
  border-radius: 8px;
  align-items: center;
  gap: .4rem;
  margin: 0;
  padding: 2px 10px;
  display: inline-flex;
}

.tc-cliente-hero-doc:hover {
  border-color: var(--admin-primary, #2563eb);
  color: var(--admin-primary, #2563eb);
}

.tc-cliente-hero-principal {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  font-weight: 500;
}

.tc-cliente-hero-multi > .tc-service-hero-value {
  flex-wrap: nowrap;
}

.tc-cliente-hero-correo {
  overflow-wrap: anywhere;
  min-width: 0;
}

.tc-cliente-hero-field--correo {
  flex: auto;
}

.tc-cliente-hero-multi > .tc-service-hero-value + .tc-service-hero-value {
  margin-top: .25rem;
}

@media (min-width: 641px) {
  .tc-cliente-hero-field--ancho {
    flex: 2 260px;
  }

  .tc-cliente-hero-cifras {
    flex: 3 420px;
    min-width: 340px;
  }
}

@media (max-width: 640px) {
  .tc-cliente-hero-banda-cifras {
    flex-wrap: nowrap;
  }
}

.tc-cliente-hero-cifras {
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: .5rem 1.25rem;
  display: grid;
}

.tc-cliente-hero-cuenta {
  gap: var(--tc-space-4);
  flex-direction: column;
  display: flex;
}

.tc-cliente-hero-cuenta > .tc-cliente-hero-cifras {
  flex: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
}

.tc-cliente-hero-cuenta {
  container-type: inline-size;
}

@container (min-width: 600px) {
  .tc-cliente-hero-cuenta > .tc-cliente-hero-cifras {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.tc-cliente-hero-cifra {
  min-width: 0;
}

.tc-cliente-hero-cifra-valor {
  font-size: var(--tc-text-xl);
  color: var(--admin-text, #1e293b);
  overflow-wrap: anywhere;
  font-weight: 700;
  line-height: 1.2;
  display: block;
}

.tc-cliente-hero-cifra-valor--exito {
  color: var(--tc-success);
}

.tc-cliente-hero-cifra-valor--aviso {
  color: var(--tc-warning-text, #854d0e);
}

.tc-cliente-hero-cifra-valor--primario {
  color: var(--admin-primary, #2563eb);
}

.admin-shell[data-theme="dark"] .tc-cliente-hero-cifras {
  --tc-warning-text: #fde047;
}

.tc-cliente-hero-cifra-sub {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin-top: .15rem;
  display: block;
}

.tc-text-lg-bold {
  font-size: var(--tc-text-lg);
  color: var(--tc-primary-text, #4338ca);
  font-weight: 700;
}

.tc-aviso-progreso-header {
  justify-content: space-between;
  align-items: center;
  margin-bottom: .25rem;
  display: flex;
}

.tc-aviso-previa-header {
  justify-content: space-between;
  align-items: center;
  margin-bottom: .5rem;
  display: flex;
}

.tc-aviso-stat {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  align-items: center;
  gap: .4rem;
  display: flex;
}

.tc-aviso-stat strong {
  font-size: var(--tc-text-base);
  font-weight: 700;
}

.tc-aviso-stat-icon--ok {
  color: var(--tc-success, #16a34a);
  flex-shrink: 0;
}

.tc-aviso-stat-icon--error {
  color: var(--tc-danger, #ef4444);
  flex-shrink: 0;
}

.tc-aviso-stat-icon--pending {
  color: var(--tc-warning, #eab308);
  flex-shrink: 0;
}

.tc-aviso-stat-label {
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-sm);
  flex: 1;
}

.tc-aviso-confirm-asunto {
  color: var(--admin-text, #1e293b);
  font-weight: 600;
  font-size: var(--tc-text-base);
  margin-bottom: .25rem;
}

.tc-aviso-confirm-check-label {
  background: var(--tc-warning-bg, #fef9c3);
  border: 1px solid var(--tc-warning, #eab308);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-base);
  color: var(--tc-warning-text, #854d0e);
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  align-items: center;
  gap: .625rem;
  padding: .875rem 1rem;
  display: flex;
}

.tc-aviso-confirm-check-label input[type="checkbox"] {
  cursor: pointer;
  width: 1rem;
  height: 1rem;
  accent-color: var(--tc-warning, #eab308);
  flex-shrink: 0;
}

.tc-flex-end {
  justify-content: flex-end;
  display: flex;
}

.admin-shell[data-theme="dark"] .tc-aviso-stat {
  color: var(--admin-text, #f1f5f9);
}

.admin-shell[data-theme="dark"] .tc-aviso-stat-label {
  color: var(--admin-text-muted, #94a3b8);
}

.tc-plantilla-row {
  flex-wrap: wrap;
  align-items: flex-end;
  gap: .5rem;
  display: flex;
}

.tc-plantilla-row select {
  flex: 1;
  min-width: 0;
}

.tc-plantilla-guardar {
  flex-wrap: wrap;
  align-items: flex-end;
  gap: .5rem;
  margin-top: .5rem;
  display: flex;
}

.tc-plantilla-guardar input {
  flex: 1;
  min-width: 140px;
}

.admin-shell[data-theme="dark"] .tc-plantilla-guardar input, .admin-shell[data-theme="dark"] .tc-plantilla-row select {
  background: var(--admin-card-bg, #1e293b);
  color: var(--admin-text, #f1f5f9);
  border-color: var(--admin-border, #334155);
}

.tc-aviso-schedule-toggle {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  gap: 0;
  width: fit-content;
  display: flex;
  overflow: hidden;
}

.tc-aviso-schedule-btn {
  font-size: var(--tc-text-sm, .8125rem);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text-muted, #64748b);
  cursor: pointer;
  border: none;
  padding: .45rem 1rem;
  font-weight: 500;
  line-height: 1.4;
  transition: background .15s, color .15s;
}

.tc-aviso-schedule-btn--active {
  background: var(--admin-primary, #2563eb);
  color: #fff;
}

.tc-aviso-schedule-btn:not(.tc-aviso-schedule-btn--active):hover {
  background: var(--admin-bg, #f8fafc);
}

.tc-aviso-schedule-fields {
  flex-direction: column;
  gap: .75rem;
  margin-top: .75rem;
  display: flex;
}

.tc-aviso-schedule-row {
  flex-wrap: wrap;
  gap: .75rem;
  display: flex;
}

.tc-aviso-schedule-row > * {
  flex: 1;
  min-width: 200px;
}

.tc-programados-list {
  flex-direction: column;
  gap: 0;
  display: flex;
}

.tc-programados-item {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  grid-template-columns: 1fr auto;
  align-items: start;
  gap: .75rem;
  padding: .875rem 1rem;
  display: grid;
}

.tc-programados-item:last-child {
  border-bottom: none;
}

.tc-programados-meta {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  margin-top: .25rem;
  display: flex;
}

.tc-programados-nombre {
  font-size: var(--tc-text-base, .875rem);
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-programados-preview {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 480px;
  margin-top: .25rem;
  overflow: hidden;
}

.tc-programados-actions {
  flex-shrink: 0;
  align-items: center;
  gap: .5rem;
  display: flex;
}

@media (max-width: 640px) {
  .tc-programados-item {
    grid-template-columns: 1fr;
  }

  .tc-programados-preview {
    max-width: 100%;
  }
}

.tc-programados-loading {
  justify-content: center;
  padding: 2rem;
  display: flex;
}

.admin-shell[data-theme="dark"] .tc-aviso-schedule-btn {
  background: var(--admin-card-bg, #1e293b);
  color: var(--admin-text-muted, #94a3b8);
}

.admin-shell[data-theme="dark"] .tc-aviso-schedule-btn:not(.tc-aviso-schedule-btn--active):hover {
  background: #ffffff0f;
}

.admin-shell[data-theme="dark"] .tc-aviso-schedule-toggle, .admin-shell[data-theme="dark"] .tc-programados-item {
  border-color: var(--admin-border, #334155);
}

.admin-shell[data-theme="dark"] .tc-programados-nombre {
  color: var(--admin-text, #f1f5f9);
}

.admin-shell[data-theme="dark"] .tc-programados-preview, .admin-shell[data-theme="dark"] .tc-programados-meta {
  color: var(--admin-text-muted, #94a3b8);
}

.tc-cliente-combo {
  position: relative;
}

.tc-cliente-combo-pill {
  align-items: center;
  gap: var(--tc-space-2);
  border-radius: var(--tc-radius);
  border: 1.5px solid var(--tc-success);
  background: var(--tc-success-bg);
  padding: 7px 11px;
  display: flex;
}

.tc-cliente-combo-pill-name {
  font-size: var(--tc-text-base);
  color: var(--tc-success-text);
  flex: 1;
  font-weight: 600;
}

.tc-cliente-combo-pill-clear {
  cursor: pointer;
  color: var(--tc-success-text);
  background: none;
  border: none;
  align-items: center;
  padding: 0 2px;
  display: flex;
}

.tc-cliente-combo-input-wrap {
  position: relative;
}

.tc-cliente-combo-search-icon {
  color: var(--admin-text-muted);
  pointer-events: none;
  display: flex;
  position: absolute;
  top: 50%;
  left: 9px;
  transform: translateY(-50%);
}

.tc-cliente-combo-input-wrap .tc-form-input {
  padding-left: 30px;
}

.tc-cliente-combo-dropdown {
  z-index: 100001;
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  box-shadow: var(--admin-shadow, 0 8px 24px #00000026);
  max-height: 260px;
  overflow-y: auto;
}

.tc-cliente-combo-status {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  padding: 12px 14px;
}

.tc-cliente-combo-crear {
  border: none;
  border-top: 1px solid var(--admin-border, #e2e8f0);
  cursor: pointer;
  text-align: left;
  width: 100%;
  font-size: var(--tc-text-sm);
  color: var(--admin-primary, #2563eb);
  background: none;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  font-weight: 600;
  transition: background .1s;
  display: flex;
}

.tc-cliente-combo-crear:hover {
  background: var(--admin-table-hover, #f8fafc);
}

.tc-modal-reserva-combo {
  min-height: 170px;
}

.tc-cliente-combo-item {
  text-align: left;
  cursor: pointer;
  width: 100%;
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  border: none;
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  background: none;
  padding: 9px 14px;
  transition: background .1s;
  display: block;
}

.tc-cliente-combo-item:last-child {
  border-bottom: none;
}

.tc-cliente-combo-item:hover {
  background: var(--admin-table-hover, #f8fafc);
}

.tc-cliente-combo-item-name {
  font-weight: 600;
}

.tc-cliente-combo-item-sub {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #94a3b8);
  margin-top: 1px;
}

.admin-shell[data-theme="dark"] .tc-cliente-combo-pill {
  border-color: var(--tc-success);
  background: #16a34a26;
}

.admin-shell[data-theme="dark"] .tc-cliente-combo-pill-name, .admin-shell[data-theme="dark"] .tc-cliente-combo-pill-clear {
  color: #4ade80;
}

.tc-selector-dir-dropdown {
  z-index: 100001;
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  box-shadow: var(--admin-shadow, 0 8px 24px #00000026);
  overflow-y: auto;
}

.tc-selector-dir-status {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  padding: 12px 14px;
}

.tc-selector-dir-item {
  text-align: left;
  cursor: pointer;
  width: 100%;
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  border: none;
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  background: none;
  padding: 9px 14px;
  transition: background .1s;
  display: block;
}

.tc-selector-dir-item:last-child {
  border-bottom: none;
}

.tc-selector-dir-item:hover {
  background: var(--admin-table-hover, #f8fafc);
}

.tc-selector-dir-item-name {
  font-weight: 600;
}

.tc-sector-similares {
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
  display: flex;
}

.tc-cobertura-lista {
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius);
  max-height: 320px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
  overflow-y: auto;
}

.tc-cobertura-item {
  border-bottom: 1px solid var(--admin-border);
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  display: flex;
}

.tc-cobertura-item:last-child {
  border-bottom: none;
}

.tc-cobertura-nombre {
  font-size: var(--tc-text-base);
  color: var(--admin-text);
}

.tc-cobertura-hint {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted);
}

.tc-cobertura-ok {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted);
  white-space: nowrap;
  align-items: center;
  gap: 6px;
  display: inline-flex;
}

.tc-ubic-link {
  cursor: pointer;
  color: var(--admin-primary);
  font-size: inherit;
  background: none;
  border: none;
  align-items: center;
  gap: 2px;
  padding: 0;
  font-weight: 600;
  display: inline-flex;
}

.tc-ubic-link:hover {
  text-decoration: underline;
}

.tc-ubic-chevron {
  color: var(--admin-text-muted);
  opacity: .45;
}

tr:hover .tc-ubic-chevron {
  opacity: 1;
}

.tc-ubic-muted {
  color: var(--admin-text-muted);
}

.tc-ubic-acciones {
  justify-content: flex-end;
  gap: 6px;
  display: inline-flex;
}

.tc-dropdown {
  width: 100%;
  position: relative;
}

.tc-dropdown-trigger {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2);
  width: 100%;
  padding: var(--tc-space-2) var(--tc-space-3);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text, #1e293b);
  font-size: var(--tc-text-md);
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
  line-height: 1.5;
  transition: border-color .15s, box-shadow .15s;
  display: flex;
}

.tc-dropdown-trigger:focus, .tc-dropdown-trigger:focus-visible {
  border-color: var(--admin-primary, #2563eb);
  box-shadow: var(--tc-focus-ring);
  outline: none;
}

.tc-dropdown-trigger--disabled {
  opacity: .6;
  cursor: not-allowed;
}

.tc-dropdown-value {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.tc-dropdown-placeholder {
  color: var(--admin-text-muted, #94a3b8);
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.tc-dropdown-chevron {
  color: var(--admin-text-muted, #94a3b8);
  flex-shrink: 0;
}

.tc-dropdown-panel {
  z-index: 100001;
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  box-shadow: var(--admin-shadow, 0 8px 24px #00000026);
  flex-direction: column;
  display: flex;
  overflow: hidden;
}

.tc-dropdown-search-wrap {
  padding: var(--tc-space-2);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  flex-shrink: 0;
  position: relative;
}

.tc-dropdown-search-icon {
  left: calc(var(--tc-space-2) + 8px);
  color: var(--admin-text-muted, #94a3b8);
  pointer-events: none;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.tc-dropdown-search-input {
  width: 100%;
  padding: var(--tc-space-2) var(--tc-space-2) var(--tc-space-2) calc(var(--tc-space-2) + 20px);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-sm);
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  background: var(--admin-card-bg, #fff);
  box-sizing: border-box;
  outline: none;
}

.tc-dropdown-search-input:focus {
  border-color: var(--admin-primary, #2563eb);
}

.tc-dropdown-list {
  flex: 1;
  overflow-y: auto;
}

.tc-dropdown-empty {
  padding: var(--tc-space-3);
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #94a3b8);
  text-align: center;
}

.tc-dropdown-option {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2);
  width: 100%;
  color: var(--admin-text, #1e293b);
  font-size: var(--tc-text-base);
  text-align: left;
  cursor: pointer;
  background: none;
  border: none;
  padding: 9px 14px;
  font-weight: 500;
  display: flex;
}

.tc-dropdown-option-main {
  flex-direction: column;
  flex: 1;
  min-width: 0;
  display: flex;
}

.tc-dropdown-option-label {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.tc-dropdown-option-sublabel {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  font-weight: 400;
}

.tc-dropdown-option-check {
  color: var(--admin-primary, #2563eb);
  flex-shrink: 0;
}

.tc-dropdown-option--selected {
  background: var(--tc-primary-bg);
  color: var(--admin-primary, #2563eb);
  font-weight: 600;
}

.tc-dropdown-option--highlighted:not(.tc-dropdown-option--selected) {
  background: var(--admin-table-hover);
}

.tc-dropdown-option--disabled {
  opacity: .45;
  cursor: not-allowed;
}

.tc-dropdown-option-badge {
  background: var(--tc-info-bg, #eff6ff);
  color: var(--admin-primary, #2563eb);
  border-radius: 999px;
  flex-shrink: 0;
  padding: .1rem .4rem;
  font-size: .6875rem;
  font-weight: 600;
  line-height: 1.4;
}

.tc-dropdown--limpiable .tc-dropdown-chevron {
  visibility: hidden;
}

.tc-dropdown-clear {
  right: calc(var(--tc-space-3) - 2px);
  color: var(--admin-text-muted, #64748b);
  cursor: pointer;
  background: none;
  border: none;
  align-items: center;
  padding: 2px;
  display: flex;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.tc-dropdown-clear:hover {
  color: var(--admin-text, #1e293b);
}

.solicitud-wizard-field-input .tc-dropdown-trigger {
  padding: .65rem .9rem;
  font-size: .9375rem;
}

.solicitud-wizard-field-input .tc-dropdown-clear {
  right: calc(.9rem - 2px);
}

.tc-dropdown-accion {
  border: none;
  border-top: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  width: 100%;
  color: var(--admin-primary, #2563eb);
  font-size: var(--tc-text-sm);
  text-align: left;
  cursor: pointer;
  flex-shrink: 0;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  font-weight: 600;
  display: flex;
  position: sticky;
  bottom: 0;
}

.tc-dropdown-accion:hover {
  background: var(--admin-table-hover, #f8fafc);
}

.admin-shell[data-theme="dark"] .tc-dropdown-panel {
  background: var(--admin-card-bg);
  border-color: var(--admin-border);
}

:is(html:has(.admin-shell[data-theme="dark"]) .tc-dropdown-panel, html:has(.admin-shell[data-theme="dark"]) .tc-datepicker-popover, html:has(.admin-shell[data-theme="dark"]) .tc-confirm-overlay, html:has(.admin-shell[data-theme="dark"]) .tc-notify-overlay, html:has(.admin-shell[data-theme="dark"]) .tc-search-combo-dropdown, html:has(.admin-shell[data-theme="dark"]) .tc-cliente-combo-dropdown, html:has(.admin-shell[data-theme="dark"]) .tc-selector-dir-dropdown, html:has(.admin-shell[data-theme="dark"]) .tc-palette-backdrop) {
  --tc-palette-chip: #ffffff0f;
  --tc-palette-sutil: #ffffff0a;
  --admin-card-bg: #1e293b;
  --admin-bg: #0f172a;
  --admin-text: #f1f5f9;
  --admin-text-muted: #94a3b8;
  --admin-border: #ffffff1a;
  --admin-input-bg: #1e293b;
  --admin-input-border: #ffffff26;
  --admin-primary: #3b82f6;
  --admin-table-hover: #ffffff0d;
  --admin-shadow: 0 8px 24px #00000080;
  --tc-primary-bg: #3b82f62e;
  --tc-info-bg: #3b82f62e;
  --lightningcss-light: ;
  --lightningcss-dark: initial;
  color-scheme: dark;
  color: var(--admin-text);
}

:is(html:has(.admin-shell[data-theme="light"]) .tc-dropdown-panel, html:has(.admin-shell[data-theme="light"]) .tc-datepicker-popover, html:has(.admin-shell[data-theme="light"]) .tc-confirm-overlay, html:has(.admin-shell[data-theme="light"]) .tc-notify-overlay, html:has(.admin-shell[data-theme="light"]) .tc-search-combo-dropdown, html:has(.admin-shell[data-theme="light"]) .tc-cliente-combo-dropdown, html:has(.admin-shell[data-theme="light"]) .tc-selector-dir-dropdown, html:has(.admin-shell[data-theme="light"]) .tc-palette-backdrop) {
  --admin-text-muted: #64748b;
}

:is(html:has(.admin-shell[data-theme="dark"]) .tc-datepicker-popover, html:has(.admin-shell[data-theme="dark"]) .tc-search-combo-dropdown) {
  box-shadow: 0 8px 24px #0006;
}

.tc-uso-bar-wrap {
  align-items: center;
  gap: .5rem;
  display: flex;
}

.tc-uso-bar-label {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  white-space: nowrap;
}

.tc-ipv6-bloque {
  flex-direction: column;
  gap: .3rem;
  display: flex;
}

.tc-ipv6-cidr {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text, #1e293b);
  line-height: 1.3;
}

.tc-ipv6-delegacion {
  color: var(--admin-text-muted, #64748b);
}

.tc-uso-ipv6 {
  flex-direction: column;
  gap: .2rem;
  display: flex;
}

.tc-uso-ipv6 .tc-barra-progreso {
  height: 5px;
}

.tc-uso-ipv6-label {
  font-size: var(--tc-text-xs, .75rem);
  line-height: 1;
}

.tc-migracion-header {
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  margin-bottom: .5rem;
  display: flex;
}

.tc-migracion-hint {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-migracion-ultima {
  flex-direction: column;
  gap: .4rem;
  margin-top: .5rem;
  display: flex;
}

.tc-migracion-status-row {
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  display: flex;
}

.tc-migracion-status-label {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  font-weight: 600;
}

.tc-migracion-actualizando {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.tc-migracion-detail {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  flex-wrap: wrap;
  gap: .5rem;
  display: flex;
}

.tc-migracion-exitosos {
  color: var(--tc-success, #16a34a);
  font-weight: 500;
}

.tc-migracion-fallidos {
  color: var(--tc-danger, #ef4444);
  font-weight: 500;
}

.tc-migracion-actions {
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  margin-top: .5rem;
  display: flex;
}

.tc-migracion-error {
  font-size: var(--tc-text-sm);
}

.tc-ipam-free {
  color: var(--tc-success, #16a34a);
  font-weight: 500;
}

.tc-ipam-assigned {
  color: var(--admin-primary, #2563eb);
  font-weight: 500;
}

.tc-ipv6-stats-grid {
  gap: var(--tc-space-4);
  margin-bottom: var(--tc-space-4);
  grid-template-columns: 1fr 1fr;
  display: grid;
}

.tc-ipv6-stats-grid--single {
  grid-template-columns: 1fr;
}

@media (max-width: 640px) {
  .tc-ipv6-stats-grid {
    grid-template-columns: 1fr;
  }
}

.tc-stat-row.tc-ordenes-kpis, .tc-stat-row.tc-integraciones-kpis {
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.tc-integ-resumen {
  margin-bottom: var(--tc-space-4, 1rem);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-bg, #f8fafc);
  border-radius: 12px;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: .75rem .9rem;
  display: flex;
}

.tc-integ-resumen__quien {
  font-weight: 600;
  font-size: var(--tc-text-sm, .875rem);
  color: var(--admin-text, #1e293b);
  margin-right: 4px;
}

.tc-integ-cuerpo {
  gap: var(--tc-space-5, 1.25rem);
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  align-items: start;
  display: grid;
}

.tc-integ-col {
  gap: var(--tc-space-4, 1rem);
  flex-direction: column;
  min-width: 0;
  display: flex;
}

.tc-integ-bloque {
  gap: var(--tc-space-2, .5rem);
  flex-direction: column;
  display: flex;
}

.tc-integ-bloque .tc-form-section-label, .tc-integ-col--acceso > .tc-form-section-label {
  margin-bottom: 0;
}

.tc-integ-plantillas {
  gap: var(--tc-space-2, .5rem);
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  display: grid;
}

.tc-integ-grupo {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 12px;
  overflow: hidden;
}

.tc-integ-grupo__cab {
  font-size: var(--tc-text-xs, .75rem);
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--admin-text-muted, #64748b);
  background: var(--admin-bg, #f8fafc);
  justify-content: space-between;
  align-items: center;
  padding: .45rem .8rem;
  font-weight: 700;
  display: flex;
}

.tc-integ-grupo__cuenta {
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
}

.tc-integ-permiso {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  padding: .65rem .8rem;
}

.tc-integ-permiso .vpn-config-toggle-wrap {
  padding: 0;
}

.tc-integ-permiso .vpn-config-toggle-wrap > div:first-child {
  flex: 1;
  min-width: 0;
}

.tc-integ-col--acceso .tc-modal-field-group {
  margin: 0;
}

.tc-integ-permiso__meta {
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  display: flex;
}

.tc-integ-permiso__ver {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-primary, #2563eb);
  cursor: pointer;
  background: none;
  border: 0;
  padding: 0;
}

.tc-integ-permiso__ver:hover {
  text-decoration: underline;
}

.tc-integ-permiso__endpoints {
  background: var(--admin-bg, #f8fafc);
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text, #1e293b);
  border-radius: 8px;
  margin: 8px 0 0;
  padding: .5rem .65rem;
  line-height: 1.7;
  list-style: none;
}

.tc-integ-limite-otro {
  margin-top: var(--tc-space-2, .5rem);
}

.tc-integ-pie {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-3, .75rem);
  flex-wrap: wrap;
  width: 100%;
  display: flex;
}

.tc-integ-pie__nota {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-integ-pie__nota.is-falta {
  color: var(--tc-warning-text, #92400e);
}

.tc-ipv6-stats-grid .tc-stat-row {
  margin-bottom: 0;
}

.tc-form-section-label {
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 .6rem;
  font-size: .7rem;
  font-weight: 700;
}

.tc-form-section-label--active {
  color: var(--admin-text, #1e293b);
}

.tc-form-divider {
  border: none;
  border-top: 1px solid var(--admin-border, #e2e8f0);
  margin: .75rem 0 1rem;
}

.tc-required {
  color: var(--tc-danger, #ef4444);
  margin-left: .15rem;
}

.tc-readonly-block {
  background: var(--admin-bg, #f8fafc);
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  margin-bottom: .85rem;
  padding: .85rem;
}

.tc-form-label-sm {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: .15rem;
  font-weight: 600;
}

.tc-form-value {
  font-size: var(--tc-text-base, .875rem);
  color: var(--admin-text, #1e293b);
}

.tc-modal-footer-end {
  justify-content: flex-end;
  gap: .5rem;
  display: flex;
}

.tc-modal-confirm-text {
  color: var(--admin-text, #1e293b);
  font-size: var(--tc-text-md, .9rem);
  margin: 0;
}

.tc-modal-confirm-hint {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
  margin: .75rem 0 0;
}

.admin-shell[data-theme="dark"] .admin-content .tc-readonly-block {
  border-color: var(--admin-border);
  background: #ffffff0a;
}

.admin-shell[data-theme="dark"] .admin-content .tc-ipv6-cidr {
  color: var(--admin-text);
}

.admin-shell[data-theme="dark"] .admin-content .tc-ipv6-delegacion {
  color: var(--admin-text-muted);
}

.tc-incidencia-detail-wrap {
  background: var(--admin-bg, #f8fafc);
  padding: 0 1rem 1rem;
}

.tc-incidencia-detail {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  background: var(--admin-card-bg, #fff);
  padding: 1rem;
}

.tc-incidencia-section {
  margin-bottom: .75rem;
}

.tc-incidencia-section-label {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  margin-bottom: .25rem;
  font-weight: 600;
  display: block;
}

.tc-incidencia-error-tipo {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--tc-danger, #ef4444);
  margin: 0;
  font-weight: 600;
}

.tc-incidencia-pre {
  background: var(--tc-danger-bg, #fee2e2);
  border-radius: var(--tc-radius-sm);
  color: var(--tc-danger-text, #991b1b);
  white-space: pre-wrap;
  word-break: break-word;
  border: 1px solid var(--tc-danger-bg, #fee2e2);
  max-height: 200px;
  margin: 0;
  padding: .5rem .75rem;
  font-size: .78rem;
  overflow: auto;
}

.tc-incidencia-kv {
  font-size: var(--tc-text-sm, .8125rem);
  grid-template-columns: auto 1fr;
  gap: .25rem .75rem;
  display: grid;
}

.tc-incidencia-kv-key {
  color: var(--admin-text-muted, #64748b);
  font-weight: 600;
}

.tc-incidencia-kv-val {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.tc-incidencia-resolucion {
  font-size: var(--tc-text-sm, .8125rem);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  gap: 1rem;
  margin-top: .5rem;
  padding-top: .75rem;
  display: flex;
}

.tc-incidencia-resolucion-item {
  flex-direction: column;
  gap: .125rem;
  display: flex;
}

.tc-incidencia-resolucion-item--flex {
  flex: 1;
}

.tc-incidencia-resolucion-label {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-incidencia-resolucion-valor {
  margin: 0;
  font-weight: 600;
}

.tc-incidencia-resolucion-texto {
  margin: 0;
}

.admin-shell[data-theme="dark"] .admin-content .tc-incidencia-detail-wrap {
  background: #ffffff05;
}

.admin-shell[data-theme="dark"] .admin-content .tc-incidencia-detail {
  background: var(--admin-card-bg);
  border-color: var(--admin-border);
}

.admin-shell[data-theme="dark"] .admin-content .tc-incidencia-pre {
  color: #fca5a5;
  background: #ef44441f;
  border-color: #ef444440;
}

.tc-modo-grid {
  gap: 12px;
  margin-bottom: 24px;
}

.tc-modo-card {
  border-radius: var(--tc-radius-lg);
  cursor: pointer;
  text-align: left;
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  flex-direction: column;
  gap: 4px;
  width: 100%;
  padding: 16px 20px;
  transition: border-color .15s, background .15s;
  display: flex;
}

.tc-modo-card:hover {
  border-color: var(--admin-primary, #2563eb);
  background: var(--tc-info-bg, #dbeafe);
}

.tc-modo-card--active {
  border: 2px solid var(--admin-primary, #2563eb);
  background: var(--tc-info-bg, #dbeafe);
}

.tc-modo-card--disabled {
  cursor: not-allowed;
  opacity: .55;
}

.tc-modo-card--disabled:hover {
  border-color: var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
}

.tc-modo-card-label {
  font-weight: 700;
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  align-items: center;
  gap: 6px;
  display: flex;
}

.tc-modo-card--active .tc-modo-card-label {
  color: var(--admin-primary, #2563eb);
}

.tc-modo-card-desc {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.tc-servicio-info {
  background: var(--admin-bg, #f8fafc);
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  font-size: var(--tc-text-sm);
  flex-direction: column;
  gap: 10px;
  padding: 12px 16px;
  display: flex;
}

.tc-servicio-info-row {
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  display: flex;
}

.tc-servicio-info-item {
  align-items: center;
  gap: 6px;
  display: flex;
}

.tc-servicio-info-label {
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-servicio-info-value {
  color: var(--admin-text-muted, #64748b);
}

.tc-servicio-info-precio {
  color: var(--admin-primary, #2563eb);
  font-weight: 700;
}

.tc-form-grid-2col {
  gap: 16px;
}

.tc-form-stack {
  flex-direction: column;
  gap: 20px;
  display: flex;
}

.tc-form-textarea {
  resize: vertical;
}

.tc-form-textarea--mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: var(--tc-text-sm);
}

.tc-button-row {
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-ml-2 {
  margin-left: var(--tc-space-2);
}

.tc-preview-frame-wrap {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
  overflow: hidden;
}

.tc-preview-frame {
  background: #fff;
  border: none;
  width: 100%;
  min-height: 600px;
}

.tc-history-row {
  padding: var(--tc-space-3) 0;
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.tc-history-row:last-child {
  border-bottom: none;
}

.tc-history-row-version {
  font-weight: 600;
  font-size: var(--tc-text-md);
}

.tc-block-editor-item {
  padding: var(--tc-space-3);
  background: var(--admin-bg, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  margin-bottom: var(--tc-space-2);
}

.tc-block-editor-toolbar {
  align-items: center;
  gap: var(--tc-space-2);
  margin-bottom: var(--tc-space-2);
  display: flex;
}

.tc-divider {
  border: none;
  border-top: 1px solid var(--tc-border, var(--admin-border, #e2e8f0));
  margin: 0;
}

.tc-row-between {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2);
  display: flex;
}

.tc-row-between--wrap {
  flex-wrap: wrap;
}

@media (max-width: 640px) {
  .tc-row-between--wrap {
    align-items: flex-start;
  }
}

.tc-truncate {
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

.tc-list {
  flex-direction: column;
  display: flex;
}

.tc-list-row {
  align-items: center;
  gap: var(--tc-space-2);
  padding: 6px 0;
  display: flex;
}

.tc-list-row + .tc-list-row {
  border-top: 1px solid var(--tc-border, var(--admin-border, #e2e8f0));
}

.tc-list-row--col {
  align-items: stretch;
  gap: var(--tc-space-2);
  flex-direction: column;
}

.tc-periodo-section {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  overflow: visible;
}

.tc-periodo-toggle {
  background: var(--admin-bg, #f8fafc);
  cursor: pointer;
  border-radius: var(--tc-radius);
  width: 100%;
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  text-align: left;
  border: none;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  display: flex;
}

.tc-periodo-toggle:hover {
  background: var(--admin-border, #e2e8f0);
}

.tc-periodo-toggle-label {
  align-items: center;
  gap: 8px;
  font-weight: 500;
  display: flex;
}

.tc-periodo-preview {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  font-style: italic;
}

.tc-periodo-body {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  padding: 16px;
}

.tc-link {
  color: var(--admin-primary, #2563eb);
  font-weight: 600;
  text-decoration: none;
}

.tc-link:hover {
  text-decoration: underline;
}

.tc-toggle-row {
  background: var(--admin-bg, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  cursor: pointer;
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  transition: background .15s, border-color .15s;
  display: flex;
}

.tc-toggle-row:hover {
  background: var(--admin-border, #e2e8f0);
}

.tc-toggle-row--active {
  background: var(--tc-info-bg, #dbeafe);
  border-color: var(--admin-primary, #2563eb);
}

.tc-toggle-row-label {
  flex: 1;
  align-items: center;
  gap: 6px;
  font-weight: 500;
  display: flex;
}

.tc-toggle-row-hint {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
}

.tc-toggle-row-body {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 0 0 var(--tc-radius) var(--tc-radius);
  background: var(--admin-card-bg, #fff);
  border-top: none;
  padding: 16px;
}

.tc-toggle-row--disabled {
  opacity: .5;
  cursor: not-allowed;
  pointer-events: none;
}

.tc-toggle-row-disabled-hint {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  font-style: italic;
}

.tc-multimes-preview {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  margin-top: 16px;
  overflow: hidden;
}

.tc-multimes-preview-header {
  background: var(--admin-bg, #f8fafc);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted, #64748b);
  justify-content: space-between;
  padding: 10px 14px;
  font-weight: 600;
  display: flex;
}

.tc-multimes-preview-row {
  font-size: var(--tc-text-sm);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  display: flex;
}

.tc-multimes-preview-row:last-child {
  border-bottom: none;
}

.tc-multimes-preview-num {
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-xs);
  min-width: 20px;
}

.tc-multimes-preview-fecha {
  color: var(--admin-text, #1e293b);
  flex: 1;
  padding: 0 10px;
}

.tc-multimes-preview-monto {
  color: var(--admin-primary, #2563eb);
  font-weight: 600;
}

.tc-multimes-preview-total {
  background: var(--admin-bg, #f8fafc);
  border-top: 2px solid var(--admin-border, #e2e8f0);
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  font-weight: 700;
  display: flex;
}

.tc-multimes-preview-total-monto {
  color: var(--admin-primary, #2563eb);
}

.tc-prorrateo-preview {
  background: var(--tc-info-bg, #dbeafe);
  border: 1px solid var(--admin-primary, #2563eb);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-sm);
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  padding: 12px 16px;
  display: flex;
}

.tc-prorrateo-preview-monto {
  font-size: var(--tc-text-lg);
  color: var(--admin-primary, #2563eb);
  font-weight: 700;
}

.tc-prorrateo-preview-detalle {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
}

.tc-lineas-editor {
  flex-direction: column;
  gap: 16px;
  display: flex;
}

.tc-linea-item {
  background: var(--admin-bg, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  flex-direction: column;
  gap: 14px;
  padding: 16px;
  display: flex;
}

.tc-linea-item-header {
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.tc-linea-item-num {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted, #64748b);
  font-weight: 600;
}

.tc-linea-item-subtotal {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  align-self: flex-end;
}

.tc-linea-item-subtotal strong {
  color: var(--admin-text, #1e293b);
  margin-left: 6px;
}

.tc-lineas-footer {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  display: flex;
}

.tc-lineas-total {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.tc-lineas-total strong {
  font-size: var(--tc-text-lg);
  color: var(--admin-primary, #2563eb);
  margin-left: 8px;
}

.tc-listado-card {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
}

.tc-kpi-card {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  padding: 14px 16px;
  display: flex;
  overflow: hidden;
}

.tc-kpi-card-label {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--admin-text-muted, #64748b);
  font-weight: 600;
}

.tc-kpi-card-value {
  overflow-wrap: anywhere;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.1;
}

.tc-kpi-card-sub {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #94a3b8);
  margin-top: 2px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.tc-estado-tabs {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 10px;
  flex-wrap: wrap;
  gap: 0;
  width: fit-content;
  margin-bottom: 1rem;
  display: flex;
  overflow: hidden;
}

.tc-estado-tab {
  cursor: pointer;
  font-size: var(--tc-text-sm);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text-muted, #64748b);
  border: none;
  border-right: 1px solid var(--admin-border, #e2e8f0);
  white-space: nowrap;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  font-weight: 600;
  transition: background .15s, color .15s;
  display: inline-flex;
}

.tc-estado-tab:last-child {
  border-right: none;
}

.tc-estado-tab--active {
  background: var(--admin-primary, #2563eb);
  color: #fff;
}

.tc-estado-tab-badge {
  background: var(--admin-bg, #f1f5f9);
  color: var(--admin-text-muted, #94a3b8);
  border-radius: 10px;
  padding: 1px 6px;
  font-size: .6875rem;
  font-weight: 700;
}

.tc-estado-tab--active .tc-estado-tab-badge {
  color: #fff;
  background: #fff3;
}

.tc-listado-toolbar {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  display: flex;
}

.tc-search-wrap {
  flex: 200px;
  max-width: 340px;
  display: flex;
  position: relative;
}

.tc-search-icon {
  color: var(--admin-text-muted, #64748b);
  pointer-events: none;
  align-items: center;
  display: inline-flex;
  position: absolute;
  top: 50%;
  left: 9px;
  transform: translateY(-50%);
}

.tc-search-input {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  width: 100%;
  color: var(--admin-text, #1e293b);
  box-sizing: border-box;
  border-radius: 8px;
  outline: none;
  margin-top: 0;
  padding: 7px 10px 7px 30px;
  font-size: .84rem;
}

.tc-search-input:focus {
  border-color: var(--admin-primary, #2563eb);
  box-shadow: var(--tc-focus-ring);
}

.tc-search-input::placeholder {
  color: var(--admin-text-muted, #94a3b8);
}

.tc-btn-secund {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text, #1e293b);
  cursor: pointer;
  white-space: nowrap;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  gap: 5px;
  padding: 7px 12px;
  font-size: .84rem;
  font-weight: 500;
  transition: background .15s;
  display: inline-flex;
  position: relative;
}

.tc-listado-toolbar .tc-btn-secund {
  min-height: 36px;
}

.tc-btn-secund:hover {
  background: var(--admin-bg, #f8fafc);
}

.tc-btn-secund:disabled {
  opacity: .5;
  cursor: not-allowed;
}

.tc-filtro-dot {
  background: var(--admin-primary, #2563eb);
  border-radius: 50%;
  width: 6px;
  height: 6px;
  position: absolute;
  top: 4px;
  right: 4px;
}

.tc-filtros-panel {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-bg, #f8fafc);
  gap: 10px;
  padding: 14px 16px;
}

.tc-filtro-label {
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted, #64748b);
  margin-bottom: 4px;
  font-size: .72rem;
  font-weight: 600;
  display: block;
}

.tc-filtro-dir-btn {
  justify-content: center;
  width: 100%;
}

.tc-filtro-toggles {
  flex-direction: column;
  justify-content: flex-end;
  gap: 6px;
  display: flex;
}

.tc-listado-footer {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  display: flex;
}

.tc-listado-footer-info {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.tc-listado-footer-nav {
  align-items: center;
  gap: 6px;
  display: flex;
}

.tc-pagination-btn {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text, #1e293b);
  font-size: var(--tc-text-sm);
  cursor: pointer;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  padding: 4px 9px;
  transition: background .15s;
  display: inline-flex;
}

.tc-pagination-btn:disabled {
  opacity: .4;
  cursor: default;
}

.tc-pagination-btn:not(:disabled):hover {
  background: var(--admin-bg, #f8fafc);
}

.tc-pagination-page {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  white-space: nowrap;
  padding: 4px 10px;
}

.tc-listado-input {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  width: 100%;
  color: var(--admin-text, #1e293b);
  box-sizing: border-box;
  border-radius: 8px;
  outline: none;
  padding: 7px 10px;
  font-size: .84rem;
}

.tc-listado-input:focus {
  border-color: var(--admin-primary, #2563eb);
  box-shadow: var(--tc-focus-ring);
}

.tc-table-row--alt {
  background: var(--tc-fila-zebra);
}

.tc-autocomplete-dropdown {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  z-index: 10;
  max-height: 180px;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  overflow-y: auto;
  box-shadow: 0 4px 12px #0000001a;
}

.tc-autocomplete-item {
  cursor: pointer;
  font-size: var(--tc-text-sm);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  padding: 8px 12px;
  transition: background .12s;
}

.tc-autocomplete-item:last-child {
  border-bottom: none;
}

.tc-autocomplete-item:hover {
  background: var(--admin-table-hover, #f1f5f9);
}

.admin-shell[data-theme="dark"] .admin-content .tc-listado-card, .admin-shell[data-theme="dark"] .admin-content .tc-kpi-card {
  background: var(--admin-card-bg);
  border-color: var(--admin-border);
}

.admin-shell[data-theme="dark"] .admin-content .tc-estado-tab {
  background: var(--admin-card-bg);
  color: var(--admin-text-muted);
  border-right-color: var(--admin-border);
}

.admin-shell[data-theme="dark"] .admin-content .tc-estado-tab--active {
  background: var(--admin-primary, #2563eb);
  color: #fff;
}

.admin-shell[data-theme="dark"] .admin-content .tc-estado-tabs {
  border-color: var(--admin-border);
}

.admin-shell[data-theme="dark"] .admin-content .tc-btn-secund {
  background: var(--admin-card-bg);
  border-color: var(--admin-border);
  color: var(--admin-text);
}

.admin-shell[data-theme="dark"] .admin-content .tc-btn-secund:hover {
  background: var(--admin-table-hover);
}

.admin-shell[data-theme="dark"] .admin-content .tc-search-input {
  background: var(--admin-card-bg);
  border-color: var(--admin-border);
  color: var(--admin-text);
}

.admin-shell[data-theme="dark"] .admin-content .tc-filtros-panel {
  background: var(--admin-bg);
}

.admin-shell[data-theme="dark"] .admin-content .tc-listado-input, .admin-shell[data-theme="dark"] .admin-content .tc-pagination-btn {
  background: var(--admin-card-bg);
  border-color: var(--admin-border);
  color: var(--admin-text);
}

.tc-comprobante-media-frame {
  background: var(--admin-bg, #f8fafc);
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  justify-content: center;
  align-items: center;
  min-height: 200px;
  padding: 12px;
  display: flex;
}

.tc-comprobante-media-error {
  color: var(--tc-danger, #ef4444);
  font-size: .85rem;
}

.tc-comprobante-detalle-col {
  flex-direction: column;
  gap: 16px;
  font-size: .84rem;
  display: flex;
}

.tc-comprobante-dl {
  gap: 4px 12px;
  margin: 0;
}

.tc-comprobante-dl dt {
  color: var(--admin-text-muted, #64748b);
}

.tc-comprobante-dl dd {
  margin: 0;
}

.tc-acuerdo-progress {
  gap: 6px;
  margin-bottom: 20px;
  display: flex;
}

.tc-acuerdo-progress-bar {
  background: var(--admin-border, #e2e8f0);
  border-radius: 2px;
  flex: 1;
  height: 4px;
  transition: background .2s;
}

.tc-acuerdo-progress-bar--active {
  background: var(--admin-primary, #2563eb);
}

.tc-acuerdo-info-box {
  background: var(--admin-bg, #f8fafc);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-sm);
  border: 1px solid var(--admin-border, #e2e8f0);
  margin-top: 4px;
  padding: 12px;
}

.tc-acuerdo-info-row {
  justify-content: space-between;
  margin-bottom: 4px;
  display: flex;
}

.tc-acuerdo-info-row:last-child {
  margin-bottom: 0;
}

.tc-acuerdo-step-actions {
  justify-content: flex-end;
  margin-top: 16px;
  display: flex;
}

.tc-acuerdo-step-nav {
  justify-content: space-between;
  margin-top: 16px;
  display: flex;
}

.tc-acuerdo-factura-list {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  max-height: 250px;
  overflow-y: auto;
}

.tc-acuerdo-factura-item {
  cursor: pointer;
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  background: none;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  transition: background .1s;
  display: flex;
}

.tc-acuerdo-factura-item:last-child {
  border-bottom: none;
}

.tc-acuerdo-factura-item:hover {
  background: var(--admin-table-hover, #f1f5f9);
}

.tc-acuerdo-factura-item--selected {
  background: var(--tc-info-bg, #eff6ff);
}

.tc-acuerdo-checkbox {
  border: 2px solid var(--admin-border, #e2e8f0);
  background: none;
  border-radius: 4px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 18px;
  height: 18px;
  transition: all .15s;
  display: flex;
}

.tc-acuerdo-checkbox--checked {
  border-color: var(--admin-primary, #2563eb);
  background: var(--admin-primary, #2563eb);
}

.tc-acuerdo-seleccion-resumen {
  background: var(--tc-success-bg, #f0fdf4);
  border: 1px solid var(--tc-success, #16a34a);
  border-radius: var(--tc-radius);
  justify-content: space-between;
  margin-top: 10px;
  padding: 10px;
  font-size: .85rem;
  display: flex;
}

.tc-acuerdo-cuotas-preview {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  overflow: hidden;
}

.tc-acuerdo-cuota-row {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  font-size: var(--tc-text-sm);
  justify-content: space-between;
  padding: 8px 14px;
  display: flex;
}

.tc-acuerdo-cuota-row:last-child {
  border-bottom: none;
}

.tc-acuerdo-empty-danger {
  color: var(--tc-danger, #ef4444);
  margin: 0;
  font-size: .85rem;
}

.tc-acuerdo-disclaimer {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 8px;
}

.tc-modal-list {
  margin: 0;
  padding-left: 1.5rem;
}

.tc-modal-list li {
  margin-bottom: 2px;
  font-size: .85rem;
}

.admin-shell[data-theme="dark"] .admin-content .tc-comprobante-media-frame, .admin-shell[data-theme="dark"] .admin-content .tc-acuerdo-info-box {
  background: var(--admin-bg);
  border-color: var(--admin-border);
}

.admin-shell[data-theme="dark"] .admin-content .tc-acuerdo-factura-list {
  border-color: var(--admin-border);
}

.admin-shell[data-theme="dark"] .admin-content .tc-acuerdo-factura-item {
  border-bottom-color: var(--admin-border);
}

.admin-shell[data-theme="dark"] .admin-content .tc-acuerdo-factura-item:hover {
  background: var(--admin-table-hover);
}

.admin-shell[data-theme="dark"] .admin-content .tc-acuerdo-factura-item--selected {
  background: #3b82f61a;
}

.admin-shell[data-theme="dark"] .admin-content .tc-acuerdo-cuotas-preview {
  border-color: var(--admin-border);
}

.admin-shell[data-theme="dark"] .admin-content .tc-acuerdo-cuota-row {
  border-bottom-color: var(--admin-border);
}

.tc-caja-selector {
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px;
  display: flex;
}

.tc-caja-tab {
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text, #1e293b);
  border: 1px solid var(--admin-border, #e2e8f0);
  cursor: pointer;
  border-radius: 8px;
  align-items: center;
  gap: 8px;
  padding: .5rem .9rem;
  font-size: .85rem;
  font-weight: 600;
  transition: all .15s;
  display: inline-flex;
}

.tc-caja-tab--active {
  background: var(--admin-primary, #2563eb);
  color: #fff;
  border-color: var(--admin-primary, #2563eb);
}

.tc-caja-hero {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 20px;
  padding: 20px 24px;
  display: flex;
}

.tc-caja-hero-left {
  flex-direction: column;
  gap: 8px;
  display: flex;
}

.tc-caja-hero-title {
  align-items: center;
  gap: 12px;
  display: flex;
}

.tc-caja-hero-name {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-size: 1.2rem;
  font-weight: 700;
}

.tc-caja-hero-meta {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
  display: flex;
}

.tc-caja-hero-meta-item {
  align-items: center;
  gap: 5px;
  display: inline-flex;
}

.tc-caja-hero-strong {
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-caja-hero-closed-msg {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-caja-hero-actions {
  align-items: center;
  gap: 8px;
  display: flex;
}

.tc-caja-table-header {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  display: flex;
}

.tc-caja-table-title {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-size: .95rem;
  font-weight: 700;
}

.tc-caja-loading {
  color: var(--admin-text-muted, #64748b);
}

.tc-caja-empty {
  text-align: center;
  padding: 2rem;
}

.tc-caja-empty-msg {
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-caja-field-label {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin-bottom: 4px;
}

.tc-caja-field-value {
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-caja-field-value-lg {
  font-size: 1.1rem;
  font-weight: 700;
}

.tc-table-cell--success {
  color: var(--tc-success, #16a34a);
}

.tc-table-cell--danger {
  color: var(--tc-danger, #ef4444);
}

.tc-caja-planta-nombre-cell {
  align-items: center;
  gap: .4rem;
  display: flex;
}

.tc-caja-planta-ocupacion-cell {
  align-items: center;
  gap: .5rem;
  display: flex;
}

.tc-caja-planta-ocupacion-barra {
  flex: 1;
  min-width: 80px;
}

.tc-caja-planta-ocupacion-pct {
  font-size: var(--tc-text-xs);
  text-align: right;
  min-width: 2.5rem;
  font-weight: 600;
}

.tc-caja-planta-ocupacion-pct--success {
  color: var(--tc-success);
}

.tc-caja-planta-ocupacion-pct--warning {
  color: var(--tc-warning);
}

.tc-caja-planta-ocupacion-pct--danger {
  color: var(--tc-danger);
}

.tc-caja-planta-confirmar-lote {
  font-size: var(--tc-text-sm);
  color: var(--tc-danger);
  font-weight: 600;
}

.tc-caja-planta-notas-text {
  font-size: var(--tc-text-sm);
  white-space: pre-wrap;
  margin: 0;
}

.tc-caja-planta-leyenda {
  gap: .75rem;
  font-size: .7rem;
  display: flex;
}

.tc-caja-planta-leyenda-item {
  align-items: center;
  gap: .25rem;
  display: flex;
}

.tc-caja-planta-leyenda-dot {
  border: 1px solid #0000;
  border-radius: 2px;
  width: 8px;
  height: 8px;
  display: inline-block;
}

.tc-caja-planta-leyenda-dot--libre {
  background: var(--tc-success-bg);
  border-color: var(--tc-success);
}

.tc-caja-planta-leyenda-dot--ocupado {
  background: var(--tc-info-bg);
  border-color: var(--admin-primary);
}

.tc-caja-planta-leyenda-dot--danado {
  background: var(--tc-danger-bg);
  border-color: var(--tc-danger);
}

.tc-caja-planta-puertos-help {
  color: var(--admin-text-muted, #64748b);
  margin-top: .75rem;
  font-size: .7rem;
}

.admin-shell[data-theme="dark"] .admin-content .tc-caja-hero, .admin-shell[data-theme="dark"] .admin-content .tc-caja-tab {
  background: var(--admin-card-bg);
  border-color: var(--admin-border);
  color: var(--admin-text);
}

.admin-shell[data-theme="dark"] .admin-content .tc-caja-tab--active {
  background: var(--admin-primary, #2563eb);
  color: #fff;
  border-color: var(--admin-primary, #2563eb);
}

.admin-shell[data-theme="dark"] .admin-content .tc-caja-hero-name, .admin-shell[data-theme="dark"] .admin-content .tc-caja-hero-strong, .admin-shell[data-theme="dark"] .admin-content .tc-caja-field-value, .admin-shell[data-theme="dark"] .admin-content .tc-caja-table-title {
  color: var(--admin-text);
}

.admin-shell[data-theme="dark"] .admin-content .tc-modo-card {
  background: var(--admin-card-bg);
  border-color: var(--admin-border);
}

.admin-shell[data-theme="dark"] .admin-content .tc-modo-card--active, .admin-shell[data-theme="dark"] .admin-content .tc-modo-card:hover {
  border-color: var(--admin-primary);
  background: #3b82f61a;
}

.admin-shell[data-theme="dark"] .admin-content .tc-servicio-info {
  border-color: var(--admin-border);
  background: #ffffff0a;
}

.admin-shell[data-theme="dark"] .admin-content .tc-periodo-toggle {
  background: #ffffff0a;
}

.admin-shell[data-theme="dark"] .admin-content .tc-periodo-toggle:hover {
  background: #ffffff14;
}

.admin-shell[data-theme="dark"] .admin-content .tc-toggle-row {
  border-color: var(--admin-border);
  background: #ffffff0a;
}

.admin-shell[data-theme="dark"] .admin-content .tc-toggle-row:hover {
  background: #ffffff14;
}

.admin-shell[data-theme="dark"] .admin-content .tc-toggle-row--active {
  border-color: var(--admin-primary);
  background: #3b82f61a;
}

.admin-shell[data-theme="dark"] .admin-content .tc-toggle-row-body {
  background: #ffffff05;
}

.admin-shell[data-theme="dark"] .admin-content .tc-toggle-row--disabled {
  opacity: .4;
}

.admin-shell[data-theme="dark"] .admin-content .tc-multimes-preview {
  border-color: var(--admin-border);
}

.admin-shell[data-theme="dark"] .admin-content .tc-multimes-preview-header, .admin-shell[data-theme="dark"] .admin-content .tc-multimes-preview-total {
  background: #ffffff0a;
}

.admin-shell[data-theme="dark"] .admin-content .tc-prorrateo-preview {
  border-color: var(--admin-primary);
  background: #3b82f61a;
}

.admin-shell[data-theme="dark"] .admin-content .tc-linea-item {
  border-color: var(--admin-border);
  background: #ffffff0a;
}

.tc-sel-label {
  cursor: pointer;
  justify-content: center;
  align-items: center;
  padding: 2px;
  display: inline-flex;
}

.tc-sel-checkbox {
  cursor: pointer;
  width: 15px;
  height: 15px;
  accent-color: var(--admin-primary, #2563eb);
  flex-shrink: 0;
}

.tc-lote-barra {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  background: var(--tc-info-bg, #dbeafe);
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  display: flex;
}

.tc-lote-contador {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--tc-info-text, #1e40af);
  white-space: nowrap;
  font-weight: 600;
}

.tc-lote-acciones {
  flex-wrap: wrap;
  flex: 1;
  align-items: center;
  gap: 6px;
  display: flex;
}

.tc-lote-limpiar {
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-sm, .8125rem);
  cursor: pointer;
  white-space: nowrap;
  align-items: center;
  gap: 4px;
  margin-left: auto;
  padding: 4px 10px;
  font-weight: 500;
  transition: background .15s, color .15s;
  display: inline-flex;
}

.tc-lote-limpiar:hover {
  background: var(--admin-bg, #f1f5f9);
  color: var(--admin-text, #1e293b);
}

.admin-shell[data-theme="dark"] .admin-content .tc-lote-barra {
  border-color: var(--admin-border);
  background: #3b82f61f;
}

.admin-shell[data-theme="dark"] .admin-content .tc-lote-limpiar {
  background: var(--admin-card-bg);
  border-color: var(--admin-border);
  color: var(--admin-text-muted);
}

.admin-shell[data-theme="dark"] .admin-content .tc-lote-limpiar:hover {
  background: var(--admin-bg);
  color: var(--admin-text);
}

.tc-table-cell--checkbox, .tc-table .tc-table-cell--checkbox {
  text-align: center;
  vertical-align: middle;
  width: 36px;
  min-width: 36px;
  max-width: 44px;
  padding: 0 6px;
}

.tc-lote-omitidos {
  margin-top: var(--tc-space-3, .75rem);
  padding: var(--tc-space-3, .75rem);
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-bg, #f8fafc);
}

.tc-lote-omitidos-lista {
  margin: var(--tc-space-2, .5rem) 0 0;
  gap: var(--tc-space-1, .25rem);
  flex-direction: column;
  padding: 0;
  list-style: none;
  display: flex;
}

.tc-lote-omitidos-item {
  align-items: baseline;
  gap: var(--tc-space-2, .5rem);
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
  line-height: 1.4;
  display: flex;
}

.tc-lote-omitidos-item .tc-text-mono {
  color: var(--admin-text, #1e293b);
  flex-shrink: 0;
  font-weight: 600;
}

.admin-shell[data-theme="dark"] .admin-content .tc-lote-omitidos {
  background: var(--admin-bg);
  border-color: var(--admin-border);
}

.admin-shell[data-theme="dark"] .admin-content .tc-lote-omitidos-item {
  color: var(--admin-text-muted);
}

.admin-shell[data-theme="dark"] .admin-content .tc-lote-omitidos-item .tc-text-mono {
  color: var(--admin-text);
}

.tc-router-test-estado-global {
  background: var(--admin-bg, #f8fafc);
  border-radius: var(--tc-radius);
  border: 1px solid var(--admin-border, #e2e8f0);
  flex-wrap: wrap;
  align-items: center;
  gap: .625rem;
  margin-bottom: .875rem;
  padding: .625rem .75rem;
  display: flex;
}

.tc-router-test-row--pending {
  background: var(--tc-neutral-bg, #f1f5f9);
  border: 1px solid var(--admin-border, #e2e8f0);
}

.tc-router-test-chip-ok {
  flex-shrink: 0;
}

.tc-router-test-detected {
  border-radius: var(--tc-radius);
  background: var(--tc-info-bg, #eff6ff);
  border: 1px solid var(--tc-info-border, #bfdbfe);
  margin-top: .75rem;
  padding: .625rem .75rem;
}

.tc-router-test-detected-title {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--tc-info-text, #1e40af);
  margin-bottom: .5rem;
  font-weight: 700;
}

.tc-router-test-detected-grid {
  flex-direction: column;
  gap: .35rem;
  display: flex;
}

.tc-router-test-detected-row {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  align-items: center;
  gap: .4rem;
  display: flex;
}

.tc-router-test-detected-icon {
  color: var(--tc-info-text, #1e40af);
  flex-shrink: 0;
  display: inline-flex;
}

.tc-router-test-detected-label {
  min-width: 5rem;
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: 600;
}

.tc-router-test-detected-value {
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-router-test-footer {
  justify-content: flex-end;
  align-items: center;
  gap: .5rem;
  width: 100%;
  display: flex;
}

.admin-shell[data-theme="dark"] .admin-content .tc-router-test-estado-global, .admin-shell[data-theme="dark"] .admin-content .tc-router-test-row--pending {
  background: var(--admin-bg);
  border-color: var(--admin-border);
}

.admin-shell[data-theme="dark"] .admin-content .tc-router-test-detected {
  background: color-mix(in srgb, var(--tc-info-bg) 15%, var(--admin-card-bg));
  border-color: var(--admin-border);
}

.admin-shell[data-theme="dark"] .admin-content .tc-router-test-detected-title, .admin-shell[data-theme="dark"] .admin-content .tc-router-test-detected-icon {
  color: var(--tc-info-text);
}

.tc-stack {
  flex-direction: column;
  gap: 1.25rem;
  display: flex;
}

.tc-mikrotik-status-bar {
  border-bottom: 1px solid var(--admin-border);
  align-items: center;
  gap: .75rem;
  margin-bottom: .25rem;
  padding-bottom: 1rem;
  display: flex;
}

.tc-progress-track {
  background: var(--admin-border);
  border-radius: 4px;
  height: 8px;
  overflow: hidden;
}

.tc-progress-bar {
  border-radius: 4px;
  height: 100%;
  transition: width .3s;
}

.tc-progress-bar--primary {
  background: var(--tc-primary, #4338ca);
}

.tc-progress-bar--warning {
  background: var(--tc-warning, #eab308);
}

.tc-progress-bar--danger {
  background: var(--tc-danger, #ef4444);
}

.tc-metric-value {
  color: var(--admin-text);
  margin: 0 0 .5rem;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.1;
}

.tc-metric-value--md {
  margin-bottom: .75rem;
  font-size: 1.5rem;
}

.tc-rol-card {
  border-radius: var(--tc-radius-lg, 12px);
  border: 2px solid var(--admin-border);
  background: var(--admin-card-bg);
  cursor: pointer;
  text-align: left;
  padding: .875rem;
  font-family: inherit;
  transition: border-color .15s, background .15s;
}

.tc-rol-card:hover:not(:disabled) {
  border-color: var(--tc-primary, #4338ca);
}

.tc-rol-card:disabled {
  opacity: .7;
  cursor: not-allowed;
}

.tc-rol-card--activo {
  border-color: var(--tc-primary, #4338ca);
  background: var(--tc-primary-bg, #eef2ff);
}

.tc-rol-card-label {
  color: var(--admin-text);
  margin-bottom: 4px;
  font-size: .9375rem;
  font-weight: 600;
}

.tc-rol-card-desc {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
}

.tc-log-filters {
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1rem;
  display: flex;
}

.tc-log-search {
  width: 100%;
  max-width: 18rem;
}

.tc-log-topic-select {
  min-width: 12rem;
}

.tc-log-count {
  margin-left: auto;
}

.tc-log-topic--error {
  color: var(--tc-danger-text);
  font-weight: 600;
}

.tc-log-topic--warning {
  color: var(--tc-warning-text);
  font-weight: 500;
}

.tc-log-topic--muted {
  color: var(--admin-text-muted);
}

.tc-backup-config-row {
  flex-wrap: wrap;
  align-items: center;
  gap: 1.25rem;
  display: flex;
}

.tc-backup-retension {
  align-items: center;
  gap: .5rem;
  display: flex;
}

.tc-backup-retension-input {
  text-align: center;
  width: 64px;
  margin-top: 0;
}

.tc-backup-config-action {
  margin-left: auto;
}

.tc-backup-error-detail {
  background: var(--tc-danger-bg);
  color: var(--tc-danger-text);
  padding: 0 .75rem .65rem;
}

@media (max-width: 640px) {
  .tc-backup-config-row {
    flex-direction: column;
    align-items: flex-start;
  }

  .tc-backup-config-action {
    margin-left: 0;
  }
}

.tc-row-actions-inline {
  flex-wrap: wrap;
  align-items: center;
  gap: .25rem;
  display: flex;
}

.tc-field-host-wrap {
  align-items: center;
  gap: .5rem;
  display: inline-flex;
}

.tc-word-break {
  word-break: break-word;
}

.admin-shell[data-theme="dark"] .tc-rol-card {
  background: var(--admin-card-bg);
  border-color: var(--admin-border);
}

.admin-shell[data-theme="dark"] .tc-rol-card--activo {
  border-color: var(--tc-primary, #6366f1);
  background: color-mix(in srgb, var(--tc-primary-bg) 20%, var(--admin-card-bg));
}

.admin-shell[data-theme="dark"] .tc-backup-error-detail {
  background: color-mix(in srgb, var(--tc-danger-bg) 20%, var(--admin-card-bg));
}

.tc-debug-console-toolbar {
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 1rem;
  margin-bottom: 1rem;
  display: flex;
}

.tc-debug-console-filtro {
  flex-direction: column;
  gap: .5rem;
  display: flex;
}

.tc-debug-console-valor {
  max-width: 18rem;
}

.tc-debug-console-actions {
  align-items: center;
  gap: .75rem;
  margin-left: auto;
  display: flex;
}

.tc-debug-console-autostop {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted);
  align-items: center;
  gap: .35rem;
  display: flex;
}

.tc-debug-console-body {
  border: 1px solid var(--admin-border, #1e293b);
  border-radius: var(--tc-radius-lg);
  background: #0b0d12;
  height: 22rem;
  position: relative;
  overflow-y: auto;
}

.tc-debug-console-pre {
  white-space: pre-wrap;
  word-break: break-all;
  color: #cbd5e1;
  margin: 0;
  padding: .875rem 1rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .78rem;
  line-height: 1.55;
}

.tc-debug-console-line--accept {
  color: #4ade80;
  font-weight: 600;
}

.tc-debug-console-line--reject {
  color: #f87171;
  font-weight: 600;
}

.tc-debug-console-line--tx {
  color: #93c5fd;
  font-weight: 700;
}

.tc-debug-console-empty {
  color: #64748b;
  font-style: italic;
}

.tc-debug-console-scroll-hint {
  font-size: var(--tc-text-xs);
  color: #e2e8f0;
  border-radius: var(--tc-radius-sm);
  background: #0f172ad9;
  border: 1px solid #1e293b;
  padding: .3rem .6rem;
  position: absolute;
  bottom: .75rem;
  right: .75rem;
}

@media (max-width: 640px) {
  .tc-debug-console-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .tc-debug-console-actions {
    margin-left: 0;
  }

  .tc-debug-console-valor {
    max-width: none;
  }
}

.tc-servidor-header, .tc-servidor-header__meta {
  align-items: center;
  gap: var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-servidor-header__imagen {
  background: var(--admin-bg);
  color: var(--admin-text-muted, #64748b);
  border-radius: var(--tc-radius-sm);
  line-height: 1;
  font-size: var(--tc-text-sm);
  align-items: center;
  padding: .25rem .5rem;
  display: inline-flex;
}

.tc-servidor-header__actions {
  align-items: center;
  gap: var(--tc-space-2);
  margin-left: auto;
  display: flex;
}

@media (max-width: 640px) {
  .tc-servidor-header__actions {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    margin-left: 0;
  }

  .tc-servidor-header__actions .tc-btn {
    justify-content: center;
    width: 100%;
  }
}

.tc-agenda-loading {
  color: var(--admin-text-muted);
  font-size: var(--tc-text-sm);
  padding: 2rem 0;
}

.tc-agenda-section {
  margin-bottom: 2rem;
}

.tc-agenda-section-head {
  align-items: center;
  gap: var(--tc-space-3);
  margin-bottom: var(--tc-space-4);
  padding-bottom: var(--tc-space-3);
  border-bottom: 2px solid var(--admin-border);
  display: flex;
}

.tc-agenda-section-title {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
}

.tc-agenda-section-count {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
  font-weight: 600;
}

.tc-agenda-group {
  border: 1px solid var(--admin-border);
  background: var(--admin-card-bg);
  border-radius: 8px;
  overflow: hidden;
}

.tc-agenda-group-head {
  background: var(--admin-surface);
  border-bottom: 1px solid var(--admin-border);
  align-items: center;
  gap: var(--tc-space-3);
  padding: .65rem 1rem;
  display: flex;
}

.tc-agenda-group-nombre {
  color: var(--admin-text, #1e293b);
  font-size: .95rem;
  font-weight: 700;
}

.tc-agenda-group-codigo {
  color: var(--admin-text-muted);
  margin-left: .4rem;
  font-weight: 500;
}

.tc-agenda-group-count {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
  background: var(--admin-card-bg);
  border: 1px solid var(--admin-border);
  border-radius: 999px;
  margin-left: auto;
  padding: .15rem .55rem;
  font-weight: 600;
}

.tc-agenda-row {
  border-bottom: 1px solid var(--admin-border);
  background: none;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem 1rem;
  padding: .65rem 1rem;
  display: flex;
}

.tc-agenda-row:last-child {
  border-bottom: none;
}

.tc-agenda-row--atrasada {
  background: var(--tc-danger-bg);
}

.tc-agenda-row-hora {
  min-width: 44px;
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}

.tc-agenda-row-numero {
  font-weight: 700;
  font-size: var(--tc-text-md);
  color: var(--admin-text, #1e293b);
}

.tc-agenda-row-cliente {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted);
}

.tc-agenda-row-atrasada-label {
  font-size: var(--tc-text-xs);
  color: var(--tc-danger);
  letter-spacing: .02em;
  font-weight: 700;
}

.tc-agenda-row-acciones {
  flex-wrap: wrap;
  gap: .35rem;
  margin-left: auto;
  display: flex;
}

.tc-agenda-modal-info {
  padding: var(--tc-space-3) 1rem;
  background: var(--admin-surface);
  border: 1px solid var(--admin-border);
  border-radius: 6px;
  margin-bottom: 1.25rem;
}

.tc-agenda-modal-info-orden {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  font-weight: 700;
}

.tc-agenda-modal-info-cliente {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted);
  margin-top: .2rem;
}

.tc-agenda-modal-info-tipo {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
  margin-top: .15rem;
}

.tc-agenda-modal-field {
  width: 100%;
  margin-bottom: 1rem;
}

.tc-agenda-modal-hint {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted);
  margin-top: 0;
  margin-bottom: 1rem;
  line-height: 1.5;
}

.tc-agenda-modal-subtitle {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted);
  margin-top: 0;
  margin-bottom: 1.25rem;
}

.tc-agenda-cal-dia {
  border: 1px solid var(--admin-border);
  background: var(--admin-card-bg);
  border-radius: 8px;
  overflow-x: auto;
}

.tc-agenda-cal-dia-head, .tc-agenda-cal-dia-row {
  grid-template-columns: 64px repeat(auto-fit, minmax(160px, 1fr));
  min-width: 100%;
  display: grid;
}

.tc-agenda-cal-dia-head {
  z-index: 1;
  background: var(--admin-surface);
  border-bottom: 2px solid var(--admin-border);
  position: sticky;
  top: 0;
}

.tc-agenda-cal-dia-row {
  border-bottom: 1px solid var(--admin-border);
}

.tc-agenda-cal-dia-row:last-child {
  border-bottom: none;
}

.tc-agenda-cal-dia-hcol {
  border-right: 1px solid var(--admin-border);
}

.tc-agenda-cal-hcol {
  padding: var(--tc-space-2) var(--tc-space-2);
  border-right: 1px solid var(--admin-border);
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
  font-variant-numeric: tabular-nums;
  text-align: right;
  font-weight: 600;
}

.tc-agenda-cal-col-head {
  align-items: center;
  gap: var(--tc-space-2);
  padding: var(--tc-space-2) var(--tc-space-3);
  border-right: 1px solid var(--admin-border);
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  font-weight: 700;
  display: flex;
}

.tc-agenda-cal-col-head:last-child {
  border-right: none;
}

.tc-agenda-cal-cell {
  gap: var(--tc-space-2);
  padding: var(--tc-space-2);
  border-right: 1px solid var(--admin-border);
  flex-direction: column;
  min-height: 3.5rem;
  display: flex;
}

.tc-agenda-cal-cell:last-child {
  border-right: none;
}

.tc-agenda-cal-card {
  padding: var(--tc-space-2);
  border: 1px solid var(--admin-border);
  background: var(--admin-surface);
  border-radius: 6px;
  flex-direction: column;
  gap: .3rem;
  display: flex;
}

.tc-agenda-cal-card-head {
  align-items: center;
  gap: var(--tc-space-2);
  display: flex;
}

.tc-agenda-cal-card-hora {
  font-size: var(--tc-text-xs);
  color: var(--admin-text, #1e293b);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}

.tc-agenda-cal-card-chips {
  flex-wrap: wrap;
  gap: .25rem;
  display: flex;
}

.tc-agenda-cal-card-cliente {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
}

.tc-agenda-cal-card-acc {
  flex-wrap: wrap;
  gap: .25rem;
  margin-top: .15rem;
  display: flex;
}

.tc-agenda-cal-avatar {
  background: var(--tc-primary-bg);
  width: 22px;
  height: 22px;
  color: var(--tc-primary-text);
  font-size: var(--tc-text-xs);
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  font-weight: 700;
  display: inline-flex;
}

.tc-agenda-cal-empty {
  padding: var(--tc-space-4);
  text-align: center;
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted);
  border: 1px dashed var(--admin-border);
  border-radius: 8px;
}

.tc-agenda-cal-sem {
  border: 1px solid var(--admin-border);
  background: var(--admin-card-bg);
  border-radius: 8px;
  overflow-x: auto;
}

.tc-agenda-cal-sem-head, .tc-agenda-cal-sem-row {
  grid-template-columns: 140px repeat(7, minmax(0, 1fr));
  min-width: 100%;
  display: grid;
}

.tc-agenda-cal-sem-head {
  z-index: 1;
  background: var(--admin-surface);
  border-bottom: 2px solid var(--admin-border);
  position: sticky;
  top: 0;
}

.tc-agenda-cal-sem-row {
  border-bottom: 1px solid var(--admin-border);
}

.tc-agenda-cal-sem-row:last-child {
  border-bottom: none;
}

.tc-agenda-cal-sem-tcol {
  align-items: center;
  gap: var(--tc-space-2);
  padding: var(--tc-space-2) var(--tc-space-3);
  border-right: 1px solid var(--admin-border);
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  font-weight: 700;
  display: flex;
}

.tc-agenda-cal-sem-dcol {
  padding: var(--tc-space-2);
  border-right: 1px solid var(--admin-border);
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: .1rem;
  display: flex;
}

.tc-agenda-cal-sem-dcol:last-child {
  border-right: none;
}

.tc-agenda-cal-sem-dow {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
  text-transform: capitalize;
  font-weight: 700;
}

.tc-agenda-cal-sem-dnum {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}

.tc-agenda-cal-sem-cell {
  padding: var(--tc-space-2);
  border-right: 1px solid var(--admin-border);
  flex-direction: column;
  gap: .25rem;
  min-height: 2.75rem;
  display: flex;
}

.tc-agenda-cal-sem-cell:last-child {
  border-right: none;
}

.tc-agenda-cal-chip {
  width: 100%;
  font-size: var(--tc-text-xs);
  font-variant-numeric: tabular-nums;
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
  text-overflow: ellipsis;
  border: 1px solid #0000;
  border-radius: 6px;
  align-items: center;
  gap: .25rem;
  padding: .15rem .4rem;
  font-weight: 600;
  display: inline-flex;
  overflow: hidden;
}

.tc-agenda-cal-chip--verde {
  background: var(--tc-success-bg);
  color: var(--tc-success-text);
}

.tc-agenda-cal-chip--amarilla {
  background: var(--tc-warning-bg);
  color: var(--tc-warning-text);
}

.tc-agenda-cal-chip--roja {
  background: var(--tc-danger-bg);
  color: var(--tc-danger-text);
}

.tc-agenda-cal-chip--n {
  background: var(--admin-surface-hover, var(--admin-surface));
  color: var(--admin-text-muted);
}

.tc-agenda-section-head--colapsada {
  padding: var(--tc-space-2) 0;
  opacity: .75;
}

.tc-agenda-cal-chip {
  white-space: normal;
  flex-direction: column;
  align-items: flex-start;
  gap: .05rem;
  line-height: 1.25;
}

.tc-agenda-cal-chip-hora {
  font-variant-numeric: tabular-nums;
}

.tc-agenda-cal-chip-num {
  word-break: break-word;
}

.tc-perfil-acs-header {
  margin-bottom: var(--tc-space-5);
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-perfil-acs-header-meta {
  align-items: center;
  gap: var(--tc-space-2);
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  flex-wrap: wrap;
  display: flex;
}

.tc-perfil-acs-tabs {
  gap: var(--tc-space-1);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  margin-bottom: var(--tc-space-4);
  display: flex;
}

.tc-perfil-acs-tab {
  padding: var(--tc-space-2) var(--tc-space-4);
  border-radius: var(--tc-radius) var(--tc-radius) 0 0;
  color: var(--admin-text-muted, #64748b);
  font-weight: 600;
  font-size: var(--tc-text-base);
  cursor: pointer;
  background: none;
  border: none;
  border-bottom: 2px solid #0000;
}

.tc-perfil-acs-tab.is-active {
  border-bottom-color: var(--admin-primary, #2563eb);
  background: var(--admin-card-bg);
  color: var(--admin-text);
}

.tc-perfil-acs-dureza-legend {
  align-items: flex-start;
  gap: var(--tc-space-2);
  padding: var(--tc-space-3) var(--tc-space-4);
  border-radius: var(--tc-radius);
  background: var(--tc-info-bg, #dbeafe);
  border: 1px solid var(--tc-info, #3b82f6);
  color: var(--tc-info-text, #1e40af);
  font-size: var(--tc-text-sm);
  margin-bottom: var(--tc-space-3);
  display: flex;
}

.tc-perfil-acs-dureza-legend svg {
  flex-shrink: 0;
  margin-top: 2px;
}

.tc-perfil-acs-dureza-legend strong {
  font-weight: 700;
}

.tc-perfil-acs-param-row {
  align-items: center;
  gap: 0 var(--tc-space-2);
  padding: var(--tc-space-2) var(--tc-space-3);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  grid-template-columns: minmax(140px, .8fr) minmax(130px, 1fr) 75px 120px 100px 30px;
  min-width: 740px;
  display: grid;
}

.tc-perfil-acs-param-row--head {
  padding-bottom: var(--tc-space-1);
}

.tc-perfil-acs-param-row-cell-head {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  font-weight: 700;
}

.tc-perfil-acs-param-row-cell-head--center {
  text-align: center;
}

.tc-perfil-acs-param-name-block {
  min-width: 0;
  overflow: hidden;
}

.tc-perfil-acs-param-name {
  font-size: var(--tc-text-base);
  color: var(--admin-text);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
  display: block;
  overflow: hidden;
}

.tc-perfil-acs-param-path {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  text-overflow: ellipsis;
  white-space: nowrap;
  display: block;
  overflow: hidden;
}

.tc-perfil-acs-param-type {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  text-align: center;
}

.tc-perfil-acs-cat-card {
  margin-bottom: var(--tc-space-3);
}

.tc-perfil-acs-cat-head {
  margin-bottom: var(--tc-space-2);
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.tc-perfil-acs-cat-head-left {
  align-items: center;
  gap: var(--tc-space-2);
  display: flex;
}

.tc-perfil-acs-cat-label {
  font-size: var(--tc-text-md);
  color: var(--admin-text);
  cursor: pointer;
  font-weight: 700;
}

.tc-perfil-acs-cat-count {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
}

.tc-perfil-acs-cat-key {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  font-family: monospace;
}

.tc-perfil-acs-cat-rename-btn {
  cursor: pointer;
  color: var(--admin-text-muted, #64748b);
  background: none;
  border: none;
  align-items: center;
  padding: 0;
  display: inline-flex;
}

.tc-perfil-acs-cat-rename-input {
  font-size: var(--tc-text-base);
  width: 220px;
  padding: 3px 8px;
  font-weight: 700;
}

.tc-perfil-acs-add-block {
  margin-top: var(--tc-space-3);
}

.tc-perfil-acs-add-head {
  margin-bottom: var(--tc-space-2);
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.tc-perfil-acs-add-title {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  margin: 0;
  font-weight: 700;
}

.tc-perfil-acs-new-cat-form {
  gap: var(--tc-space-2);
  margin-bottom: var(--tc-space-3);
  padding: var(--tc-space-3);
  border-radius: var(--tc-radius);
  background: var(--admin-bg);
  border: 1px solid var(--admin-border, #e2e8f0);
  flex-wrap: wrap;
  align-items: flex-end;
  display: flex;
}

.tc-perfil-acs-new-cat-form-field {
  width: 180px;
}

.tc-perfil-acs-new-cat-form-field--grow {
  flex: 1;
  min-width: 200px;
}

.tc-perfil-acs-add-row {
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  align-items: flex-end;
  display: flex;
}

.tc-perfil-acs-add-row-field {
  flex: 1;
  min-width: 200px;
}

.tc-perfil-acs-add-row-field--fixed {
  width: 180px;
}

.tc-perfil-acs-save-bar {
  margin-top: var(--tc-space-3);
  bottom: var(--tc-space-2);
  z-index: 5;
  justify-content: space-between;
  align-items: center;
  display: flex;
  position: sticky;
  box-shadow: 0 -2px 8px #0000001a;
}

.tc-perfil-acs-policy-block {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  padding-top: var(--tc-space-4);
  margin-bottom: var(--tc-space-4);
}

.tc-perfil-acs-policy-actions {
  padding-top: var(--tc-space-3);
  border-top: 1px solid var(--admin-border, #e2e8f0);
}

.tc-perfil-acs-apply-table-wrap {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  max-height: 350px;
  margin-bottom: var(--tc-space-4);
  overflow-y: auto;
}

.tc-perfil-acs-apply-row--selected {
  background: var(--tc-primary-bg);
}

.tc-perfil-acs-apply-toolbar {
  gap: var(--tc-space-3);
  margin-bottom: var(--tc-space-3);
  flex-wrap: wrap;
  align-items: center;
  display: flex;
}

.tc-perfil-acs-apply-search {
  max-width: 350px;
}

.tc-perfil-acs-apply-result {
  font-size: var(--tc-text-sm);
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-perfil-acs-apply-result-ok {
  color: var(--tc-success);
  font-weight: 600;
}

.tc-perfil-acs-apply-result-fail {
  color: var(--tc-danger);
  font-weight: 600;
}

.tc-perfil-acs-apply-errors {
  margin-top: var(--tc-space-2);
  padding: var(--tc-space-2) var(--tc-space-3);
  border-radius: var(--tc-radius-sm);
  background: var(--tc-danger-bg);
  border: 1px solid var(--tc-danger);
}

.tc-perfil-acs-apply-errors-title {
  margin: 0 0 var(--tc-space-1);
  font-size: var(--tc-text-xs);
  color: var(--tc-danger-text);
  font-weight: 600;
}

.tc-perfil-acs-apply-errors-item {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin: 2px 0;
}

.tc-perfil-acs-stepper {
  gap: var(--tc-space-1);
  margin-bottom: var(--tc-space-5);
  flex-wrap: wrap;
  display: flex;
}

.tc-perfil-acs-stepper-item {
  align-items: center;
  gap: var(--tc-space-1);
  display: flex;
}

.tc-perfil-acs-stepper-label {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  font-weight: 500;
}

.tc-perfil-acs-stepper-label.is-active {
  color: var(--admin-text);
  font-weight: 700;
}

.tc-perfil-acs-stepper-sep {
  color: var(--admin-border, #e2e8f0);
  margin: 0 var(--tc-space-2);
}

.tc-perfil-acs-origin-row {
  gap: var(--tc-space-3);
  flex-wrap: wrap;
  max-width: 800px;
  display: flex;
}

.tc-perfil-acs-origin-card {
  flex: 1;
  min-width: 220px;
}

.tc-perfil-acs-origin-card--clickable {
  cursor: pointer;
  transition: border-color .15s;
}

.tc-perfil-acs-origin-card--selected {
  border-color: var(--admin-primary, #2563eb);
}

.tc-perfil-acs-origin-icon {
  color: var(--admin-primary, #2563eb);
  margin-bottom: var(--tc-space-2);
}

.tc-perfil-acs-origin-title {
  font-size: var(--tc-text-lg);
  color: var(--admin-text);
  margin: 0 0 var(--tc-space-1);
  font-weight: 700;
}

.tc-perfil-acs-origin-desc {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 var(--tc-space-3);
}

.tc-perfil-acs-origin-btn-full {
  width: 100%;
}

.tc-perfil-acs-wizard-body {
  max-width: 740px;
}

.tc-perfil-acs-section-title {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin: 0 0 var(--tc-space-3);
  font-weight: 700;
}

.tc-perfil-acs-row {
  align-items: center;
  gap: var(--tc-space-3);
  margin-bottom: var(--tc-space-2);
  display: flex;
}

.tc-perfil-acs-row-label {
  font-size: var(--tc-text-base);
  color: var(--admin-text);
  flex-shrink: 0;
  min-width: 130px;
  font-weight: 600;
}

.tc-perfil-acs-row-content {
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  flex: 1;
  display: flex;
}

.tc-perfil-acs-row-hint {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
}

.tc-perfil-acs-firmware-row {
  margin-top: var(--tc-space-2);
  align-items: center;
  gap: var(--tc-space-2);
  display: flex;
}

.tc-perfil-acs-wifi-row {
  gap: var(--tc-space-3);
  margin-bottom: var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-perfil-acs-wifi-col, .tc-perfil-acs-wifi-card {
  flex: 1;
  min-width: 300px;
}

.tc-perfil-acs-wifi-head {
  margin-bottom: var(--tc-space-2);
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.tc-perfil-acs-fw-grid {
  gap: var(--tc-space-2);
  grid-template-columns: repeat(2, 1fr);
  display: grid;
}

@media (max-width: 640px) {
  .tc-perfil-acs-fw-grid {
    grid-template-columns: 1fr;
  }
}

.tc-perfil-acs-src-cat {
  margin-bottom: var(--tc-space-3);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
}

.tc-perfil-acs-src-cat-head {
  padding: var(--tc-space-2) var(--tc-space-3);
  background: var(--admin-table-header, #f8fafc);
  font-weight: 700;
  font-size: var(--tc-text-base);
  border-radius: var(--tc-radius) var(--tc-radius) 0 0;
}

.tc-perfil-acs-src-cat-count {
  font-weight: 400;
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin-left: var(--tc-space-2);
}

.tc-perfil-acs-src-cat-body {
  min-width: 400px;
}

.tc-perfil-acs-src-param-row {
  padding: var(--tc-space-2) var(--tc-space-3);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  font-size: var(--tc-text-base);
  align-items: center;
  gap: var(--tc-space-2);
  grid-template-columns: 150px 1fr 1fr 110px;
  display: grid;
}

.tc-perfil-acs-src-param-name {
  color: var(--admin-text);
  font-weight: 600;
}

.tc-perfil-acs-src-param-type {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
}

.tc-perfil-acs-src-param-path {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: monospace;
  overflow: hidden;
}

.tc-perfil-acs-src-vars-hint {
  margin-top: var(--tc-space-2);
  padding: var(--tc-space-2) var(--tc-space-3);
  background: var(--tc-info-bg, #dbeafe);
  border-radius: var(--tc-radius);
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
}

.tc-perfil-acs-vars-head {
  margin-bottom: var(--tc-space-3);
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.tc-perfil-acs-vars-count {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  font-weight: 500;
}

.tc-perfil-acs-vars-actions {
  gap: var(--tc-space-2);
  display: flex;
}

.tc-perfil-acs-vars-ref {
  margin-bottom: var(--tc-space-3);
  padding: var(--tc-space-3);
  border-radius: var(--tc-radius);
  background: var(--tc-info-bg, #dbeafe);
  border: 1px solid var(--tc-info, #3b82f6);
}

.tc-perfil-acs-vars-ref-title {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 var(--tc-space-2);
  text-transform: uppercase;
  font-weight: 700;
}

.tc-perfil-acs-vars-ref-list {
  gap: var(--tc-space-1);
  flex-wrap: wrap;
  display: flex;
}

.tc-perfil-acs-vars-empty {
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-perfil-acs-vars-table {
  gap: var(--tc-space-2);
  flex-direction: column;
  min-width: 480px;
  display: flex;
}

.tc-perfil-acs-vars-table-head {
  gap: var(--tc-space-2);
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .05em;
  grid-template-columns: 160px 1fr 60px 30px;
  font-weight: 700;
  display: grid;
}

.tc-perfil-acs-vars-table-row {
  gap: var(--tc-space-2);
  grid-template-columns: 160px 1fr 60px 30px;
  align-items: center;
  display: grid;
}

.tc-perfil-acs-vars-table-name {
  font-size: var(--tc-text-base);
  color: var(--admin-text);
  font-family: monospace;
  font-weight: 600;
}

.tc-perfil-acs-vars-note {
  padding: var(--tc-space-3) var(--tc-space-4);
  border-radius: var(--tc-radius);
  margin-bottom: var(--tc-space-4);
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  background: var(--tc-info-bg, #dbeafe);
  border: 1px solid var(--tc-info, #3b82f6);
}

.tc-perfil-acs-nav {
  gap: var(--tc-space-2);
  justify-content: space-between;
  display: flex;
}

.tc-perfil-acs-summary {
  font-size: var(--tc-text-base);
  color: var(--admin-text);
  gap: 4px var(--tc-space-3);
}

.tc-perfil-acs-summary-label {
  font-weight: 600;
}

.tc-agenda-cal-card {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border);
  border-left-style: solid;
  border-left-width: 4px;
  border-left-color: var(--admin-primary);
  padding: var(--tc-space-2) var(--tc-space-3);
  border-radius: 8px;
  transition: box-shadow .15s, border-color .15s, transform .1s;
  position: relative;
  box-shadow: 0 1px 2px #0f172a0f, 0 1px 3px #0f172a0d;
}

.tc-agenda-cal-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px #0f172a1f;
}

.tc-agenda-cal-card--verde {
  border-left-color: var(--tc-success);
}

.tc-agenda-cal-card--amarilla {
  border-left-color: var(--tc-warning);
}

.tc-agenda-cal-card--roja {
  border-left-color: var(--tc-danger);
}

.tc-agenda-cal-card--n {
  border-left-color: var(--admin-primary);
}

.tc-agenda-cal-card-head {
  justify-content: space-between;
}

.tc-agenda-cal-card-hora {
  font-size: var(--tc-text-lg);
  font-variant-numeric: tabular-nums;
  color: var(--admin-text, #1e293b);
  font-weight: 700;
}

.tc-agenda-cal-card-num {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
  font-weight: 600;
}

.tc-agenda-cal-card-cliente {
  color: var(--admin-text-muted);
}

.tc-agenda-cal-card-acc {
  margin-top: var(--tc-space-2);
  padding-top: var(--tc-space-2);
  border-top: 1px solid var(--admin-border);
  justify-content: flex-end;
}

.tc-agenda-cal-dia-head {
  background: var(--admin-surface);
}

.tc-agenda-cal-dia-hcol, .tc-agenda-cal-hcol {
  z-index: 2;
  background: var(--admin-surface);
  position: sticky;
  left: 0;
}

.tc-agenda-cal-dia-row .tc-agenda-cal-hcol {
  background: var(--admin-card-bg);
}

.tc-agenda-cal-col-head {
  gap: var(--tc-space-2);
}

.tc-agenda-cal-avatar {
  border: 1px solid var(--admin-border);
}

.tc-agenda-cal-sem-head {
  background: var(--admin-surface);
}

.tc-agenda-cal-sem-tcol {
  z-index: 2;
  background: var(--admin-surface);
  position: sticky;
  left: 0;
}

.tc-agenda-cal-sem-row .tc-agenda-cal-sem-tcol {
  background: var(--admin-card-bg);
}

.tc-agenda-cal-cell:hover, .tc-agenda-cal-sem-cell:hover {
  background: var(--admin-surface-hover, var(--admin-surface));
}

.tc-agenda-cal-chip {
  border-radius: var(--tc-radius-sm);
  transition: filter .12s, box-shadow .12s;
}

.tc-agenda-cal-chip:hover {
  filter: brightness(.97);
  box-shadow: 0 1px 4px #0f172a1f;
}

.tc-agenda-cal-chip--n {
  background: var(--tc-info-bg);
  color: var(--tc-info-text);
  border-left: 3px solid var(--admin-primary);
}

.tc-agenda-cal-chip--verde {
  border-left: 3px solid var(--tc-success);
}

.tc-agenda-cal-chip--amarilla {
  border-left: 3px solid var(--tc-warning);
}

.tc-agenda-cal-chip--roja {
  border-left: 3px solid var(--tc-danger);
}

.tc-agenda-cal-chip-hora {
  font-weight: 700;
}

.tc-agenda-cal-chip-num {
  opacity: .85;
}

.tc-agenda-filtros {
  align-items: center;
  gap: var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-agenda-filtros .tc-datepicker-wrap {
  width: auto;
  min-width: 9.5rem;
}

.tc-agenda-filtros .tc-datepicker-trigger {
  min-width: 9.5rem;
}

.tc-agenda-filtros .tc-filter-select {
  min-width: 10rem;
}

@media (max-width: 640px) {
  .tc-agenda-filtros {
    flex-direction: column;
    align-items: stretch;
  }

  .tc-agenda-filtros .tc-datepicker-wrap, .tc-agenda-filtros .tc-filter-select {
    width: 100%;
    min-width: 0;
  }
}

.tc-agenda-section--sin-asignar .tc-agenda-section-head {
  border-bottom-color: var(--tc-warning);
  background: var(--tc-warning-bg);
  padding: var(--tc-space-3) var(--tc-space-4);
  border-radius: var(--tc-radius-lg) var(--tc-radius-lg) 0 0;
  margin-bottom: 0;
}

.tc-agenda-section--sin-asignar .tc-agenda-section-title {
  color: var(--tc-warning-text);
}

.tc-agenda-section--sin-asignar .tc-agenda-section-body {
  border: 1px solid var(--tc-warning-bg);
  border-radius: 0 0 var(--tc-radius-lg) var(--tc-radius-lg);
  padding: var(--tc-space-4);
  background: var(--admin-card-bg);
  border-top: none;
}

.tc-agenda-section--por-tecnico > .tc-agenda-section-head {
  border-bottom-color: var(--admin-primary);
}

.tc-agenda-section--por-tecnico .tc-agenda-section-title {
  color: var(--admin-text, #1e293b);
}

.tc-agenda-section-icon {
  color: inherit;
  align-items: center;
  display: inline-flex;
}

.tc-agenda-nav {
  align-items: center;
  gap: var(--tc-space-2);
  display: flex;
}

.tc-agenda-nav-rotulo {
  font-size: var(--tc-text-lg);
  color: var(--admin-text, #1e293b);
  text-transform: none;
  margin-left: var(--tc-space-2);
  font-weight: 700;
}

.tc-agenda-nav-rotulo:first-letter {
  text-transform: uppercase;
}

.tc-nueva-orden {
  flex-direction: column;
  display: flex;
}

.tc-nueva-orden-bloque {
  gap: var(--tc-space-3);
  padding: var(--tc-space-4) 0;
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  flex-direction: column;
  display: flex;
}

.tc-nueva-orden-bloque:first-of-type {
  padding-top: 0;
}

.tc-nueva-orden-bloque:last-of-type {
  border-bottom: 0;
  padding-bottom: 0;
}

.tc-nueva-orden-rotulo {
  align-items: center;
  gap: var(--tc-space-2);
  font-size: var(--tc-text-base, .95rem);
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 700;
  display: flex;
}

.tc-nueva-orden-num {
  width: 24px;
  height: 24px;
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  background: var(--admin-bg, #f1f5f9);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 50%;
  place-items: center;
  font-weight: 700;
  display: inline-grid;
}

.tc-nueva-orden-bloque--hecho .tc-nueva-orden-num {
  color: #fff;
  background: var(--tc-success, #16a34a);
  border-color: var(--tc-success, #16a34a);
}

.tc-nueva-orden .tc-segmented {
  flex-wrap: wrap;
  align-self: flex-start;
  max-width: 100%;
}

.tc-nueva-orden-opciones {
  gap: var(--tc-space-2);
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  display: grid;
}

.tc-nueva-orden-sin-servicios {
  align-items: center;
  gap: var(--tc-space-2) var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-nueva-orden-nota {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-nueva-orden-fijo {
  padding: var(--tc-space-2) var(--tc-space-3);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  background: var(--admin-bg, #f1f5f9);
  font-weight: 600;
}

.tc-nueva-orden-fila {
  gap: var(--tc-space-3) var(--tc-space-5);
  flex-wrap: wrap;
  display: flex;
}

.tc-nueva-orden-campo {
  gap: var(--tc-space-1);
  flex-direction: column;
  display: flex;
}

.tc-nueva-orden-campo--tecnico {
  flex: 220px;
  max-width: 320px;
}

.tc-nueva-orden-etiqueta {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  font-weight: 600;
}

.tc-nueva-orden-agenda {
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-nueva-orden-fecha {
  width: 200px;
}

.tc-nueva-orden-hora {
  width: 140px;
}

.tc-nueva-orden-observaciones {
  resize: vertical;
  width: 100%;
}

.tc-nueva-orden-mas {
  font: inherit;
  font-size: var(--tc-text-sm);
  color: var(--admin-primary, #2563eb);
  cursor: pointer;
  background: none;
  border: 0;
  align-self: flex-start;
  padding: 0;
}

.tc-nueva-orden-mas:hover {
  text-decoration: underline;
}

.tc-nueva-orden-pie {
  gap: var(--tc-space-3);
  flex-direction: column;
  flex: 1;
  display: flex;
}

.tc-nueva-orden-frase {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  margin: 0;
  line-height: 1.5;
}

.tc-nueva-orden-falta {
  color: var(--admin-text-muted, #64748b);
}

.tc-nueva-orden-acciones {
  justify-content: flex-end;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

@media (max-width: 640px) {
  .tc-nueva-orden-campo--tecnico {
    max-width: none;
  }

  .tc-nueva-orden-fecha, .tc-nueva-orden-hora {
    width: 100%;
  }
}

.tc-segmented__item.is-active {
  background: var(--admin-primary);
  color: #fff;
  font-weight: 700;
  box-shadow: 0 1px 3px #00000026;
}

.tc-segmented__item:not(.is-active):hover {
  background: var(--admin-surface-hover, var(--admin-surface));
  color: var(--admin-text, #1e293b);
}

.tc-stat-head {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2);
  display: flex;
}

.tc-stat-icon {
  border-radius: var(--tc-radius);
  background: var(--admin-surface);
  width: 1.75rem;
  height: 1.75rem;
  color: var(--admin-text-muted);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: inline-flex;
}

.tc-stat--clickable {
  cursor: pointer;
  text-align: left;
  font: inherit;
  color: inherit;
  transition: border-color .12s, box-shadow .12s, background-color .12s,
              transform var(--tc-transicion) var(--tc-curva);
}

.tc-stat--clickable:hover {
  border-color: var(--admin-primary, #2563eb);
}

@media (hover: hover) and (pointer: fine) {
  .tc-stat--clickable:hover {
    transform: translateY(var(--tc-hover-lift));
    box-shadow: var(--admin-shadow, 0 4px 12px #00000014);
  }

  .tc-stat--clickable.tc-stat--active:hover {
    box-shadow: inset 0 0 0 1px var(--admin-primary, #2563eb),
                var(--admin-shadow, 0 4px 12px #00000014);
  }
}

.tc-stat--clickable:active {
  transform: translateY(0) scale(var(--tc-press-escala));
}

.tc-stat--clickable:focus-visible {
  outline: 2px solid var(--admin-primary, #2563eb);
  outline-offset: 2px;
}

.tc-stat--active {
  border-color: var(--admin-primary, #2563eb);
  background: color-mix(in srgb, var(--admin-primary, #2563eb) 6%, var(--admin-card-bg, #fff));
  box-shadow: inset 0 0 0 1px var(--admin-primary, #2563eb);
}

.tc-agenda-cal-col-head, .tc-agenda-cal-sem-tcol {
  background: var(--admin-surface);
}

.tc-agenda-cal-col-head .tc-agenda-cal-avatar, .tc-agenda-cal-sem-tcol .tc-agenda-cal-avatar {
  border: 1px solid var(--admin-border);
}

.tc-agenda-cal-col-nombre, .tc-agenda-cal-sem-nombre {
  flex-direction: column;
  min-width: 0;
  line-height: 1.2;
  display: flex;
}

.tc-agenda-cal-col-nombre-principal, .tc-agenda-cal-sem-nombre-principal {
  color: var(--admin-text, #1e293b);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-weight: 700;
  overflow: hidden;
}

.tc-agenda-cal-col-nombre-codigo, .tc-agenda-cal-sem-nombre-codigo {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
  font-weight: 500;
}

.tc-table-row--atrasada td {
  background: var(--tc-danger-bg);
}

.tc-table-row--flagged td {
  background: var(--tc-warning-bg);
}

.tc-agenda-modal-error {
  font-size: var(--tc-text-sm);
  color: var(--tc-danger-text);
  background: var(--tc-danger-bg);
  border-radius: 6px;
  margin: 0 0 1rem;
  padding: .5rem .75rem;
}

.tc-agenda-panel-cargando {
  color: var(--admin-text-muted);
  font-weight: 400;
  font-size: var(--tc-text-xs);
}

.tc-agenda-tecpanel {
  flex-direction: column;
  gap: .4rem;
  max-height: 260px;
  margin-bottom: 1rem;
  display: flex;
  overflow-y: auto;
}

.tc-agenda-tecpanel-item {
  border-radius: var(--tc-radius);
  border: 1.5px solid var(--admin-border, #e2e8f0);
  cursor: pointer;
  align-items: center;
  gap: .6rem;
  padding: .55rem .75rem;
  transition: border-color .15s, background .15s;
  display: flex;
}

.tc-agenda-tecpanel-item:hover {
  border-color: var(--admin-primary, #2563eb);
}

.tc-agenda-tecpanel-item--selected {
  border-color: var(--admin-primary, #2563eb);
  background: var(--tc-primary-bg);
}

.tc-agenda-tecpanel-radio {
  flex-shrink: 0;
  margin: 0;
}

.tc-agenda-tecpanel-nombre {
  min-width: 0;
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  font-weight: 600;
  overflow: hidden;
}

.tc-agenda-tecpanel-item--selected .tc-agenda-tecpanel-nombre {
  color: var(--admin-primary, #2563eb);
}

.tc-agenda-tecpanel-codigo {
  color: var(--admin-text-muted);
  font-weight: 500;
}

.tc-agenda-tecpanel-badges {
  flex-shrink: 0;
  align-items: center;
  gap: .4rem;
  display: flex;
}

.tc-agenda-tecpanel-check {
  color: var(--admin-primary, #2563eb);
}

.tc-table-th-sort {
  font: inherit;
  color: var(--admin-text, #1e293b);
  cursor: pointer;
  background: none;
  border: none;
  align-items: center;
  gap: .3rem;
  margin: 0;
  padding: 0;
  font-weight: 600;
  display: inline-flex;
}

.tc-table-th-sort:hover {
  color: var(--admin-primary, #2563eb);
}

.tc-dropdown-option-checkbox {
  border: 1px solid var(--admin-border, #e2e8f0);
  color: #fff;
  background: var(--admin-card-bg, #fff);
  border-radius: 4px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 16px;
  height: 16px;
  display: inline-flex;
}

.tc-dropdown-option-checkbox--checked {
  background: var(--admin-primary, #2563eb);
  border-color: var(--admin-primary, #2563eb);
}

.tc-agenda-filtros-wrap {
  gap: var(--tc-space-3);
  flex-direction: column;
  display: flex;
}

.tc-agenda-filtros-primary {
  margin-bottom: 0;
}

.tc-agenda-filtros-search {
  flex: 1;
  align-items: center;
  min-width: 14rem;
  display: flex;
  position: relative;
}

.tc-agenda-filtros-search-icon {
  left: var(--tc-space-3);
  color: var(--admin-text-muted, #94a3b8);
  pointer-events: none;
  position: absolute;
}

.tc-agenda-filtros-search-input {
  width: 100%;
  padding-left: calc(var(--tc-space-3) + 20px);
}

.tc-agenda-filtros-panel {
  align-items: center;
  gap: var(--tc-space-3);
  padding: var(--tc-space-4);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg);
  background: var(--admin-bg-subtle, #f8fafc);
  flex-wrap: wrap;
  display: flex;
}

.tc-agenda-filtros-panel .tc-filter-select, .tc-agenda-filtros-panel .tc-datepicker-wrap {
  min-width: 10rem;
}

.tc-agenda-filtros-rango {
  align-items: center;
  gap: var(--tc-space-2);
  display: flex;
}

.tc-agenda-filtros-rango-label {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #94a3b8);
  white-space: nowrap;
}

.tc-agenda-filtros-zona-input {
  min-width: 10rem;
}

.tc-agenda-filtros-toggles {
  align-items: center;
  gap: var(--tc-space-4);
  flex-wrap: wrap;
  display: flex;
}

@media (max-width: 640px) {
  .tc-agenda-filtros-panel {
    flex-direction: column;
    align-items: stretch;
  }

  .tc-agenda-filtros-panel .tc-filter-select, .tc-agenda-filtros-panel .tc-datepicker-wrap, .tc-agenda-filtros-rango, .tc-agenda-filtros-zona-input, .tc-agenda-filtros-search {
    width: 100%;
    min-width: 0;
  }
}

.tc-th-sort {
  font: inherit;
  color: inherit;
  cursor: pointer;
  background: none;
  border: 0;
  align-items: center;
  gap: 4px;
  padding: 0;
  display: inline-flex;
}

.tc-form-grid--1 {
  grid-template-columns: 1fr;
}

.tc-nota-topbar {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-3);
  margin-bottom: var(--tc-space-4);
  flex-wrap: wrap;
  display: flex;
}

.tc-nota-list {
  gap: var(--tc-space-3);
  flex-direction: column;
  display: flex;
}

.tc-nota-pagination {
  margin-top: var(--tc-space-4);
}

.tc-nota-form-error {
  margin-top: 0;
  margin-bottom: var(--tc-space-3);
}

.tc-nota-tipo-badge {
  align-items: center;
  gap: 4px;
  display: inline-flex;
}

.tc-nota-servicio-badge {
  font-family: monospace;
}

.tc-nota-card {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  padding: var(--tc-space-4);
  background: var(--admin-card-bg, #fff);
  box-shadow: var(--admin-shadow, 0 1px 3px #0000000f);
  transition: box-shadow .15s, border-color .15s;
}

.tc-nota-card-header {
  align-items: center;
  gap: var(--tc-space-2);
  margin-bottom: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-nota-card-date {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  white-space: nowrap;
  margin-left: auto;
}

.tc-nota-card-title {
  font-weight: 600;
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  margin-bottom: var(--tc-space-1);
}

.tc-nota-card-content {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  white-space: pre-wrap;
  line-height: 1.55;
}

.tc-nota-card-footer {
  margin-top: var(--tc-space-3);
  padding-top: var(--tc-space-3);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.tc-nota-card-author {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
}

.tc-nota-card-actions {
  gap: var(--tc-space-1);
  display: flex;
}

.tc-nota-action-btn {
  padding: var(--tc-space-1) var(--tc-space-2);
  font-size: var(--tc-text-xs);
  flex: none;
}

.tc-nota-action-btn--success {
  color: var(--tc-success);
}

.tc-relative {
  position: relative;
}

.tc-fw-600 {
  font-weight: 600;
}

.tc-m-0 {
  margin: 0;
}

.tc-code-chip {
  background: var(--admin-bg, #f1f5f9);
  border-radius: 4px;
  padding: 1px 5px;
  font-size: .78rem;
}

.tc-cell-link-strong {
  color: var(--admin-text, #1e293b);
  font-weight: 600;
  text-decoration: none;
}

.tc-filter-active-dot {
  background: var(--admin-primary, #2563eb);
  border-radius: 50%;
  width: 8px;
  height: 8px;
  margin-left: 4px;
  display: inline-block;
}

.tc-grid-autofill-170 {
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  display: grid;
}

.tc-filtro-campo--doble {
  grid-column: span 2;
}

.tc-filter-clear-wrap {
  align-items: flex-end;
  display: flex;
}

.tc-qr-video {
  background: #000;
  border-radius: 10px;
  width: 100%;
  max-height: 240px;
  margin-bottom: 12px;
}

.tc-col-picker {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  z-index: 300;
  border-radius: 10px;
  min-width: 240px;
  padding: 8px 0;
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  box-shadow: 0 4px 16px #0000001a;
}

.tc-col-picker-title {
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--admin-text-muted, #64748b);
  padding: 4px 14px 8px;
  font-size: .68rem;
  font-weight: 600;
}

.tc-col-picker-row {
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 5px 14px;
  display: flex;
}

.tc-col-picker-label {
  color: var(--admin-text, #1e293b);
  font-size: .84rem;
}

.tc-col-picker-actions {
  align-items: center;
  gap: 6px;
  display: flex;
}

.tc-col-drag-handle {
  color: var(--admin-text-muted, #94a3b8);
  cursor: grab;
  flex-shrink: 0;
}

.tc-col-drag-target {
  box-shadow: inset 0 2px 0 var(--admin-primary, #2563eb);
}

.tc-reporte-grupo {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
}

.tc-reporte-grupo:last-child {
  border-bottom: none;
}

.tc-reporte-grupo-header {
  gap: var(--tc-space-2);
  padding: var(--tc-space-3) var(--tc-space-4);
  background: var(--admin-bg, #f8fafc);
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  display: flex;
}

.tc-reporte-grupo-titulo {
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-reporte-grupo-subtotales {
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-sm);
}

.tc-dropzone {
  align-items: center;
  gap: var(--tc-space-3);
  min-height: 56px;
  padding: var(--tc-space-3) var(--tc-space-4);
  border: 2px dashed var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  background: var(--admin-table-header, #f8fafc);
  cursor: pointer;
  transition: border-color .2s, background .2s;
  display: flex;
}

.tc-dropzone:hover, .tc-dropzone--dragging {
  border-color: var(--admin-primary, #2563eb);
  background: var(--tc-primary-bg, #eef2ff);
}

.tc-dropzone--disabled {
  cursor: not-allowed;
  opacity: .6;
}

.tc-dropzone--subido {
  border-style: solid;
  border-color: var(--tc-success, #16a34a);
  background: var(--tc-success-bg, #dcfce7);
}

.tc-dropzone--error {
  border-color: var(--tc-danger, #ef4444);
  background: var(--tc-danger-bg, #fee2e2);
}

.tc-dropzone-input {
  opacity: 0;
  pointer-events: none;
  width: 0;
  height: 0;
  position: absolute;
}

.tc-dropzone-icon {
  color: var(--admin-text-muted, #64748b);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: inline-flex;
}

.tc-dropzone--subido .tc-dropzone-icon {
  color: var(--tc-success-text, #166534);
}

.tc-dropzone--error .tc-dropzone-icon {
  color: var(--tc-danger-text, #991b1b);
}

.tc-dropzone-text {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.tc-dropzone--subido .tc-dropzone-text {
  color: var(--tc-success-text, #166534);
  font-weight: 600;
}

.tc-dropzone--error .tc-dropzone-text {
  color: var(--tc-danger-text, #991b1b);
}

.tc-ftth-valor-requiere-onu {
  color: var(--admin-text-muted, #64748b);
  font-style: italic;
  font-size: var(--tc-text-sm);
}

.tc-senal-evento-alta {
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-sm);
}

.tc-puerto-acciones {
  justify-content: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  margin-top: .2rem;
  display: flex;
}

.tc-puerto-card {
  position: relative;
}

.tc-puerto-historial-btn {
  border-radius: var(--tc-radius-sm);
  opacity: .65;
  width: 20px;
  min-width: 20px;
  height: 20px;
  padding: 0;
  position: absolute;
  top: 4px;
  right: 4px;
}

.tc-puerto-historial-btn:hover {
  opacity: 1;
}

.tc-hist-puerto-evento {
  flex-direction: column;
  gap: .3rem;
  display: flex;
}

.tc-hist-puerto-origen {
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem;
  display: flex;
}

.tc-hist-puerto-detalle {
  font-size: var(--tc-text-sm);
  flex-wrap: wrap;
  gap: .25rem .9rem;
  display: flex;
}

.tc-hist-puerto-usuario {
  font-size: var(--tc-text-xs);
}

.tc-table .tc-copyable-id {
  max-width: 100%;
}

.tc-table .tc-copyable-id-text {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.tc-canales-seccion {
  margin-top: var(--tc-space-5, 20px);
}

.tc-canales-seccion:first-of-type {
  margin-top: var(--tc-space-6, 24px);
}

.tc-canales-cabecera {
  align-items: center;
  gap: var(--tc-space-2, 8px);
  margin: 0 2px var(--tc-space-2, 8px);
  color: var(--admin-text, #1e293b);
  display: flex;
}

.tc-canales-cabecera h2 {
  margin: 0;
  font-size: .95rem;
  font-weight: 700;
}

.tc-canales-cabecera-conteo {
  font-size: var(--tc-text-sm, .875rem);
  color: var(--admin-text-muted, #64748b);
  margin-left: auto;
}

.tc-canales-fila {
  align-items: center;
  gap: var(--tc-space-3, 12px);
  padding: var(--tc-space-3, 12px) var(--tc-space-4, 16px);
  display: flex;
}

.tc-canales-fila + .tc-canales-fila {
  border-top: 1px solid var(--admin-border, #e2e8f0);
}

.tc-canales-fila-cuerpo {
  flex-direction: column;
  flex: 1;
  min-width: 0;
  display: flex;
}

.tc-canales-fila-acciones {
  align-items: center;
  gap: var(--tc-space-3, 12px);
  flex-shrink: 0;
  margin-left: auto;
  display: flex;
}

.tc-canales-fila-acciones label > span:not(.vpn-config-toggle-track) {
  clip: rect(0 0 0 0);
  width: 1px;
  height: 1px;
  position: absolute;
  overflow: hidden;
}

.tc-canales-error {
  color: var(--tc-danger-text, #991b1b);
}

@media (max-width: 640px) {
  .tc-canales-fila {
    flex-wrap: wrap;
  }

  .tc-canales-fila-acciones {
    width: 100%;
    padding-left: calc(36px + var(--tc-space-3, 12px));
    justify-content: space-between;
  }
}

.tc-gw-logo {
  border-radius: var(--tc-radius);
  background: var(--admin-bg);
  width: 36px;
  height: 36px;
  color: var(--tc-neutral-text);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
}

.tc-gw-logo img {
  object-fit: contain;
}

.tc-proveedor-envio {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius, 8px);
  background: var(--admin-card-bg, #fff);
  align-items: center;
  gap: 10px;
  padding: 6px 12px;
  font-weight: 600;
  display: inline-flex;
}

.tc-proveedor-envio-punto {
  background: var(--admin-text-muted, #94a3b8);
  border-radius: 50%;
  width: 8px;
  height: 8px;
}

.tc-proveedor-envio--on .tc-proveedor-envio-punto {
  background: var(--tc-success, #22c55e);
}

.tc-proveedor-resumen {
  align-items: center;
  gap: var(--tc-space-3, 12px) var(--tc-space-8, 32px);
  margin: var(--tc-space-4, 16px) 0;
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--admin-card-bg, #fff);
  flex-wrap: wrap;
  padding: 12px 16px;
  display: flex;
}

.tc-proveedor-resumen-item {
  flex-direction: column;
  display: flex;
}

.tc-proveedor-resumen-item strong {
  font-variant-numeric: tabular-nums;
  font-size: 1rem;
}

.tc-proveedor-resumen-etiqueta {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  font-weight: 600;
}

.tc-proveedor-resumen-accion {
  margin-left: auto;
}

.tc-proveedor-tarjetas {
  gap: var(--tc-space-4, 16px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  display: grid;
}

.tc-proveedor-resumen, .tc-proveedor-tarjetas, .tc-proveedor-guardar {
  max-width: 72rem;
}

.tc-proveedor-tarjeta > .tc-card {
  height: 100%;
  margin: 0;
}

.tc-proveedor-tarjeta--ancha {
  grid-column: 1 / -1;
}

.tc-proveedor-ayuda {
  margin: 0 0 var(--tc-space-3, 12px);
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-sm, .875rem);
}

.tc-proveedor-tarjeta .tc-form-field {
  margin-bottom: 0;
}

.tc-proveedor-servidor {
  gap: var(--tc-space-3, 12px);
  grid-template-columns: minmax(0, 1fr) 120px auto;
  align-items: end;
  display: grid;
}

.tc-proveedor-servidor > label {
  min-height: 38px;
}

.tc-proveedor-dos {
  gap: var(--tc-space-3, 12px);
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  display: grid;
}

.tc-proveedor-preset {
  cursor: pointer;
  height: 32px;
  font: inherit;
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text, #1e293b);
  border-radius: 999px;
  padding: 0 13px;
  font-size: .84rem;
}

.tc-proveedor-preset--activo {
  border-color: var(--admin-primary, #2563eb);
  background: var(--admin-primary-soft, #2563eb14);
  color: var(--admin-primary, #2563eb);
  font-weight: 600;
}

.tc-proveedor-secreto {
  border: 1px dashed var(--admin-border, #cbd5e1);
  border-radius: var(--tc-radius, 8px);
  background: var(--admin-bg, #f8fafc);
  align-items: center;
  gap: 10px;
  min-height: 38px;
  padding: 0 6px 0 12px;
  display: flex;
}

.tc-proveedor-secreto-ok {
  font-weight: 600;
  font-size: var(--tc-text-sm, .875rem);
  color: var(--tc-success-text, #166534);
  align-items: center;
  gap: 6px;
  display: inline-flex;
}

.tc-proveedor-secreto .tc-btn {
  margin-left: auto;
}

.tc-proveedor-secreto-conservar {
  cursor: pointer;
  font-size: var(--tc-text-sm, .875rem);
  background: none;
  border: 0;
  margin-top: 4px;
  padding: 0;
  display: inline-block;
}

.tc-proveedor-remitente {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius, 8px);
  background: var(--admin-bg, #f8fafc);
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  display: flex;
}

.tc-proveedor-remitente > div {
  flex-direction: column;
  flex: 1;
  min-width: 0;
  display: flex;
}

.tc-proveedor-remitente-avatar {
  background: var(--admin-primary, #2563eb);
  color: #fff;
  border-radius: 50%;
  flex-shrink: 0;
  place-items: center;
  width: 34px;
  height: 34px;
  font-weight: 700;
  display: grid;
}

.tc-proveedor-remitente-avatar--wa {
  background: var(--tc-success, #16a34a);
}

.tc-proveedor-avanzado {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--admin-card-bg, #fff);
}

.tc-proveedor-avanzado > summary {
  cursor: pointer;
  align-items: center;
  gap: 8px;
  padding: 14px 18px;
  font-weight: 600;
  list-style: none;
  display: flex;
}

.tc-proveedor-avanzado > summary::-webkit-details-marker {
  display: none;
}

.tc-proveedor-avanzado > summary:after {
  content: "▸";
  color: var(--admin-text-muted, #64748b);
  margin-left: auto;
}

.tc-proveedor-avanzado[open] > summary:after {
  content: "▾";
}

.tc-proveedor-avanzado-resumen {
  color: var(--admin-text-muted, #64748b);
  font-weight: 400;
  font-size: var(--tc-text-sm, .875rem);
}

.tc-proveedor-avanzado-cuerpo {
  padding: 0 18px 18px;
}

.tc-proveedor-prueba {
  align-items: center;
  gap: var(--tc-space-3, 12px);
  flex-wrap: wrap;
  display: flex;
}

.tc-proveedor-guardar {
  z-index: 5;
  margin-top: var(--tc-space-4, 16px);
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--admin-text, #1e293b);
  color: var(--admin-card-bg, #fff);
  align-items: center;
  gap: 10px;
  padding: 10px 14px 10px 18px;
  display: flex;
  position: sticky;
  bottom: 16px;
  box-shadow: 0 10px 30px #0f172a40;
}

.tc-proveedor-guardar > span {
  flex: 1;
}

@media (max-width: 1000px) {
  .tc-proveedor-tarjetas {
    grid-template-columns: 1fr;
  }

  .tc-proveedor-servidor {
    grid-template-columns: 1fr 1fr;
  }
}

.tc-tipo-ticket-nombre {
  align-items: center;
  gap: var(--tc-space-2);
  display: inline-flex;
}

.tc-tipo-ticket-dot {
  background: var(--tc-dot-color);
  border: 1px solid var(--admin-border);
  border-radius: 50%;
  flex-shrink: 0;
  width: 10px;
  height: 10px;
}

.tc-tipo-ticket-color-picker {
  align-items: center;
  gap: var(--tc-space-2);
  display: inline-flex;
}

.tc-tipo-ticket-color-input {
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius);
  cursor: pointer;
  width: 36px;
  height: 30px;
  padding: 0;
}

.tc-color-dot {
  background: var(--tc-dot-color);
  border: 1px solid var(--admin-border);
  border-radius: 50%;
  flex-shrink: 0;
  width: 10px;
  height: 10px;
}

.tc-form-input--color {
  cursor: pointer;
  width: 36px;
  height: 30px;
  padding: 0;
}

.tc-form-input--num {
  text-align: center;
  width: 5rem;
}

.tc-pregunta-fila {
  gap: var(--tc-space-3);
  grid-template-columns: auto 1fr 12rem auto auto;
  align-items: center;
  display: grid;
}

.tc-pregunta-orden {
  flex-direction: column;
  gap: 2px;
  display: flex;
}

.tc-pregunta-extra {
  gap: var(--tc-space-3);
  margin-top: var(--tc-space-2);
  padding-left: 2.4rem;
  display: flex;
}

.tc-pregunta-opciones {
  gap: var(--tc-space-2);
  flex-direction: column;
  display: flex;
}

.tc-pregunta-opcion-row {
  align-items: center;
  gap: var(--tc-space-2);
  display: flex;
}

.tc-pregunta-opcion-add-row {
  margin-top: var(--tc-space-1);
  gap: .375rem;
  display: flex;
}

.tc-mb-6 {
  margin-bottom: 1.5rem;
}

.tc-text-center {
  text-align: center;
}

.tc-grid-1-2-2--gap-lg {
  gap: var(--tc-space-4);
}

.tc-btn-group-wrap {
  gap: var(--tc-space-1);
  flex-wrap: wrap;
  display: flex;
}

.tc-habilidad-add-row {
  gap: var(--tc-space-2);
  align-items: flex-end;
  padding: 14px;
  display: flex;
}

.tc-habilidad-time-field {
  width: 120px;
}

.tc-sla-bar {
  border-radius: 4px;
  height: 8px;
  margin-top: 10px;
  display: flex;
  overflow: hidden;
}

.tc-sla-bar-segment--verde {
  background: var(--tc-success);
}

.tc-sla-bar-segment--amarilla {
  background: var(--tc-warning);
}

.tc-sla-bar-segment--roja {
  background: var(--tc-danger);
}

.tc-chat-shell {
  --tc-chat-on-primary: #fff;
  height: calc(100vh - var(--header-height, 56px) - 32px);
  margin: -16px -24px;
  display: flex;
  position: relative;
  overflow: hidden;
}

.tc-chat-list {
  border-right: 1px solid var(--admin-border);
  background: var(--admin-card-bg);
  flex-direction: column;
  width: 380px;
  min-width: 380px;
  display: flex;
}

.tc-chat-list .tc-tabs {
  margin-bottom: var(--tc-space-3);
  flex-wrap: wrap;
  overflow-x: visible;
}

.tc-chat-list-filtros {
  align-items: center;
  gap: var(--tc-space-2);
  display: flex;
}

.tc-chat-list-filtros .tc-dropdown {
  flex-shrink: 0;
  width: 108px;
}

.tc-chat-item {
  padding: var(--tc-space-3) var(--tc-space-4);
  cursor: pointer;
  border-left: 3px solid #0000;
  border-bottom: 1px solid var(--admin-border);
  transition: background .1s;
}

.tc-chat-item:hover {
  background: var(--admin-table-hover, #f1f5f9);
}

.tc-chat-item--selected {
  background: color-mix(in srgb, var(--admin-primary) 10%, transparent);
  border-left-color: var(--admin-primary);
}

.tc-chat-panel {
  background: var(--admin-bg);
  flex-direction: column;
  flex: 1;
  min-width: 0;
  display: flex;
}

.tc-chat-log {
  padding: var(--tc-space-4) var(--tc-space-5);
  gap: var(--tc-space-1);
  flex-direction: column;
  flex: 1;
  display: flex;
  overflow-y: auto;
}

.tc-chat-panel--empty, .tc-chat-context--centered {
  justify-content: center;
  align-items: center;
}

.tc-chat-bubble {
  max-width: 70%;
  font-size: var(--tc-text-base);
  border-radius: 14px;
  padding: 10px 14px;
  line-height: 1.5;
}

.tc-chat-bubble--sm {
  max-width: 75%;
  font-size: var(--tc-text-sm);
  border-radius: 12px;
  padding: 8px 12px;
  line-height: 1.4;
}

.tc-chat-bubble--out {
  background: var(--admin-primary);
  color: #fff;
  --tc-chat-on-out: #fff;
  --tc-chat-on-out-70: #ffffffb3;
  --tc-chat-on-out-60: #fff9;
  --tc-chat-on-out-40: #fff6;
  --tc-chat-tick-leido: #93c5fd;
  border-bottom-right-radius: 4px;
}

.tc-chat-bubble--in {
  background: var(--admin-card-bg);
  color: var(--admin-text);
  border: 1px solid var(--admin-border);
  border-bottom-left-radius: 4px;
}

.tc-chat-bubble--private {
  background: color-mix(in srgb, var(--tc-warning) 15%, transparent);
  color: var(--tc-warning-text);
  border: 1px solid color-mix(in srgb, var(--tc-warning) 30%, transparent);
  border-bottom-right-radius: 4px;
}

.tc-chat-composer {
  border-top: 1px solid var(--admin-border);
  background: var(--admin-card-bg);
  position: relative;
}

.tc-chat-quick-replies {
  bottom: 100%;
  left: var(--tc-space-5);
  right: var(--tc-space-5);
  background: var(--admin-card-bg);
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius);
  z-index: 20;
  max-height: 200px;
  position: absolute;
  overflow-y: auto;
  box-shadow: 0 -4px 16px #0003;
}

.tc-chat-activity-pill {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted);
  background: var(--admin-card-bg);
  border: 1px solid var(--admin-border);
  border-radius: 10px;
  padding: 3px 12px;
  font-style: italic;
}

.tc-chat-context {
  border-left: 1px solid var(--admin-border);
  background: var(--admin-card-bg);
  width: 320px;
  min-width: 320px;
  padding: var(--tc-space-3);
  gap: var(--tc-space-3);
  flex-direction: column;
  display: flex;
  overflow-y: auto;
}

.tc-chat-avatar {
  --tc-chat-avatar-color: var(--admin-primary);
  background: color-mix(in srgb, var(--tc-chat-avatar-color) 20%, transparent);
  color: var(--tc-chat-avatar-color);
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  font-weight: 700;
  display: flex;
}

.tc-chat-avatar--sm {
  width: 36px;
  height: 36px;
  font-size: 14px;
}

.tc-chat-avatar--md {
  width: 38px;
  height: 38px;
  font-size: 15px;
}

.tc-chat-avatar--lg {
  width: 40px;
  height: 40px;
  font-size: 16px;
}

.tc-chat-minicard {
  border: 1px solid var(--admin-border);
  background: var(--admin-bg);
  border-radius: 6px;
  padding: 6px 10px;
}

.tc-chat-minicard-title {
  color: var(--admin-text);
  font-size: 12px;
  font-weight: 600;
}

.tc-chat-minicard-prioridad {
  margin-top: 2px;
}

.tc-chat-meta-label {
  text-transform: uppercase;
  letter-spacing: .05em;
  margin: 0 0 4px;
  font-size: 10px;
}

.tc-chat-meta-label--on-out {
  color: var(--tc-chat-on-out-70);
}

.tc-chat-sender {
  color: var(--admin-primary);
  opacity: .9;
  margin: 0 0 2px;
  font-size: 11px;
  font-weight: 600;
}

.tc-chat-panel-head {
  border-bottom: 1px solid var(--admin-border);
  background: var(--admin-card-bg);
  justify-content: space-between;
  align-items: center;
  padding: 10px 20px;
  display: flex;
}

.tc-chat-panel-foot {
  border-top: 1px solid var(--admin-border);
  padding: 12px 20px;
}

.tc-chat-list-head {
  border-bottom: 1px solid var(--admin-border);
  padding: 14px 16px 10px;
}

.tc-chat-attach-bar {
  background: color-mix(in srgb, var(--admin-primary) 8%, transparent);
  border: 1px solid color-mix(in srgb, var(--admin-primary) 15%, transparent);
  border-radius: 6px;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  padding: 5px 10px;
  display: flex;
}

.tc-chat-attach-bar-nombre {
  color: var(--admin-text);
  flex: 1;
  font-size: 12px;
}

.tc-chat-qr-item {
  width: 100%;
  color: var(--admin-text);
  cursor: pointer;
  text-align: left;
  border: none;
  border-bottom: 1px solid var(--admin-border);
  background: none;
  padding: 8px 14px;
  display: block;
}

.tc-chat-qr-atajo {
  color: var(--admin-primary);
  font-weight: 600;
}

.tc-chat-qr-file {
  color: var(--admin-text-muted);
  background: color-mix(in srgb, var(--admin-text-muted) 12%, transparent);
  border-radius: 3px;
  align-items: center;
  gap: 3px;
  margin-left: 6px;
  padding: 1px 5px;
  font-size: 10px;
  display: inline-flex;
}

.tc-chat-attach-close {
  cursor: pointer;
  background: none;
  border: none;
  border-radius: 4px;
  margin: 0;
  padding: 1px 4px;
  display: flex;
}

.tc-chat-send {
  background: var(--admin-primary);
  width: 40px;
  height: 40px;
  color: var(--tc-chat-on-primary, #fff);
  cursor: pointer;
  border: none;
  border-radius: 10px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  transition: background .2s;
  display: flex;
}

.tc-chat-send--nota {
  background: var(--tc-warning);
}

.tc-chat-send:disabled {
  background: color-mix(in srgb, var(--admin-primary) 30%, transparent);
  cursor: default;
}

.tc-chat-lightbox {
  --tc-chat-on-overlay: #fff;
  z-index: 200;
  cursor: pointer;
  background: #000c;
  justify-content: center;
  align-items: center;
  display: flex;
  position: fixed;
  inset: 0;
}

.tc-chat-lightbox-close {
  background: color-mix(in srgb, var(--tc-chat-on-overlay) 20%, transparent);
  width: 36px;
  height: 36px;
  color: var(--tc-chat-on-overlay);
  cursor: pointer;
  z-index: 201;
  border: none;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  display: flex;
  position: absolute;
  top: 16px;
  right: 16px;
}

.tc-chat-lightbox-img {
  object-fit: contain;
  cursor: default;
  border-radius: 8px;
  max-width: 85vw;
  max-height: 85vh;
}

.tc-chat-media {
  border-radius: 8px;
}

.tc-chat-media--foto {
  object-fit: contain;
  cursor: pointer;
  max-width: min(320px, 100%);
  max-height: 280px;
}

.tc-chat-media--sticker {
  object-fit: contain;
  cursor: default;
  max-width: min(150px, 100%);
  max-height: 150px;
}

.tc-chat-media--reproductor {
  max-width: 100%;
}

.tc-chat-media--gap {
  margin-bottom: 6px;
}

.tc-chat-media-marco {
  justify-content: center;
  align-items: center;
  display: flex;
  position: relative;
}

.tc-chat-media-marco--hueco {
  background: color-mix(in srgb, var(--admin-text-muted) 14%, transparent);
  color: var(--admin-text-muted);
  border-radius: 8px;
}

.tc-chat-media-marco--hueco.tc-chat-media-marco--foto {
  width: 240px;
  height: 180px;
}

.tc-chat-media-marco--hueco.tc-chat-media-marco--sticker {
  width: 150px;
  height: 150px;
}

.tc-chat-media-marco--hueco.tc-chat-media-marco--video {
  aspect-ratio: 16 / 9;
  width: 100vw;
  max-width: 100%;
}

.tc-chat-media-marco--hueco.tc-chat-media-marco--audio {
  width: 300px;
  max-width: 100%;
  height: 54px;
}

.tc-chat-doc {
  font: inherit;
  text-align: left;
  word-break: break-word;
  cursor: pointer;
  color: var(--admin-primary);
  background: none;
  border: none;
  align-items: center;
  gap: 5px;
  padding: 0;
  font-size: 12px;
  text-decoration: underline;
  display: flex;
}

.tc-chat-doc--on-out {
  color: var(--tc-chat-on-out);
}

.tc-chat-mini-bubble--out {
  --tc-chat-on-out: currentColor;
}

.tc-chat-lightbox-aviso {
  color: var(--tc-chat-on-overlay);
  cursor: default;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  display: flex;
}

.tc-chat-unread {
  background: var(--admin-primary);
  min-width: 18px;
  height: 18px;
  color: var(--tc-chat-on-primary, #fff);
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  padding: 0 4px;
  font-size: 10px;
  font-weight: 700;
  display: flex;
}

@media (max-width: 1024px) {
  .tc-chat-shell {
    flex-direction: column;
    height: auto;
    overflow: visible;
  }

  .tc-chat-list, .tc-chat-context {
    border-left: none;
    border-right: none;
    width: 100%;
    min-width: 0;
  }

  .tc-chat-log {
    max-height: 60vh;
  }
}

.tc-debug-toolbar {
  align-items: end;
  gap: var(--tc-space-4);
  margin-bottom: var(--tc-space-4);
  flex-wrap: wrap;
  display: flex;
}

.tc-debug-toolbar .tc-form-field {
  margin-bottom: 0;
}

.tc-debug-toolbar .tc-form-label, .tc-debug-toolbar-label {
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 .4rem;
  font-size: .7rem;
  font-weight: 700;
  display: block;
}

.tc-debug-toolbar-campo {
  flex-direction: column;
  display: flex;
}

.tc-debug-toolbar-valor {
  flex: 12rem;
  min-width: 12rem;
  max-width: 18rem;
}

.tc-debug-toolbar-acciones {
  align-items: center;
  gap: var(--tc-space-3);
  margin-left: auto;
  display: flex;
}

.tc-campo-medio {
  max-width: 26rem;
}

.tc-campo-corto {
  max-width: 8rem;
}

.tc-input-puerto {
  max-width: 7rem;
}

.tc-seccion + .tc-seccion {
  margin-top: var(--tc-space-5);
  padding-top: var(--tc-space-5);
  border-top: 1px solid var(--admin-border, #e2e8f0);
}

.tc-seccion-head {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-3);
  margin-bottom: var(--tc-space-3);
  display: flex;
}

.tc-seccion-head .tc-form-section-label {
  margin: 0;
}

.tc-collapse {
  border-top: 1px solid var(--admin-border);
  padding-top: var(--tc-space-3);
}

.tc-collapse > summary {
  align-items: center;
  gap: var(--tc-space-2);
  cursor: pointer;
  font-size: var(--tc-text-xs);
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--admin-text-muted);
  font-weight: 700;
  list-style: none;
  display: flex;
}

.tc-collapse > summary::-webkit-details-marker {
  display: none;
}

.tc-collapse > summary:before {
  content: "";
  width: 0;
  height: 0;
  transition: transform var(--tc-transicion) var(--tc-curva);
  border-top: 4px solid #0000;
  border-bottom: 4px solid #0000;
  border-left: 5px solid;
}

.tc-collapse[open] > summary:before {
  transform: rotate(90deg);
}

.tc-collapse > summary:hover {
  color: var(--admin-text);
}

.tc-collapse-body {
  gap: var(--tc-space-3);
  padding-top: var(--tc-space-3);
  flex-direction: column;
  display: flex;
}

.tc-perfil-servicio {
  margin-top: var(--tc-space-3);
}

.tc-perfil-servicio > summary {
  flex-wrap: wrap;
}

.tc-perfil-servicio-lista {
  letter-spacing: normal;
  text-transform: none;
  font-weight: 400;
}

.tc-diagnostic-toggle {
  align-items: center;
  gap: var(--tc-space-2);
  width: 100%;
  padding: var(--tc-space-3) 0;
  cursor: pointer;
  text-align: left;
  color: var(--admin-text, #1e293b);
  font-weight: 600;
  font-size: var(--tc-text-base);
  background: none;
  border: none;
  display: flex;
}

.tc-diagnostic-toggle:hover {
  color: var(--admin-primary, #2563eb);
}

.tc-diagnostic-item + .tc-diagnostic-item {
  border-top: 1px solid var(--admin-border, #e2e8f0);
}

@media (max-width: 640px) {
  .tc-debug-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .tc-debug-toolbar-acciones {
    margin-left: 0;
  }

  .tc-debug-toolbar-valor {
    max-width: none;
  }
}

.tc-copyable-text {
  align-items: center;
  gap: var(--tc-space-1);
  max-width: 100%;
  color: inherit;
  font: inherit;
  line-height: inherit;
  text-align: left;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  display: inline-flex;
}

.tc-copyable-text--mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.tc-copyable-text__valor {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.tc-copyable-text__ico {
  opacity: .45;
  flex-shrink: 0;
  transition: opacity .15s, color .15s;
}

.tc-copyable-text:hover .tc-copyable-text__ico, .tc-copyable-text:focus-visible .tc-copyable-text__ico {
  opacity: 1;
  color: var(--admin-primary, #2563eb);
}

.tc-copyable-text__ico--ok {
  opacity: 1;
  color: var(--tc-success, #16a34a);
}

.tc-copyable-text:hover .tc-copyable-text__valor {
  color: var(--admin-primary, #2563eb);
}

.tc-copyable-text:focus-visible {
  outline: 2px solid var(--admin-primary, #2563eb);
  outline-offset: 2px;
  border-radius: var(--tc-radius-sm);
}

.tc-routers-host {
  align-items: center;
  gap: .5rem;
  display: flex;
}

.tc-routers-host .tc-chip {
  flex-shrink: 0;
  align-items: center;
  gap: 4px;
  display: inline-flex;
}

.tc-oc-avance {
  gap: var(--tc-space-1);
  flex-direction: column;
  min-width: 150px;
  display: flex;
}

.tc-oc-avance-texto {
  font-size: var(--tc-text-xs);
  color: var(--tc-neutral-text);
}

.tc-oc-avance-bar {
  background: var(--admin-bg);
  border-radius: 999px;
  width: 100%;
  height: 6px;
  overflow: hidden;
}

.tc-oc-avance-fill {
  background: var(--tc-success);
  border-radius: 999px;
  height: 100%;
  transition: width .2s ease-out;
}

.tc-oc-avance-fill--0 {
  width: 0%;
}

.tc-oc-avance-fill--10 {
  width: 10%;
}

.tc-oc-avance-fill--20 {
  width: 20%;
}

.tc-oc-avance-fill--30 {
  width: 30%;
}

.tc-oc-avance-fill--40 {
  width: 40%;
}

.tc-oc-avance-fill--50 {
  width: 50%;
}

.tc-oc-avance-fill--60 {
  width: 60%;
}

.tc-oc-avance-fill--70 {
  width: 70%;
}

.tc-oc-avance-fill--80 {
  width: 80%;
}

.tc-oc-avance-fill--90 {
  width: 90%;
}

.tc-oc-avance-fill--100 {
  width: 100%;
}

.tc-oc-linea {
  padding: var(--tc-space-3) 0;
  border-bottom: 1px solid var(--admin-border);
}

.tc-oc-linea:last-of-type {
  border-bottom: none;
}

.tc-oc-linea-campos {
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  align-items: center;
  display: flex;
}

.tc-oc-linea-cant {
  width: 92px;
}

.tc-oc-linea-costo {
  width: 120px;
}

.tc-oc-linea-ref {
  align-items: center;
  gap: var(--tc-space-1);
  font-size: var(--tc-text-xs);
  color: var(--tc-neutral-text);
  margin-top: var(--tc-space-2);
  display: flex;
}

.tc-oc-total {
  padding-top: var(--tc-space-4);
  margin-top: var(--tc-space-2);
  border-top: 2px solid var(--admin-border);
  font-size: var(--tc-text-lg);
  justify-content: space-between;
  align-items: baseline;
  display: flex;
}

@media (max-width: 640px) {
  .tc-oc-linea-campos {
    flex-direction: column;
    align-items: stretch;
  }

  .tc-oc-linea-cant, .tc-oc-linea-costo {
    width: 100%;
  }
}

.tc-form-acciones {
  justify-content: flex-end;
  gap: var(--tc-space-2);
  margin-top: var(--tc-space-4);
  display: flex;
}

.tc-oc-linea-material-nuevo {
  align-items: center;
  gap: var(--tc-space-2);
  padding: var(--tc-space-2) var(--tc-space-3);
  border: 1px solid var(--admin-border);
  border-radius: var(--tc-radius);
  background: var(--admin-bg);
  font-size: var(--tc-text-sm);
  color: var(--admin-text);
  flex: 240px;
  display: flex;
}

.tc-oc-linea-material-nuevo span {
  flex: 1;
}

@media (max-width: 640px) {
  .tc-oc-linea-material-nuevo {
    flex-wrap: wrap;
  }
}

.tc-oc-composer {
  gap: var(--tc-space-2);
  margin-bottom: var(--tc-space-4);
  align-items: flex-end;
  display: flex;
}

.tc-oc-composer textarea {
  resize: vertical;
  flex: 1;
}

@media (max-width: 640px) {
  .tc-oc-composer {
    flex-direction: column;
  }
}

.tc-oc-seriales {
  resize: vertical;
  font-family: ui-monospace, SF Mono, Menlo, monospace;
}

.tc-oc-numero {
  white-space: nowrap;
}

.tc-oc-section-divider {
  margin: var(--tc-space-4) 0;
}

.tc-oc-filtros {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(310px, auto) max-content;
  align-items: end;
}

@media (max-width: 1024px) {
  .tc-oc-filtros {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
}

@media (max-width: 640px) {
  .tc-oc-filtros {
    grid-template-columns: 1fr;
  }
}

.tc-oc-resumen .tc-summary-strip {
  grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 1024px) {
  .tc-oc-resumen .tc-summary-strip {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .tc-oc-resumen .tc-summary-strip {
    grid-template-columns: 1fr;
  }
}

.tc-planta-splitters {
  gap: var(--tc-space-2);
  flex-direction: column;
  display: flex;
}

.tc-planta-splitter-row {
  align-items: center;
  gap: var(--tc-space-3);
  padding: var(--tc-space-2) 0;
  border-bottom: 1px solid var(--admin-border);
  display: flex;
}

.tc-planta-splitter-row:last-child {
  border-bottom: none;
}

.tc-planta-splitter-nivel {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted);
}

.tc-planta-splitter-perdida {
  font-variant-numeric: tabular-nums;
  color: var(--admin-text);
  margin-left: auto;
}

.tc-planta-splitter-nuevo {
  gap: var(--tc-space-3);
  padding-top: var(--tc-space-3);
  margin-top: var(--tc-space-3);
  border-top: 1px solid var(--admin-border);
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  display: grid;
}

.tc-planta-splitter-acciones {
  justify-content: flex-end;
  align-items: flex-end;
  gap: var(--tc-space-2);
  display: flex;
}

@media (max-width: 640px) {
  .tc-planta-splitter-row {
    flex-wrap: wrap;
  }

  .tc-planta-splitter-perdida {
    margin-left: 0;
  }
}

.tc-emp-hecho {
  margin: 0 0 var(--tc-space-2);
  color: var(--tc-success-text);
  font-size: var(--tc-text-sm);
}

.tc-emp-previa {
  margin: var(--tc-space-3) 0 0;
  padding: var(--tc-space-3);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  background: var(--admin-bg, #f8fafc);
  color: var(--admin-text, #1e293b);
}

.tc-emp-previa--ancho {
  grid-column: 1 / -1;
}

.tc-emp-previa-n {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  margin: 0;
}

.tc-emp-previa-n strong {
  font-size: var(--tc-text-base);
}

.tc-emp-previa-regla {
  color: var(--admin-text-muted, #64748b);
}

.tc-emp-previa-salto {
  margin: var(--tc-space-1) 0 0;
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
}

.tc-emp-previa-ojo {
  align-items: center;
  gap: var(--tc-space-1);
  margin: var(--tc-space-2) 0 0;
  font-size: var(--tc-text-xs);
  color: var(--tc-warning-text);
  display: flex;
}

.tc-sc-grupo {
  border-left: 6px solid var(--sc-tubo);
  position: relative;
}

.tc-sc-card--der .tc-sc-grupo {
  border-left: 0;
  border-right: 6px solid var(--sc-tubo);
}

.tc-sc-grupo + .tc-sc-grupo {
  border-top: 1px solid var(--admin-border);
}

.tc-sc-fila--buffer {
  background: color-mix(in srgb, var(--sc-tubo) 12%, var(--admin-card-bg));
}

.tc-sc-buffer-col {
  color: var(--admin-text-muted);
  font-weight: 400;
}

.tc-sc-ico {
  border: 1px solid var(--admin-border);
  background: var(--admin-card-bg);
  width: 24px;
  height: 21px;
  color: var(--admin-primary);
  border-radius: var(--tc-radius-sm);
  cursor: pointer;
  justify-content: center;
  align-items: center;
  margin-left: auto;
  padding: 0;
  display: inline-flex;
}

.tc-sc-col--der .tc-sc-ico {
  margin-left: 0;
  margin-right: auto;
}

.tc-sc-ico:hover {
  background: var(--admin-table-hover);
}

.tc-sc-ico--mal {
  color: var(--tc-danger);
}

.tc-sc-cab-acc button {
  align-items: center;
  display: inline-flex;
}

.tc-sc-cab-mal {
  color: #fca5a5;
}

.tc-sc-cab-mal:hover {
  color: #fff;
  background: #f8717140;
}

.tc-sc-cab-sep {
  background: #ffffff40;
  align-self: stretch;
  width: 1px;
  margin: 0 3px;
}

.tc-sc-rol {
  letter-spacing: .02em;
  vertical-align: 1px;
  border-radius: 3px;
  padding: 0 5px;
  font-size: 10px;
  font-weight: 600;
  line-height: 15px;
  display: inline-block;
}

.tc-sc-rol--ali {
  color: var(--admin-text);
  background: #ffffffeb;
}

.tc-sc-rol--dis {
  color: #ffffffeb;
  background: #ffffff2e;
}

.tc-sc-rol--ind {
  color: #ffffffb3;
  background: none;
  border: 1px dashed #ffffff73;
  font-weight: 400;
}

.tc-sc-tijera {
  cursor: pointer;
  pointer-events: auto;
}

.tc-sc-tijera circle {
  fill: var(--admin-card-bg);
  stroke: var(--tc-danger);
  stroke-width: 1.5px;
}

.tc-sc-tijera svg {
  color: var(--tc-danger);
  overflow: visible;
}

.tc-sc-tijera:hover circle {
  fill: var(--tc-danger);
}

.tc-sc-tijera:hover svg {
  color: #fff;
}

.tc-sc-manguito {
  pointer-events: none;
}

.tc-sc-manguito rect {
  fill: #ffffff9e;
  stroke: #0f172a73;
  stroke-width: 1px;
}

.tc-sc-manguito line {
  stroke: #475569d9;
  stroke-width: 1.6px;
  stroke-linecap: round;
}

.tc-emp-panel--foco {
  border-left: 3px solid var(--admin-primary);
  border-top: 1px solid var(--admin-border);
  padding: var(--tc-space-2) var(--tc-space-3);
  border-radius: var(--tc-radius-sm) var(--tc-radius-sm) 0 0;
  box-shadow: 0 -6px 16px -10px #0f172a59;
}

.tc-emp-nota {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-emp-vacio {
  align-items: center;
  gap: var(--tc-space-2);
  padding: var(--tc-space-5) var(--tc-space-3);
  color: var(--admin-text-muted, #64748b);
  text-align: center;
  flex-direction: column;
  display: flex;
}

.tc-emp-vacio p {
  font-size: var(--tc-text-sm);
  margin: 0;
}

.tc-sc-buffer-vista {
  opacity: .85;
  font-weight: 400;
}

.tc-sc-fila {
  transition: background-color var(--tc-transicion) var(--tc-curva);
}

.tc-sc-fila:hover {
  background: var(--admin-table-hover);
}

.tc-sc-fila.tc-sc-hl {
  background: var(--tc-info-bg);
}

.tc-sc-pill {
  transition: transform var(--tc-transicion) var(--tc-curva), box-shadow var(--tc-transicion) var(--tc-curva);
}

.tc-sc-fila:hover .tc-sc-pill {
  transform: scale(1.14);
  box-shadow: 0 2px 6px #0f172a47;
}

.tc-sc-pill:active {
  transform: scale(.94);
}

.tc-sc-chips {
  transition: transform var(--tc-transicion) var(--tc-curva);
}

.tc-sc-chips:hover {
  transform: scale(1.06);
}

.tc-sc-ico, .tc-sc-cab-acc button {
  transition: transform var(--tc-transicion) var(--tc-curva), background-color var(--tc-transicion) var(--tc-curva);
}

.tc-sc-ico:hover, .tc-sc-cab-acc button:hover:not(:disabled) {
  transform: scale(1.15);
}

.tc-sc-ico:active, .tc-sc-cab-acc button:active:not(:disabled) {
  transform: scale(.92);
}

.tc-sc-ico:disabled, .tc-sc-cab-acc button:disabled {
  opacity: .4;
  cursor: not-allowed;
  transform: none;
}

.tc-sc-tijera-cuerpo, .tc-sc-manguito-cuerpo {
  transform-box: fill-box;
  transform-origin: center;
  transition: scale var(--tc-transicion) var(--tc-curva);
}

.tc-sc-tijera:hover .tc-sc-tijera-cuerpo {
  scale: 1.2;
}

.tc-sc-tijera:active .tc-sc-tijera-cuerpo {
  scale: .92;
}

.tc-sc-conexiones g path[stroke^="url"] {
  transition: stroke-width var(--tc-transicion) var(--tc-curva);
}

.tc-sc-conexiones g.tc-sc-hl path[stroke^="url"] {
  stroke-width: 7px;
}

.tc-sc-conexiones g.tc-sc-hl .tc-sc-manguito-cuerpo {
  scale: 1.15;
}

@media (prefers-reduced-motion: reduce) {
  .tc-sc-fila, .tc-sc-pill, .tc-sc-chips, .tc-sc-ico, .tc-sc-cab-acc button, .tc-sc-tijera, .tc-sc-conexiones g path[stroke^="url"] {
    transition: none;
  }

  .tc-sc-fila:hover .tc-sc-pill, .tc-sc-chips:hover, .tc-sc-ico:hover, .tc-sc-cab-acc button:hover:not(:disabled) {
    transform: none;
  }

  .tc-sc-tijera-cuerpo, .tc-sc-manguito-cuerpo {
    transition: none;
  }

  .tc-sc-tijera:hover .tc-sc-tijera-cuerpo {
    scale: 1;
  }

  :root {
    --tc-transicion: 0s;
    --tc-hover-escala-ico: 1;
    --tc-hover-lift: 0px;
    --tc-press-escala: 1;
  }

  .admin-modal-card, .admin-modal-floating, .smartolt-modal, .usuarios-permissions-modal, .admin-sidebar-personalize-panel, .tc-onu-dropdown, .tc-onu-status-dot, .tc-onu-status-hero-dot, .tc-onu-signal-footer-dot, .tc-pulse-dot {
    animation: none;
  }

  .login-loading-dot {
    animation: 1.2s ease-in-out infinite loginPulseSuave;
  }
}

@keyframes loginPulseSuave {
  0%, 100% {
    opacity: .35;
  }

  50% {
    opacity: 1;
  }
}

.tc-toast-pila {
  top: var(--tc-space-4);
  right: var(--tc-space-4);
  z-index: 9999;
  gap: var(--tc-space-2);
  pointer-events: none;
  flex-direction: column;
  display: flex;
  position: fixed;
}

.tc-toast-slot {
  pointer-events: auto;
}

.tc-toast {
  border-radius: var(--tc-radius-lg);
  border: 1px solid;
  align-items: flex-start;
  gap: 10px;
  min-width: 280px;
  max-width: 400px;
  padding: 12px 14px 10px;
  animation: .35s toastEntrada;
  display: flex;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 16px #00000014, 0 1px 4px #0000000a;
}

.tc-toast--saliendo {
  animation: .35s forwards toastSalida;
}

.tc-toast-icono {
  flex-shrink: 0;
  margin-top: 1px;
}

.tc-toast-mensaje {
  font-size: var(--tc-text-sm);
  flex: 1;
  font-weight: 500;
  line-height: 1.4;
}

.tc-toast-cerrar {
  cursor: pointer;
  color: inherit;
  opacity: .5;
  background: none;
  border: none;
  flex-shrink: 0;
  margin-top: -1px;
  padding: 2px;
  transition: opacity .15s;
}

.tc-toast-cerrar:hover {
  opacity: 1;
}

.tc-toast-accion {
  font-size: var(--tc-text-sm);
  color: inherit;
  flex-shrink: 0;
  font-weight: 700;
  text-decoration: underline;
}

.tc-toast-barra {
  border-radius: 0 0 0 var(--tc-radius-lg);
  opacity: .6;
  height: 3px;
  transition: width 50ms linear;
  position: absolute;
  bottom: 0;
  left: 0;
}

.tc-toast--exito {
  background: var(--tc-success-bg);
  color: var(--tc-success-text);
  border-color: #16a34a40;
}

.tc-toast--exito .tc-toast-icono {
  color: var(--tc-success);
}

.tc-toast--exito .tc-toast-barra {
  background: var(--tc-success);
}

.tc-toast--error {
  background: var(--tc-danger-bg);
  color: var(--tc-danger-text);
  border-color: #ef444440;
}

.tc-toast--error .tc-toast-icono {
  color: var(--tc-danger);
}

.tc-toast--error .tc-toast-barra {
  background: var(--tc-danger);
}

.tc-toast--aviso {
  background: var(--tc-warning-bg);
  color: var(--tc-warning-text);
  border-color: #eab30859;
}

.tc-toast--aviso .tc-toast-icono {
  color: var(--tc-warning-text);
}

.tc-toast--aviso .tc-toast-barra {
  background: var(--tc-warning);
}

html:has(.admin-shell[data-theme="dark"]) .tc-toast--exito {
  color: #4ade80;
  background: #22c55e1f;
  border-color: #22c55e59;
}

html:has(.admin-shell[data-theme="dark"]) .tc-toast--error {
  color: #fca5a5;
  background: #ef44441f;
  border-color: #ef444459;
}

html:has(.admin-shell[data-theme="dark"]) .tc-toast--aviso {
  color: #facc15;
  background: #eab3081f;
  border-color: #eab30866;
}

html:has(.admin-shell[data-theme="dark"]) .tc-toast-icono {
  color: inherit;
}

html:has(.admin-shell[data-theme="dark"]) .tc-toast--exito .tc-toast-barra {
  background: #4ade80;
}

html:has(.admin-shell[data-theme="dark"]) .tc-toast--error .tc-toast-barra {
  background: #fca5a5;
}

html:has(.admin-shell[data-theme="dark"]) .tc-toast--aviso .tc-toast-barra {
  background: #facc15;
}

@keyframes toastEntrada {
  from {
    opacity: 0;
    transform: translateX(40px)scale(.95);
  }

  to {
    opacity: 1;
    transform: translateX(0)scale(1);
  }
}

@keyframes toastSalida {
  from {
    opacity: 1;
    transform: translateX(0)scale(1);
  }

  to {
    opacity: 0;
    transform: translateX(40px)scale(.95);
  }
}

.tc-destinos-entrega-lista {
  gap: var(--tc-space-2);
  grid-template-columns: repeat(auto-fill, minmax(260px, max-content));
  display: grid;
}

.tc-destinos-entrega-item {
  align-items: center;
  gap: var(--tc-space-2);
  padding: var(--tc-space-2) var(--tc-space-3);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  background: var(--admin-card-bg, #fff);
  display: flex;
}

.tc-destinos-entrega-item--activo {
  border-color: var(--tc-info);
  background: var(--tc-primary-bg);
}

.tc-destinos-entrega-icono {
  color: var(--admin-text-muted, #64748b);
  flex-shrink: 0;
}

.tc-destinos-entrega-info {
  flex: 1;
  min-width: 0;
}

.tc-destinos-entrega-nombre {
  align-items: center;
  gap: var(--tc-space-2);
  color: var(--admin-text, #1e293b);
  font-weight: 600;
  display: flex;
}

.tc-flex-icon-label {
  align-items: center;
  gap: var(--tc-space-2);
  display: flex;
}

.tc-disco-resumen {
  font-size: var(--tc-text-sm);
  margin-bottom: var(--tc-space-2);
  justify-content: space-between;
  align-items: baseline;
  display: flex;
}

.tc-disco-resumen strong {
  color: var(--admin-text, #1e293b);
}

.tc-respaldos-sujeto-apagado {
  margin-bottom: var(--tc-space-3);
}

.tc-form-section {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  padding-top: var(--tc-space-4);
}

.tc-form-section-title {
  margin: 0 0 var(--tc-space-3);
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--admin-text-muted, #64748b);
  font-weight: 700;
}

.tc-stack {
  gap: var(--tc-space-4);
  flex-direction: column;
  display: flex;
}

.tc-stack--tight {
  gap: var(--tc-space-3);
}

.tc-stack--sm {
  gap: var(--tc-space-2);
}

.tc-row-end {
  justify-content: flex-end;
  display: flex;
}

.tc-row-wrap {
  gap: var(--tc-space-5);
  flex-wrap: wrap;
  display: flex;
}

.tc-mt-4 {
  margin-top: var(--tc-space-4);
}

.tc-mb-0 {
  margin-bottom: 0;
}

.tc-bloque-cargando {
  text-align: center;
  padding: var(--tc-space-6) 0;
}

.tc-onus-widgets {
  gap: var(--tc-space-4);
  margin-bottom: var(--tc-space-5);
  grid-template-columns: 1fr;
  display: grid;
}

@media (min-width: 1100px) {
  .tc-onus-widgets {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 700px) and (max-width: 1099px) {
  .tc-onus-widgets {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.tc-onus-widget {
  min-width: 0;
}

.tc-onus-widget .tc-card-head-title {
  margin: 0;
}

.tc-onus-widget-titulo {
  justify-content: space-between;
  align-items: baseline;
  gap: var(--tc-space-2);
  letter-spacing: .01em;
  color: var(--admin-text, #1e293b);
  text-transform: none;
  font-size: .8125rem;
  font-weight: 700;
  display: flex;
}

.tc-onus-widget-nota {
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--admin-text-muted, #64748b);
  white-space: nowrap;
  font-size: .625rem;
  font-weight: 400;
}

.tc-onus-widget-hero {
  margin-bottom: var(--tc-space-3);
  align-items: center;
  gap: 10px;
  display: flex;
}

.tc-onus-widget-ico {
  border-radius: var(--tc-radius-sm);
  background: var(--admin-bg, #f1f5f9);
  width: 34px;
  height: 34px;
  color: var(--admin-text-muted, #64748b);
  transition: transform var(--tc-transicion) var(--tc-curva);
  flex: none;
  justify-content: center;
  align-items: center;
  display: inline-flex;
}

@media (hover: hover) and (pointer: fine) {
  .tc-onus-widget:hover .tc-onus-widget-ico {
    transform: scale(var(--tc-hover-escala-ico));
  }
}

.tc-onus-widget-hero-tx {
  min-width: 0;
}

.tc-onus-widget-total {
  color: var(--admin-text, #1e293b);
  font-variant-numeric: tabular-nums;
  font-size: 1.5625rem;
  font-weight: 600;
  line-height: 1;
  display: block;
}

.tc-onus-widget-total-det {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin-top: 3px;
  line-height: 1.35;
  display: block;
}

.tc-onus-widget-rejilla {
  padding-top: var(--tc-space-2);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  grid-auto-columns: minmax(0, 1fr);
  grid-auto-flow: column;
  gap: 6px;
  display: grid;
}

.tc-onus-celda {
  border-radius: var(--tc-radius-sm);
  text-align: left;
  cursor: pointer;
  transition: border-color var(--tc-transicion) var(--tc-curva);
  border: 1px solid #0000;
  padding: 8px 6px;
}

.tc-onus-celda:focus-visible {
  outline: 2px solid var(--tc-primary);
  outline-offset: 1px;
}

@media (hover: hover) and (pointer: fine) {
  .tc-onus-celda:hover {
    border-color: currentColor;
  }
}

.tc-onus-celda--activa {
  border-color: currentColor;
  box-shadow: inset 0 0 0 2px;
}

.tc-onus-celda--activa .tc-onus-celda-lbl {
  color: currentColor;
  font-weight: 600;
}

.tc-onus-celda-cabeza {
  align-items: center;
  gap: 6px;
  display: flex;
}

.tc-onus-celda-ico {
  transition: transform var(--tc-transicion) var(--tc-curva);
  flex: none;
  display: inline-flex;
}

@media (hover: hover) and (pointer: fine) {
  .tc-onus-celda:hover .tc-onus-celda-ico {
    transform: scale(var(--tc-hover-escala-ico));
  }
}

.tc-onus-celda-num {
  font-variant-numeric: tabular-nums;
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1;
}

.tc-onus-celda-lbl {
  overflow-wrap: anywhere;
  min-height: 2.6em;
  color: var(--admin-text-muted, #64748b);
  margin-top: 4px;
  font-size: .6875rem;
  line-height: 1.3;
  display: block;
}

.tc-onus-celda--exito {
  background: var(--tc-success-bg);
  color: var(--tc-success);
}

.tc-onus-celda--peligro {
  background: var(--tc-danger-bg);
  color: var(--tc-danger);
}

.tc-onus-celda--aviso {
  background: var(--tc-warning-bg);
  color: var(--tc-warning);
}

.tc-onus-celda--violeta {
  background: var(--tc-violet-bg);
  color: var(--tc-violet);
}

.tc-onus-celda--gris {
  background: var(--admin-bg, #f1f5f9);
  color: var(--tc-slate);
}

.tc-onus-celda--info {
  background: var(--tc-info-bg);
  color: var(--tc-info);
}

.tc-onus-celda--senal-aviso {
  --tc-onus-senal: #a16207;
}

.tc-onus-celda--senal-peligro {
  --tc-onus-senal: #dc2626;
}

.admin-shell[data-theme="dark"] .tc-onus-celda--senal-aviso {
  --tc-onus-senal: #facc15;
}

.admin-shell[data-theme="dark"] .tc-onus-celda--senal-peligro {
  --tc-onus-senal: #f87171;
}

.tc-onus-celda--senal-aviso, .tc-onus-celda--senal-peligro {
  color: var(--tc-onus-senal);
  background: none;
  border-color: currentColor;
}

.tc-sc-plegar {
  border-radius: var(--tc-radius-sm);
  width: 20px;
  height: 20px;
  color: var(--admin-text-muted);
  cursor: pointer;
  background: none;
  border: none;
  justify-content: center;
  align-items: center;
  padding: 0;
  display: inline-flex;
}

.tc-sc-plegar:hover {
  background: var(--admin-table-hover);
  color: var(--admin-text);
}

.tc-sc-tira {
  flex-wrap: wrap;
  gap: 3px;
  padding: 5px 8px 7px;
  display: flex;
}

.tc-sc-seg {
  border: 1px dashed var(--admin-border);
  border-radius: var(--tc-radius-sm);
  font-variant-numeric: tabular-nums;
  min-width: 26px;
  height: 22px;
  color: var(--admin-text-muted);
  cursor: pointer;
  background: none;
  justify-content: center;
  align-items: center;
  padding: 0 4px 3px;
  font-size: .6875rem;
  display: inline-flex;
  position: relative;
}

.tc-sc-seg--ocup {
  border-style: solid;
  border-color: var(--admin-text-muted);
  color: var(--admin-text);
}

.tc-sc-seg--sel {
  outline: 2px solid var(--tc-warning);
  outline-offset: 1px;
}

.tc-sc-seg:hover {
  background: var(--admin-table-hover);
}

.tc-sc-seg:focus-visible {
  outline: 2px solid var(--tc-warning);
  outline-offset: 1px;
}

.tc-sc-seg-bar {
  background: var(--sc-destino, transparent);
  border-radius: 2px;
  height: 3px;
  position: absolute;
  bottom: 2px;
  left: 3px;
  right: 3px;
}

.tc-sc-seg:not(.tc-sc-seg--ocup) .tc-sc-seg-bar {
  background: none;
}

.tc-sc-estado {
  background: var(--sc-estado, transparent);
  box-shadow: 0 0 0 1px #0f172a40;
}

.tc-sc-incoh {
  color: var(--tc-alerta-graf);
  flex: none;
  align-items: center;
  display: inline-flex;
}

.tc-sc-cab-incoh {
  color: var(--tc-alerta-graf);
  align-items: center;
  gap: 3px;
  font-size: 10px;
  display: inline-flex;
}

.tc-setup-nav-badge {
  font-size: var(--tc-text-xs);
  background: color-mix(in srgb, var(--tc-primary) 25%, transparent);
  color: color-mix(in srgb, var(--tc-info) 55%, #fff);
  border-radius: 999px;
  flex-shrink: 0;
  padding: .05rem .4rem;
  font-weight: 600;
}

.tc-setup-lista {
  gap: var(--tc-space-2);
  flex-direction: column;
  display: flex;
}

.tc-setup-item {
  align-items: flex-start;
  gap: var(--tc-space-3);
  padding: var(--tc-space-3) var(--tc-space-4);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  background: var(--admin-card-bg, #fff);
  display: flex;
}

.tc-setup-item--ok {
  border-color: color-mix(in srgb, var(--tc-success) 35%, transparent);
}

.tc-setup-item-ico {
  flex-shrink: 0;
  margin-top: 1px;
  display: flex;
}

.tc-setup-item-ico--ok {
  color: var(--tc-success);
}

.tc-setup-item-ico--pendiente {
  color: var(--admin-text-muted, #64748b);
}

.tc-setup-item-cuerpo {
  flex: 1;
  min-width: 0;
}

.tc-setup-item-titulo {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  align-items: center;
  gap: var(--tc-space-2);
  margin: 0;
  font-weight: 600;
  display: flex;
}

.tc-setup-item--opcional {
  border-style: dashed;
  border-color: var(--admin-text-muted, #64748b);
  opacity: .85;
  background: none;
}

.tc-setup-item-desc {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: .15rem 0 0;
}

.tc-setup-item-accion {
  flex-shrink: 0;
  align-self: center;
}

.tc-setup-progreso {
  align-items: center;
  gap: var(--tc-space-3);
  margin-bottom: var(--tc-space-4);
  display: flex;
}

.tc-setup-progreso-texto {
  font-size: var(--tc-text-sm);
  color: var(--admin-text, #1e293b);
  flex-shrink: 0;
  font-weight: 600;
}

.tc-setup-progreso-barra {
  flex: 1;
}

.tc-setup-seccion-titulo {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .04em;
  margin: var(--tc-space-5) 0 var(--tc-space-2);
  font-weight: 600;
}

.tc-ciclo-hitos {
  gap: var(--tc-space-2, .5rem);
  margin: var(--tc-space-3, .75rem) 0;
  grid-template-columns: repeat(3, 1fr);
  display: grid;
}

.tc-ciclo-hito {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  padding: var(--tc-space-3, .75rem);
}

.tc-ciclo-hito-k {
  font-size: var(--tc-text-xs, .75rem);
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 800;
}

.tc-ciclo-hito-v {
  font-size: var(--tc-text-base, 1rem);
  margin-top: 2px;
  font-weight: 700;
}

.tc-ciclo-hito-s {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  margin-top: 1px;
}

.tc-ciclo-hito--gen {
  background: var(--tc-success-bg, #f0fdf4);
}

.tc-ciclo-hito--gen .tc-ciclo-hito-k, .tc-ciclo-hito--gen .tc-ciclo-hito-v {
  color: var(--tc-success-text, #15803d);
}

.tc-ciclo-hito--ven {
  background: var(--tc-orange-bg, #fff7ed);
}

.tc-ciclo-hito--ven .tc-ciclo-hito-k {
  color: var(--tc-orange-text, #9a3412);
}

.tc-ciclo-hito--ven .tc-ciclo-hito-v {
  color: var(--tc-orange, #ea580c);
}

.tc-ciclo-hito--cor {
  background: var(--tc-danger-bg, #fef2f2);
}

.tc-ciclo-hito--cor .tc-ciclo-hito-k, .tc-ciclo-hito--cor .tc-ciclo-hito-v {
  color: var(--tc-danger-text, #b91c1c);
}

.tc-ciclo-recordatorios-row {
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  margin: var(--tc-space-3, .75rem) 0 var(--tc-space-5, 1.25rem);
  padding: var(--tc-space-3, .75rem) 0;
  border-top: 1px dashed var(--admin-border, #e2e8f0);
  border-bottom: 1px dashed var(--admin-border, #e2e8f0);
  flex-wrap: wrap;
  display: flex;
}

.tc-ciclo-pill {
  background: var(--tc-warning-bg, #fffbeb);
  color: var(--tc-warning-text, #b45309);
  font-size: var(--tc-text-xs, .75rem);
  border-radius: 20px;
  align-items: center;
  gap: 6px;
  padding: 2px 10px;
  font-weight: 600;
  display: inline-flex;
}

.tc-ciclo-pill-n {
  background: var(--tc-warning-text, #b45309);
  color: #fff;
  border-radius: 20px;
  justify-content: center;
  align-items: center;
  min-width: 16px;
  height: 16px;
  font-size: .65rem;
  font-weight: 800;
  display: inline-flex;
}

.tc-ciclo-pill--neutro {
  background: var(--admin-bg, #f8fafc);
  color: var(--admin-text-muted, #64748b);
}

.tc-ciclo-corte {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  padding: var(--tc-space-3, .75rem);
  background: var(--admin-bg, #f8fafc);
}

.tc-ciclo-corte-efecto {
  margin-top: var(--tc-space-2, .5rem);
  padding-top: var(--tc-space-2, .5rem);
  border-top: 1px dashed var(--admin-border, #e2e8f0);
  font-size: var(--tc-text-sm, .875rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-ciclo-corte-efecto strong {
  color: var(--tc-danger-text, #b91c1c);
}

.tc-ciclo-matriz {
  border-collapse: collapse;
  width: 100%;
  font-size: var(--tc-text-sm, .875rem);
}

.tc-ciclo-matriz tbody tr:nth-child(2n) {
  background: var(--admin-bg, #f8fafc);
}

.tc-ciclo-matriz th, .tc-ciclo-matriz td {
  padding: var(--tc-space-2, .5rem);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  text-align: left;
}

.tc-ciclo-matriz th {
  color: var(--admin-text-muted, #64748b);
  font-weight: 700;
  font-size: var(--tc-text-xs, .75rem);
  text-transform: uppercase;
  letter-spacing: .05em;
}

.tc-ciclo-matriz th.tc-ciclo-col-canal, .tc-ciclo-matriz td.tc-ciclo-col-canal {
  text-align: center;
  width: 92px;
}

.tc-ciclo-matriz td.tc-ciclo-col-canal label {
  margin: 0 auto;
  display: inline-flex;
}

.tc-ciclo-matriz-wrap {
  margin-bottom: 0;
  overflow-x: auto;
}

.tc-ciclo-matriz tbody tr:last-child td {
  border-bottom: none;
}

.tc-ciclo-col-apagada {
  opacity: .35;
  transition: opacity .18s;
}

.tc-ciclo-rec {
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  padding: var(--tc-space-2, .5rem) var(--tc-space-3, .75rem);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  margin-bottom: 6px;
  display: flex;
}

.tc-ciclo-rec-n {
  background: var(--tc-warning-bg, #fffbeb);
  width: 22px;
  height: 22px;
  color: var(--tc-warning-text, #b45309);
  font-size: var(--tc-text-xs, .75rem);
  border-radius: 7px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  font-weight: 800;
  display: inline-flex;
}

.tc-ciclo-rec-txt {
  flex-wrap: wrap;
  flex: 1;
  align-items: center;
  gap: 6px;
  display: flex;
}

.tc-ciclo-rec-canales {
  align-items: center;
  gap: var(--tc-space-3, .75rem);
  display: flex;
}

.tc-ciclo-rec-canal {
  flex-direction: column;
  align-items: center;
  gap: 2px;
  display: flex;
}

.tc-ciclo-rec-canal span {
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: .58rem;
  font-weight: 700;
}

@media (max-width: 640px) {
  .tc-ciclo-hitos {
    grid-template-columns: 1fr;
  }
}

.tc-form-label-mini {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-right: 2px;
  font-weight: 700;
}

.tc-ciclo-bloque-full {
  grid-column: 1 / -1;
  margin: 0;
}

.tc-ciclo-bloque-full + .tc-ciclo-bloque-full {
  margin-top: calc(var(--tc-space-2, .5rem) * -1);
}

.tc-ciclo-subtitulo {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .04em;
  margin: var(--tc-space-3, .75rem) 0 var(--tc-space-2, .5rem);
  font-weight: 700;
}

.tc-ciclo-bloque-full:last-child {
  padding-bottom: var(--tc-space-5, 2rem);
}

.tc-ciclo-wrap {
  width: 100%;
}

.tc-ciclo-panel {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  padding: var(--tc-space-4, 1rem);
  background: var(--admin-card-bg, #fff);
}

.tc-ciclo-panel-titulo {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin: 0 0 var(--tc-space-3, .75rem);
  padding-bottom: var(--tc-space-2, .5rem);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  font-weight: 700;
}

.tc-ciclo-secciones {
  gap: var(--tc-space-4, 1rem);
  margin-top: var(--tc-space-4, 1rem);
  grid-template-columns: repeat(auto-fit, minmax(min(460px, 100%), 1fr));
  align-items: start;
  display: grid;
}

.tc-ciclo-campo-corto {
  max-width: 420px;
}

.tc-ciclo-rec {
  align-items: center;
  gap: var(--tc-space-3, .75rem);
  padding: var(--tc-space-2, .5rem) var(--tc-space-3, .75rem);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  grid-template-columns: 26px 44px minmax(150px, 190px) 118px 1fr;
  min-height: 52px;
  margin-bottom: 6px;
  display: grid;
}

.tc-ciclo-rec-txt {
  display: contents;
}

.tc-ciclo-rec-fecha {
  font-size: var(--tc-text-sm, .875rem);
  color: var(--admin-text-muted, #64748b);
  white-space: nowrap;
}

.tc-ciclo-rec-estado {
  font-size: var(--tc-text-sm, .875rem);
  color: var(--admin-text-muted, #94a3b8);
  grid-column: 3 / -1;
}

.tc-ciclo-rec-n--off {
  background: var(--admin-bg, #f1f5f9);
  color: var(--admin-text-muted, #94a3b8);
}

.tc-ciclo-matriz th.tc-ciclo-col-canal {
  text-align: center;
}

.tc-ciclo-matriz td:first-child, .tc-ciclo-matriz th:first-child {
  padding-left: 0;
}

.tc-ciclo-wrap .solicitud-wizard-field-input, .tc-ciclo-wrap .tc-form-field > div {
  max-width: 300px;
}

.tc-ciclo-campo-corto .tc-form-field > div, .tc-ciclo-campo-corto .solicitud-wizard-field-input {
  max-width: 420px;
}

.tc-ciclo-familias {
  gap: var(--tc-space-4, 1rem);
  grid-template-columns: minmax(min(340px, 100%), 1fr);
  align-items: start;
  display: grid;
}

@media (min-width: 1100px) {
  .tc-ciclo-familias {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }

  .tc-ciclo-familia--modelo {
    grid-area: 1 / 1;
  }

  .tc-ciclo-familia--corte {
    grid-area: 2 / 1;
  }

  .tc-ciclo-familia--emision {
    grid-area: 1 / 2 / span 2;
  }
}

.tc-ciclo-familia {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  padding: var(--tc-space-3, .75rem) var(--tc-space-4, 1rem) var(--tc-space-4, 1rem);
}

.tc-ciclo-familia-titulo {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin: 0 0 var(--tc-space-3, .75rem);
  font-weight: 700;
}

.tc-ciclo-familia .solicitud-wizard-field, .tc-ciclo-familia .tc-form-field {
  margin-bottom: var(--tc-space-3, .75rem);
}

.tc-ciclo-familia > :last-child {
  margin-bottom: 0;
}

.tc-ciclo-familia--corte {
  min-width: 0;
}

.tc-ciclo-familia--corte .tc-ciclo-corte {
  background: none;
  border: none;
  padding: 0;
}

.tc-ciclo-fila-regla {
  gap: var(--tc-space-4, 1rem);
  padding-bottom: var(--tc-space-3, .75rem);
  margin-bottom: var(--tc-space-3, .75rem);
  border-bottom: 1px dashed var(--admin-border, #e2e8f0);
  flex-wrap: wrap;
  align-items: flex-end;
  display: flex;
}

.tc-ciclo-rec {
  gap: var(--tc-space-2, .5rem);
  grid-template-columns: 26px 40px minmax(116px, 146px) 96px auto;
}

.tc-ciclo-rec-canales, .tc-ciclo-rec > div:last-child {
  justify-content: flex-end;
  flex-wrap: nowrap !important;
}

.tc-ciclo-rec-canales button, .tc-ciclo-rec > div:last-child > button {
  white-space: nowrap;
  padding: 3px 8px;
}

@media (max-width: 640px) {
  .tc-ciclo-rec {
    grid-template-columns: 26px 40px minmax(0, 1fr);
    row-gap: 6px;
  }

  .tc-ciclo-rec > :nth-child(3) {
    grid-area: 2 / 1 / auto / -1;
  }

  .tc-ciclo-rec > :nth-child(4) {
    grid-area: 1 / 3;
  }

  .tc-ciclo-rec > div:nth-child(5) {
    grid-area: 3 / 1 / auto / -1;
    justify-content: flex-start;
    flex-wrap: wrap !important;
  }
}

.tc-ciclo-secciones {
  align-items: stretch;
}

.tc-ciclo-prorrateo {
  align-items: flex-start;
  gap: var(--tc-space-3, .75rem);
  margin-top: var(--tc-space-4, 1rem);
  padding: var(--tc-space-3, .75rem);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--admin-bg, #f8fafc);
  cursor: pointer;
  transition: border-color .15s, background .15s;
  display: flex;
}

.tc-ciclo-prorrateo:hover {
  border-color: var(--admin-primary, #2563eb);
}

.tc-ciclo-prorrateo--on {
  border-color: var(--admin-primary, #2563eb);
  background: var(--tc-info-bg, #eff6ff);
}

.tc-ciclo-prorrateo-txt {
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  display: flex;
}

.tc-ciclo-prorrateo-tit {
  font-size: var(--tc-text-sm, .875rem);
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-ciclo-prorrateo-hint {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  line-height: 1.45;
}

.tc-ciclo-prorrateo-efecto {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--tc-info-text, #1e40af);
  margin-top: 2px;
  font-weight: 600;
}

.tc-ciclo-diapago {
  align-items: center;
  gap: var(--tc-space-3, .75rem);
  padding: var(--tc-space-3, .75rem) var(--tc-space-4, 1rem);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--admin-card-bg, #fff);
  margin-bottom: var(--tc-space-4, 1rem);
  display: flex;
}

.tc-ciclo-diapago-num {
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--tc-info-bg, #eff6ff);
  width: 52px;
  height: 52px;
  color: var(--tc-info-text, #1e40af);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
  display: flex;
}

.tc-ciclo-diapago-txt {
  flex-direction: column;
  flex: 1;
  gap: 2px;
  min-width: 0;
  display: flex;
}

.tc-ciclo-diapago-tit {
  font-size: var(--tc-text-base, 1rem);
  color: var(--admin-text, #1e293b);
  font-weight: 700;
}

.tc-ciclo-diapago-sub {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-ecf {
  gap: var(--tc-space-4, 1rem);
  flex-direction: column;
  display: flex;
}

.tc-ecf-opt {
  align-items: center;
  gap: var(--tc-space-4, 1rem);
  padding: var(--tc-space-3, .75rem) var(--tc-space-4, 1rem);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--admin-bg, #f8fafc);
  cursor: pointer;
  display: flex;
}

.tc-ecf-opt--on {
  border-color: var(--admin-primary, #2563eb);
  background: var(--tc-info-bg, #eff6ff);
}

.tc-ecf-opt-txt {
  flex-direction: column;
  flex: 1;
  gap: 2px;
  min-width: 0;
  display: flex;
}

.tc-ecf-opt-tit {
  font-size: var(--tc-text-sm, .875rem);
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-ecf-opt-sub {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-ecf-cuando {
  gap: var(--tc-space-2, .5rem);
  padding-left: var(--tc-space-4, 1rem);
  border-left: 2px solid var(--admin-border, #e2e8f0);
  flex-direction: column;
  display: flex;
}

.tc-ecf-cuando-lbl {
  font-size: var(--tc-text-sm, .875rem);
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-ecf-cuando-campo {
  max-width: 300px;
}

.tc-ecf-cuando-hint {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
}

.admin-shell[data-theme="dark"] .tc-ciclo-wrap, .admin-shell[data-theme="dark"] .tc-ciclo-diapago, .admin-shell[data-theme="dark"] .tc-ecf {
  --tc-info-bg: #3b82f62e;
  --tc-info-text: #93c5fd;
  --tc-success-bg: #22c55e29;
  --tc-success-text: #86efac;
  --tc-danger-bg: #ef444429;
  --tc-danger-text: #fca5a5;
  --tc-warning-bg: #eab30829;
  --tc-warning-text: #fde047;
  --tc-orange-bg: #ea580c29;
  --tc-orange-text: #fdba74;
  --tc-orange: #fb923c;
}

.admin-shell[data-theme="dark"] .tc-ciclo-prorrateo, .admin-shell[data-theme="dark"] .tc-ecf-opt {
  background: #ffffff0a;
}

.admin-shell[data-theme="dark"] .tc-ciclo-prorrateo--on, .admin-shell[data-theme="dark"] .tc-ecf-opt--on {
  background: #3b82f624;
}

.admin-shell[data-theme="dark"] .tc-ciclo-diapago-num {
  color: #93c5fd;
}

.admin-shell[data-theme="dark"] .tc-ciclo-matriz tbody tr:nth-child(2n) {
  background: #ffffff08;
}

.tc-red-banda {
  background: var(--admin-bg-subtle, #94a3b812);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-sm) var(--tc-radius-sm) 0 0;
  margin: -4px 0 0;
  padding: 14px 16px;
}

.tc-red-banda__head {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
  display: flex;
}

.tc-red-banda .tc-field-grid {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.tc-red-banda__titulo {
  letter-spacing: .02em;
  color: var(--admin-text, #0f172a);
  font-size: 13px;
  font-weight: 600;
}

.tc-red-areas {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  align-items: start;
  gap: 0;
  display: grid;
}

.tc-area {
  border-right: 1px solid var(--admin-border, #e2e8f0);
  min-width: 0;
  padding: 13px 18px 15px;
}

.tc-area .tc-field-grid {
  gap: .6rem 1.25rem;
}

.tc-area__titulo {
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--admin-text-muted, #64748b);
  align-items: center;
  gap: 7px;
  margin: 0 0 9px;
  font-size: 11px;
  font-weight: 700;
  display: flex;
}

.tc-area__titulo svg {
  opacity: .75;
  flex-shrink: 0;
}

.tc-area__cifra {
  letter-spacing: -.01em;
  color: var(--admin-text, #0f172a);
  font-variant-numeric: tabular-nums;
  margin: 0 0 3px;
  font-size: 21px;
  font-weight: 650;
  line-height: 1.15;
}

.tc-area__cifra-pie {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin: 0 0 11px;
}

.tc-area__nota {
  color: var(--admin-text-muted, #64748b);
  margin: 10px 0 0;
  font-size: 12px;
  line-height: 1.45;
}

.tc-area__vacio {
  color: var(--admin-text-muted, #64748b);
  margin: 2px 0 0;
  font-size: 13px;
  font-style: italic;
}

.tc-red-pie {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 13px 16px 2px;
  display: flex;
}

.tc-red-pie > :first-child {
  flex: auto;
  min-width: 0;
}

.tc-red-pie__fecha {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  flex: none;
  margin: 0;
}

.tc-red-areas > .tc-area:last-child {
  border-right-color: #0000;
}

@media (max-width: 640px) {
  .tc-area {
    border-right: none;
  }
}

.tc-palette-backdrop {
  z-index: 10001;
  background: #0f172a52;
  justify-content: center;
  align-items: flex-start;
  padding: 84px 1rem 1rem;
  animation: .14s ease-out tc-palette-fade;
  display: flex;
  position: fixed;
  inset: 0;
}

@keyframes tc-palette-fade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes tc-palette-pop {
  from {
    opacity: 0;
    transform: translateY(-8px)scale(.985);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.tc-palette-backdrop {
  --tc-palette-chip: #f1f5f9;
  --tc-palette-sutil: #f8fafc;
}

.tc-palette {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  width: min(640px, 92vw);
  max-height: min(480px, 100vh - 100px);
  box-shadow: var(--admin-shadow, 0 24px 64px -12px #0f172a47);
  border-radius: 18px;
  flex-direction: column;
  animation: .16s cubic-bezier(.2, .9, .3, 1) tc-palette-pop;
  display: flex;
  overflow: hidden;
}

.tc-palette-campo {
  flex-shrink: 0;
  align-items: center;
  gap: .8rem;
  height: 58px;
  padding: 0 1.1rem;
  display: flex;
}

.tc-palette-campo-icono {
  color: var(--admin-text-muted, #94a3b8);
  flex-shrink: 0;
}

html:has(.admin-shell[data-theme="dark"]) .tc-palette-ambito {
  --tc-info-text: #93c5fd;
}

.tc-palette-ambito {
  border-radius: var(--tc-radius-sm);
  background: var(--tc-info-bg, #dbeafe);
  color: var(--tc-info-text, #1e40af);
  font-size: var(--tc-text-xs);
  white-space: nowrap;
  flex-shrink: 0;
  align-items: center;
  gap: .35rem;
  padding: .25rem .35rem .25rem .5rem;
  font-weight: 600;
  display: inline-flex;
}

.tc-palette-ambito-quitar {
  color: inherit;
  cursor: pointer;
  opacity: .6;
  background: none;
  border: none;
  padding: 0;
  font-size: .95rem;
  line-height: 1;
}

.tc-palette-ambito-quitar:hover {
  opacity: 1;
}

.tc-palette-salida {
  border: none;
  border-top: 1px solid var(--admin-border, #eef2f6);
  width: 100%;
  font-family: inherit;
  font-size: var(--tc-text-xs);
  text-align: left;
  color: var(--admin-primary, #2563eb);
  cursor: pointer;
  background: none;
  border-radius: 0;
  margin-top: .15rem;
  padding: .55rem .7rem;
  display: block;
}

.tc-palette-salida:hover {
  background: var(--admin-table-hover, #f1f5f9);
}

.tc-palette-input {
  min-width: 0;
  box-shadow: none;
  color: var(--admin-text, #1e293b);
  background: none;
  border: none;
  outline: none;
  flex: 1;
  padding: 0;
  font-family: inherit;
  font-size: 1.05rem;
}

.tc-palette-input:focus, .tc-palette-input:focus-visible {
  box-shadow: none;
  border: none;
  outline: none;
}

.tc-palette-input::placeholder {
  color: var(--admin-text-muted, #94a3b8);
}

.tc-palette-esc {
  border-radius: var(--tc-radius-sm);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--tc-palette-sutil, #f8fafc);
  color: var(--admin-text-muted, #94a3b8);
  cursor: pointer;
  flex-shrink: 0;
  padding: .3rem .45rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .66rem;
  font-weight: 600;
  line-height: 1;
}

.tc-palette-sep {
  background: var(--admin-border, #eef2f6);
  flex-shrink: 0;
  height: 1px;
}

.tc-palette-resultados {
  flex: 1;
  min-height: 0;
  padding: .45rem;
  overflow-y: auto;
}

.tc-palette-grupo + .tc-palette-grupo {
  border-top: 1px solid var(--admin-border, #eef2f6);
  margin-top: .3rem;
  padding-top: .3rem;
}

.tc-palette-grupo-titulo {
  font-size: var(--tc-text-xs);
  letter-spacing: .085em;
  text-transform: uppercase;
  color: var(--admin-text-muted, #94a3b8);
  padding: .55rem .7rem .3rem;
  font-weight: 700;
}

.tc-palette-item {
  border-radius: var(--tc-radius);
  text-align: left;
  width: 100%;
  color: var(--admin-text, #1e293b);
  cursor: pointer;
  background: none;
  border: none;
  align-items: center;
  gap: .75rem;
  padding: .55rem .7rem;
  font-family: inherit;
  display: flex;
}

.tc-palette-item[data-activo="true"] {
  background: var(--tc-primary-bg, #eff6ff);
}

.tc-palette-item-icono {
  background: var(--tc-palette-chip, #f1f5f9);
  width: 30px;
  height: 30px;
  color: var(--admin-text-muted, #64748b);
  border-radius: 8px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
}

.tc-palette-item[data-activo="true"] .tc-palette-item-icono {
  background: var(--tc-info-bg, #dbeafe);
  color: var(--admin-primary, #2563eb);
}

.tc-palette-item-cuerpo {
  flex-direction: column;
  flex: 1;
  gap: 1px;
  min-width: 0;
  display: flex;
}

.tc-palette-item-titulo {
  font-size: var(--tc-text-md);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 550;
  overflow: hidden;
}

.tc-palette-item-sub {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.tc-palette-item-meta {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #94a3b8);
  flex-shrink: 0;
}

.tc-palette-item-enter {
  opacity: 0;
  color: var(--admin-primary, #2563eb);
  flex-shrink: 0;
}

.tc-palette-item[data-activo="true"] .tc-palette-item-enter {
  opacity: 1;
}

.tc-palette-item[data-activo="true"] .tc-palette-item-meta {
  color: var(--admin-primary, #2563eb);
}

.tc-palette-pie {
  border-top: 1px solid var(--admin-border, #eef2f6);
  background: var(--tc-palette-sutil, #fbfcfd);
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  flex-shrink: 0;
  align-items: center;
  gap: 1rem;
  padding: .5rem 1rem;
  display: flex;
}

.tc-palette-pie-item {
  align-items: center;
  gap: .3rem;
  display: inline-flex;
}

.tc-palette-tecla {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text-muted, #64748b);
  border-radius: 4px;
  padding: .2rem .3rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .62rem;
  font-style: normal;
  font-weight: 600;
  line-height: 1;
}

.tc-palette-pie-conteo {
  margin-left: auto;
}

.tc-palette-vacio {
  text-align: center;
  color: var(--admin-text-muted, #64748b);
  padding: 2.1rem 1.25rem;
}

.tc-palette-vacio-icono {
  background: var(--tc-palette-chip, #f1f5f9);
  width: 44px;
  height: 44px;
  color: var(--admin-text-muted, #94a3b8);
  border-radius: 12px;
  justify-content: center;
  align-items: center;
  margin: 0 auto .7rem;
  display: flex;
}

.tc-palette-vacio-titulo {
  font-size: var(--tc-text-md);
  color: var(--admin-text, #1e293b);
  margin-bottom: .2rem;
  font-weight: 600;
  display: block;
}

.tc-palette-vacio-ayuda {
  font-size: var(--tc-text-xs);
  display: block;
}

.tc-palette-cargando {
  text-align: center;
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #94a3b8);
  margin: 0;
  padding: .5rem 1rem;
}

@media (max-width: 768px) {
  .tc-palette-backdrop {
    padding: 4vh .75rem .75rem;
  }

  .tc-palette {
    max-height: 80vh;
  }

  .tc-palette-pie-item {
    display: none;
  }

  .tc-palette-pie-conteo {
    margin-left: 0;
  }
}

.tc-olt-hero {
  flex-flow: column;
  align-items: stretch;
  gap: 1.5rem;
}

.tc-olt-hero-zona {
  min-width: 0;
}

.admin-shell[data-theme="dark"] .tc-olt-hero, .admin-shell[data-theme="dark"] .tc-olt-resumen {
  --tc-primary-bg: #3b82f62e;
  --tc-info-bg: #3b82f62e;
  --tc-info-text: #93c5fd;
  --tc-success-bg: #22c55e29;
  --tc-success-text: #86efac;
  --tc-danger-bg: #ef444429;
  --tc-danger-text: #fca5a5;
  --tc-warning-bg: #eab30829;
  --tc-warning-text: #fde047;
  --tc-neutral-bg: #ffffff1a;
}

.tc-olt-hero-ident {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem 1.5rem;
  display: flex;
}

.tc-olt-hero-quien {
  flex: 26rem;
  gap: 1rem;
  min-width: 0;
  display: flex;
}

.tc-olt-hero-icono {
  background: var(--tc-primary-bg, #eef2ff);
  width: 52px;
  height: 52px;
  color: var(--admin-primary, #2563eb);
  border-radius: 13px;
  flex-shrink: 0;
  place-items: center;
  display: grid;
}

.tc-olt-hero-datos {
  flex-direction: column;
  gap: .4rem;
  min-width: 0;
  display: flex;
}

.tc-olt-hero-datos .tc-detail-hero-title h1 {
  font-size: 1.5rem;
}

.tc-olt-hero-ficha {
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
  flex-wrap: wrap;
  align-items: center;
  gap: .25rem 1rem;
  margin: 0;
  display: flex;
}

.tc-olt-hero-fuerte {
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-olt-hero-mono {
  font-family: var(--tc-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
  overflow-wrap: anywhere;
}

.tc-olt-hero-ip {
  align-items: center;
  gap: .4rem;
  display: inline-flex;
}

.tc-olt-hero-ip .tc-copyable-text {
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-olt-hero-zona-head {
  flex-wrap: wrap;
  align-items: center;
  gap: .6rem;
  margin-bottom: .9rem;
  display: flex;
}

.tc-olt-hero-zona-head .tc-hero-frescura {
  margin-top: 0;
}

.tc-olt-hero-zona-label {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--admin-text-hint, #94a3b8);
  margin: 0;
  font-weight: 700;
}

.tc-olt-hero-metricas {
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  align-items: start;
  gap: 1.1rem 2rem;
  display: grid;
}

.tc-olt-hero-metrica {
  flex-direction: column;
  gap: .4rem;
  min-width: 0;
  display: flex;
}

.tc-olt-hero-metrica-label {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  align-items: center;
  gap: .45rem;
  font-weight: 500;
  display: inline-flex;
}

.tc-olt-hero-valor {
  letter-spacing: -.01em;
  color: var(--admin-text, #1e293b);
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
  font-size: 1.65rem;
  font-weight: 700;
  line-height: 1.1;
}

.tc-olt-hero-valor--ok {
  color: var(--tc-success, #16a34a);
}

.tc-olt-hero-valor--warn {
  color: var(--tc-orange, #ea580c);
}

.tc-olt-hero-valor--danger {
  color: var(--tc-danger, #dc2626);
}

.tc-olt-hero-valor-unidad {
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
  margin-left: .4rem;
  font-weight: 600;
}

.tc-olt-hero-medidor {
  background: var(--tc-neutral-bg, #f1f5f9);
  border-radius: 999px;
  max-width: 16rem;
  height: 6px;
  display: block;
  overflow: hidden;
}

.tc-olt-hero-medidor-fill {
  background: var(--tc-success, #16a34a);
  border-radius: 999px;
  height: 100%;
  display: block;
}

.tc-olt-hero-medidor--warn .tc-olt-hero-medidor-fill {
  background: var(--tc-orange, #ea580c);
}

.tc-olt-hero-medidor--danger .tc-olt-hero-medidor-fill {
  background: var(--tc-danger, #dc2626);
}

.tc-olt-hero-fans {
  flex-wrap: wrap;
  gap: .35rem;
  display: flex;
}

.tc-olt-hero-fans .tc-chip {
  font-variant-numeric: tabular-nums;
}

.tc-olt-hero-metrica-sub {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.tc-olt-hero-metricas--vieja .tc-olt-hero-valor {
  color: var(--admin-text-muted, #64748b);
}

.tc-olt-hero-metricas--vieja .tc-olt-hero-medidor-fill {
  background: var(--admin-text-hint, #94a3b8);
}

@media (max-width: 640px) {
  .tc-detail-hero.tc-olt-hero {
    padding: 1.1rem;
  }

  .tc-olt-hero-icono {
    width: 40px;
    height: 40px;
  }
}

.tc-olt-graficos-barra {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1rem;
  display: flex;
}

.tc-olt-graficos-selector {
  align-items: center;
  gap: .6rem;
  margin-bottom: 1rem;
  display: flex;
}

.tc-olt-graficos-ver {
  text-transform: uppercase;
  letter-spacing: .02em;
  color: var(--admin-text-muted, #64748b);
  font-size: .72rem;
  font-weight: 600;
}

.tc-olt-graficos-combo {
  flex: 1;
  min-width: 0;
  max-width: 26rem;
}

.tc-olt-graficos-cargando {
  justify-content: center;
  align-items: center;
  min-height: 300px;
  display: flex;
}

.tc-olt-graficos-resumen {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  flex-wrap: wrap;
  align-items: baseline;
  gap: 1.5rem;
  margin-top: .85rem;
  padding-top: .85rem;
  display: flex;
}

.tc-olt-graficos-resumen-item {
  align-items: baseline;
  gap: .4rem;
  display: flex;
}

.tc-olt-graficos-resumen-etq {
  color: var(--admin-text-muted, #64748b);
  font-size: .75rem;
}

.tc-olt-graficos-resumen-val {
  color: var(--admin-text, #0f172a);
  font-variant-numeric: tabular-nums;
  font-size: .9375rem;
  font-weight: 700;
}

.tc-olt-graficos-objeto {
  color: var(--admin-text-muted, #64748b);
  margin-left: auto;
  font-size: .75rem;
}

.tc-olt-resumen-head {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1rem;
  display: flex;
}

.tc-olt-resumen-intro {
  font-size: var(--tc-text-base);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-olt-resumen {
  grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
  gap: 1.1rem;
  display: grid;
}

.tc-olt-resumen > .tc-card {
  margin-bottom: 0;
}

.tc-olt-dominio {
  flex-direction: column;
  gap: 1.1rem;
  display: flex;
}

.tc-olt-dominio-head {
  align-items: flex-start;
  gap: .75rem;
  display: flex;
}

.tc-olt-dominio-icono {
  background: var(--tc-primary-bg, #eef2ff);
  width: 34px;
  height: 34px;
  color: var(--admin-primary, #2563eb);
  border-radius: 9px;
  flex-shrink: 0;
  place-items: center;
  display: grid;
}

.tc-olt-dominio-titulo {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-size: .95rem;
  font-weight: 650;
}

.tc-olt-dominio-desc {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: .15rem 0 0;
}

.tc-olt-dominio .tc-field-grid {
  align-items: end;
  gap: .9rem 1.25rem;
}

.tc-olt-guardado {
  flex-direction: column;
  gap: .85rem;
  display: flex;
}

.tc-olt-guardado .tc-alert {
  margin-top: .15rem;
}

.tc-olt-guardado-fila {
  justify-content: space-between;
  align-items: flex-start;
  gap: .75rem;
  display: flex;
}

.tc-olt-guardado-que {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 600;
}

.tc-olt-guardado-det {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: .1rem 0 0;
}

.tc-dominio-panel {
  max-width: 56rem;
}

.tc-dominio-estado {
  align-items: center;
  gap: var(--tc-space-2);
  min-width: 0;
  display: flex;
}

.tc-dominio-estado-icono {
  color: var(--admin-text-muted, #64748b);
  flex: none;
  display: inline-flex;
}

.tc-dominio-estado-titulo {
  font-size: var(--tc-text-md);
  color: var(--admin-text, #1e293b);
  font-weight: 700;
}

.tc-dominio-datos {
  gap: var(--tc-space-4) var(--tc-space-5);
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  display: grid;
}

.tc-dominio-panel .tc-dominio-datos {
  padding: var(--tc-space-4) var(--tc-space-5);
}

.tc-dominio-datos .tc-field-value {
  font-size: 1.0625rem;
  font-weight: 700;
}

.tc-dominio-nota {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin-top: 2px;
  font-weight: 400;
  display: block;
}

.tc-dominio-valor--alerta {
  color: var(--tc-danger);
}

.tc-dominio-datos--detalle {
  border-top: 1px solid var(--admin-border, #e2e8f0);
}

.tc-dominio-aviso {
  padding: var(--tc-space-4) var(--tc-space-5) 0;
}

.tc-dominio-pie {
  padding: 0 var(--tc-space-5) var(--tc-space-4);
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-dominio-acciones {
  align-items: center;
  gap: var(--tc-space-2);
  padding: 0 var(--tc-space-5) var(--tc-space-4);
  flex-wrap: wrap;
  display: flex;
}

.tc-alert .tc-dominio-acciones {
  padding: var(--tc-space-3) 0 0;
}

.tc-olt-secreto {
  align-items: center;
  gap: .4rem;
  display: inline-flex;
}

.tc-olt-secreto-valor--mono {
  font-family: var(--tc-font-mono, ui-monospace, monospace);
}

.tc-olt-secreto-ojo {
  cursor: pointer;
  color: var(--admin-text-muted, #64748b);
  background: none;
  border: none;
  align-items: center;
  padding: .1rem;
  display: inline-flex;
}

.tc-olt-secreto-ojo:disabled {
  cursor: wait;
}

.tc-cambio-plan-comparativa {
  grid-template-columns: 1fr auto 1fr;
  align-items: stretch;
  gap: .75rem;
  margin-bottom: 1rem;
  display: grid;
}

.tc-cambio-plan-lado {
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  min-width: 0;
  padding: .85rem 1rem;
}

.tc-cambio-plan-lado--nuevo {
  background: var(--tc-info-bg, #eff6ff);
  border-color: var(--admin-border, #e2e8f0);
}

.tc-cambio-plan-rol {
  font-size: var(--tc-text-xs, .75rem);
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted, #64748b);
  margin-bottom: .3rem;
}

.tc-cambio-plan-nombre {
  color: var(--admin-text, #0f172a);
  word-break: break-word;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.25;
}

.tc-cambio-plan-precio {
  color: var(--admin-text, #0f172a);
  margin-top: .35rem;
  font-size: 1.35rem;
  font-weight: 700;
}

.tc-cambio-plan-velocidad {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  margin-top: .15rem;
}

.tc-cambio-plan-flecha {
  color: var(--admin-text-muted, #64748b);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex;
}

.tc-cambio-plan-lado--pendiente {
  border-style: dashed;
  flex-direction: column;
  display: flex;
}

.tc-cambio-plan-espera {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  flex: 1;
  align-items: center;
  margin-top: .35rem;
  display: flex;
}

@media (max-width: 640px) {
  .tc-cambio-plan-comparativa {
    grid-template-columns: 1fr;
  }

  .tc-cambio-plan-flecha {
    padding: .15rem 0;
    transform: rotate(90deg);
  }
}

.tc-red-form {
  gap: var(--tc-space-5, 1.25rem);
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  align-items: start;
  display: grid;
}

@media (max-width: 900px) {
  .tc-red-form {
    grid-template-columns: minmax(0, 1fr);
  }
}

.tc-red-form-campos {
  gap: var(--tc-space-5, 1.25rem);
  flex-direction: column;
  min-width: 0;
  display: flex;
}

.tc-red-form-grupo {
  gap: var(--tc-space-2, .5rem);
  flex-direction: column;
  display: flex;
}

.tc-red-form-grupo .tc-form-field {
  margin-bottom: 0;
}

.tc-red-form-grupo > .tc-segmented {
  align-self: flex-start;
}

.tc-red-form-opciones {
  gap: var(--tc-space-3, .75rem);
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  display: grid;
}

.tc-red-form-fila {
  gap: var(--tc-space-3, .75rem);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 48rem;
  display: grid;
}

.tc-red-form-fila--anchos {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 640px) {
  .tc-red-form-fila, .tc-red-form-fila--anchos {
    grid-template-columns: minmax(0, 1fr);
  }
}

.tc-red-form-fila .tc-form-field {
  margin-bottom: 0;
}

.tc-pppoe-config {
  max-width: 48rem;
}

.tc-red-form-resumen {
  gap: var(--tc-space-3, .75rem);
  padding: var(--tc-space-4, 1rem);
  background: var(--admin-bg, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 12px;
  flex-direction: column;
  display: flex;
  position: sticky;
  top: 0;
}

.tc-red-form-resumen .tc-form-section-label {
  margin: 0;
}

.tc-red-form-resumen-nombre {
  color: var(--admin-text, #0f172a);
  overflow-wrap: anywhere;
  margin: 0;
  font-size: 1.125rem;
  font-weight: 650;
}

.tc-red-form-identidad {
  gap: var(--tc-space-3, .75rem);
  padding: var(--tc-space-3, .75rem);
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 10px;
  align-items: flex-start;
  display: flex;
}

.tc-red-form-identidad p {
  margin: 0;
}

.tc-red-form-identidad-icono {
  width: 2rem;
  height: 2rem;
  color: var(--admin-primary, #2563eb);
  background: var(--admin-bg, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 8px;
  flex: none;
  place-items: center;
  display: grid;
}

.tc-red-form-identidad-titulo {
  color: var(--admin-text, #0f172a);
  font-weight: 600;
}

.tc-red-form-piezas {
  counter-reset: pieza;
  gap: var(--tc-space-2, .5rem);
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.tc-red-form-piezas li {
  counter-increment: pieza;
  column-gap: var(--tc-space-2, .5rem);
  padding: var(--tc-space-2, .5rem) var(--tc-space-3, .75rem);
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 10px;
  grid-template-columns: 1.5rem minmax(0, 1fr);
  display: grid;
}

.tc-red-form-piezas li:before {
  content: counter(pieza);
  width: 1.375rem;
  height: 1.375rem;
  color: var(--admin-primary, #2563eb);
  border: 1px solid var(--admin-primary, #2563eb);
  border-radius: 50%;
  grid-row: span 2;
  place-items: center;
  font-size: .75rem;
  font-weight: 700;
  display: grid;
}

.tc-red-form-piezas-titulo {
  color: var(--admin-text, #0f172a);
  font-size: .8125rem;
  font-weight: 600;
}

.tc-red-form-piezas-detalle {
  color: var(--admin-text-muted, #64748b);
  overflow-wrap: anywhere;
  font-size: .75rem;
}

.tc-red-form-vacio {
  gap: var(--tc-space-2, .5rem);
  padding: var(--tc-space-3, .75rem);
  color: var(--admin-text-muted, #64748b);
  border: 1px dashed var(--admin-border, #e2e8f0);
  border-radius: 10px;
  align-items: flex-start;
  margin: 0;
  font-size: .8125rem;
  display: flex;
}

.tc-red-form-vacio svg {
  flex: none;
  margin-top: 2px;
}

.tc-red-form-pie {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-3, .75rem);
  flex-wrap: wrap;
  width: 100%;
  display: flex;
}

.tc-red6-form-red {
  max-width: 34rem;
}

.tc-red6-form .tc-form-input {
  margin-top: 0;
}

.tc-red6-form-nombre {
  max-width: 32rem;
}

.tc-red6-herencia {
  gap: var(--tc-space-2, .5rem) var(--tc-space-4, 1rem);
  padding: var(--tc-space-3, .75rem);
  background: var(--admin-bg, #f1f5f9);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 10px;
  grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr));
  max-width: 48rem;
  margin: 0;
  display: grid;
}

.tc-red6-herencia div {
  min-width: 0;
}

.tc-red6-herencia dt {
  color: var(--admin-text-muted, #64748b);
  font-size: .6875rem;
}

.tc-red6-herencia dd {
  color: var(--admin-text, #1e293b);
  overflow-wrap: anywhere;
  margin: 0;
  font-size: .8125rem;
  font-weight: 600;
}

.tc-red6-pool-modo .tc-segmented {
  align-self: flex-start;
}

.tc-red6-cifras {
  gap: var(--tc-space-2, .5rem);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  display: grid;
}

.tc-red6-cifra {
  padding: var(--tc-space-2, .5rem) var(--tc-space-3, .75rem);
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 10px;
  flex-direction: column;
  min-width: 0;
  display: flex;
}

.tc-red6-cifra .tc-form-hint {
  margin: 0;
}

.tc-red6-cifra-valor {
  font-variant-numeric: tabular-nums;
  color: var(--admin-text, #1e293b);
  overflow-wrap: anywhere;
  font-size: 1.25rem;
  font-weight: 700;
}

.tc-acs-opcion-fila {
  align-items: center;
  gap: var(--tc-space-2);
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) auto;
  display: grid;
}

@media (max-width: 640px) {
  .tc-acs-opcion-fila {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .tc-acs-opcion-fila > .tc-acs-opcion-etiqueta {
    grid-area: 2 / 1 / auto / -1;
  }
}

.tc-solicitud-doc-ok {
  color: var(--tc-success, #16a34a);
  margin-left: 2px;
}

.tc-solicitud-ficha {
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  display: grid;
}

.tc-solicitud-ficha-col {
  min-width: 0;
  padding: var(--tc-space-5);
  gap: var(--tc-space-6);
  flex-direction: column;
  display: flex;
}

.tc-solicitud-ficha-col + .tc-solicitud-ficha-col {
  border-left: 1px solid var(--admin-border, #e2e8f0);
}

.tc-solicitud-ficha .tc-field-grid {
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}

.tc-solicitud-ficha .tc-field-value a {
  color: var(--admin-primary, #2563eb);
  font-weight: 600;
}

.tc-solicitud-ficha .tc-field-group-label {
  margin-top: 0;
}

.tc-solicitud-gps, .tc-solicitud-docs, .tc-solicitud-docs-accion {
  margin-top: var(--tc-space-4);
}

.tc-solicitud-docs {
  gap: var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-solicitud-foto {
  --tc-solicitud-foto-fondo: var(--tc-neutral-bg, #f1f5f9);
  cursor: zoom-in;
  flex-direction: column;
  align-items: center;
  gap: .4rem;
  padding: .5rem;
  display: flex;
}

.admin-shell[data-theme="dark"] .tc-solicitud-foto {
  --tc-solicitud-foto-fondo: #ffffff0a;
}

.tc-solicitud-foto--vacia {
  cursor: not-allowed;
}

.tc-solicitud-foto .tc-field-label {
  margin: 0;
}

.tc-solicitud-foto-img, .tc-solicitud-foto-hueco {
  border-radius: var(--tc-radius-sm, 6px);
  width: 110px;
  height: 72px;
}

.tc-solicitud-foto-img {
  object-fit: cover;
  display: block;
}

.tc-solicitud-foto-hueco {
  background: repeating-linear-gradient(45deg,
    var(--tc-solicitud-foto-fondo) 0 8px,
    var(--admin-border, #e2e8f0) 8px 16px);
  justify-content: center;
  align-items: center;
  display: flex;
}

.tc-solicitud-modal-texto {
  margin: 0 0 var(--tc-space-4);
  color: var(--admin-text-muted, #64748b);
}

.tc-solicitud-historial {
  padding: var(--tc-space-5);
  border-top: 1px solid var(--admin-border, #e2e8f0);
}

.tc-solicitud-historial .tc-field-group-label {
  margin-top: 0;
}

.tc-solicitud-historial-lista {
  margin: 0;
  padding: 0;
  list-style: none;
}

.tc-solicitud-evento {
  padding: 0 0 var(--tc-space-5) 1.75rem;
  position: relative;
}

.tc-solicitud-evento:last-child {
  padding-bottom: 0;
}

.tc-solicitud-evento:before {
  content: "";
  background: var(--admin-card-bg, #fff);
  border: 2px solid var(--admin-text-muted, #64748b);
  border-radius: 50%;
  width: .7rem;
  height: .7rem;
  position: absolute;
  top: .3rem;
  left: .2rem;
}

.tc-solicitud-evento:not(:last-child):after {
  content: "";
  background: var(--admin-border, #e2e8f0);
  width: 2px;
  position: absolute;
  top: 1.25rem;
  bottom: .1rem;
  left: calc(.55rem - 1px);
}

.tc-solicitud-evento-cabecera {
  align-items: baseline;
  gap: var(--tc-space-1) var(--tc-space-4);
  flex-wrap: wrap;
  display: flex;
}

.tc-solicitud-evento-cabecera strong {
  font-size: var(--tc-text-md);
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-solicitud-evento-meta, .tc-solicitud-evento-texto {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.tc-solicitud-evento-texto {
  margin: var(--tc-space-1) 0 0;
}

.tc-solicitud-evento-texto strong {
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-solicitud-evento-texto a {
  color: var(--admin-primary, #2563eb);
  font-weight: 600;
}

.tc-solicitud-diff {
  gap: var(--tc-space-2) var(--tc-space-5);
  margin: var(--tc-space-3) 0 0;
  max-width: 48rem;
  font-size: var(--tc-text-sm);
  grid-template-columns: max-content minmax(0, 1fr);
  display: grid;
}

.tc-solicitud-diff dt {
  color: var(--admin-text-muted, #64748b);
}

.tc-solicitud-diff dd {
  overflow-wrap: anywhere;
  margin: 0;
}

.tc-solicitud-diff-antes {
  color: var(--admin-text-muted, #64748b);
  text-decoration: line-through;
}

.tc-solicitud-diff-vacio {
  color: var(--admin-text-muted, #64748b);
}

.tc-solicitud-diff-flecha {
  margin: 0 var(--tc-space-2);
  color: var(--admin-text-muted, #64748b);
}

.tc-solicitud-diff-despues {
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

@media (max-width: 1024px) {
  .tc-solicitud-ficha {
    grid-template-columns: 1fr;
  }

  .tc-solicitud-ficha-col + .tc-solicitud-ficha-col {
    border-left: 0;
    border-top: 1px solid var(--admin-border, #e2e8f0);
  }
}

.tc-acs-filtro-modelos {
  margin: var(--tc-space-4, 1rem) 0;
}

.tc-acs-modelo-head {
  gap: var(--tc-space-4, 1rem);
  width: 100%;
  padding: var(--tc-space-4, 1rem);
  text-align: left;
  cursor: pointer;
  color: inherit;
  font: inherit;
  background: none;
  border: 0;
  grid-template-columns: minmax(200px, 1fr) auto;
  align-items: center;
  display: grid;
}

.tc-acs-modelo-head:hover {
  background: var(--admin-table-hover, #f8fafc);
}

.tc-acs-modelo-head:focus-visible {
  outline: 2px solid var(--tc-info);
  outline-offset: -2px;
}

.tc-acs-modelo-id {
  align-items: flex-start;
  gap: var(--tc-space-2, .5rem);
  display: flex;
}

.tc-acs-modelo-nombre {
  font-weight: 600;
  font-size: var(--tc-text-base, .95rem);
  display: block;
}

.tc-acs-modelo-sub {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  margin-top: 2px;
  display: block;
}

.tc-acs-modelo-marcas {
  gap: var(--tc-space-2, .5rem);
  flex-wrap: wrap;
  justify-content: flex-end;
  display: flex;
}

.tc-acs-chev {
  color: var(--admin-text-muted, #64748b);
  flex: none;
  transition: transform .16s;
}

.tc-acs-chev--abierto {
  transform: rotate(90deg);
}

.tc-acs-modelo-detalle {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  padding: var(--tc-space-2, .5rem) 0;
}

.tc-acs-grupo {
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
}

.tc-acs-grupo:last-of-type {
  border-bottom: 0;
}

.tc-acs-grupo-head {
  align-items: center;
  gap: var(--tc-space-3, .75rem);
  width: 100%;
  padding: var(--tc-space-3, .75rem) var(--tc-space-4, 1rem);
  text-align: left;
  cursor: pointer;
  color: inherit;
  font: inherit;
  background: none;
  border: 0;
  display: flex;
}

.tc-acs-grupo-head:hover {
  background: var(--admin-table-hover, #f8fafc);
}

.tc-acs-grupo-head:focus-visible {
  outline: 2px solid var(--tc-info);
  outline-offset: -2px;
}

.tc-acs-grupo-nombre {
  font-weight: 600;
  font-size: var(--tc-text-sm, .85rem);
  flex: 1;
}

.tc-acs-grupo-cuerpo {
  padding: 0 var(--tc-space-4, 1rem) var(--tc-space-4, 1rem) 2.4rem;
}

.tc-acs-cat-nombre {
  font-size: var(--tc-text-xs, .75rem);
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted, #64748b);
  margin: var(--tc-space-3, .75rem) 0 var(--tc-space-1, .25rem);
  font-weight: 600;
}

.tc-acs-ajuste-lista {
  gap: 0 var(--tc-space-5, 1.5rem);
  grid-template-columns: repeat(auto-fit, minmax(520px, 1fr));
  display: grid;
}

.tc-acs-ajuste {
  gap: var(--tc-space-3, .75rem);
  padding: var(--tc-space-2, .5rem) 0;
  border-bottom: 1px dashed var(--admin-border, #e2e8f0);
  grid-template-columns: minmax(220px, 1fr) auto auto;
  align-items: center;
  display: grid;
}

.tc-acs-ajuste:last-child {
  border-bottom: 0;
}

.tc-acs-ajuste-nombre {
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  font-size: var(--tc-text-sm, .85rem);
  flex-wrap: wrap;
  display: flex;
}

.tc-acs-ajuste-acciones {
  gap: var(--tc-space-2, .5rem);
  align-items: center;
  display: flex;
}

.tc-acs-path {
  padding: 2px var(--tc-space-2, .5rem);
  border-radius: var(--tc-radius-sm, 6px);
  background: var(--admin-bg, #f1f5f9);
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-xs, .75rem);
  word-break: break-all;
  margin-top: 4px;
  display: inline-block;
}

.tc-acs-lectura {
  padding: var(--tc-space-4, 1rem);
}

@media (max-width: 720px) {
  .tc-acs-modelo-head {
    grid-template-columns: 1fr;
  }

  .tc-acs-modelo-marcas {
    justify-content: flex-start;
  }

  .tc-acs-ajuste {
    grid-template-columns: 1fr;
  }

  .tc-acs-grupo-cuerpo {
    padding-left: var(--tc-space-4, 1rem);
  }
}

.tc-stat-row.tc-acs-capacidad-kpis {
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.tc-acs-ficha-hero {
  align-items: flex-start;
  gap: var(--tc-space-5, 1.5rem);
  display: flex;
}

.tc-acs-ficha-id {
  flex: auto;
  min-width: 0;
}

.tc-acs-ficha-marcas {
  gap: var(--tc-space-2, .5rem);
  margin-bottom: var(--tc-space-2, .5rem);
  flex-wrap: wrap;
  display: flex;
}

.tc-acs-ficha-que-es {
  max-width: 62ch;
  font-size: var(--tc-text-sm, .85rem);
  margin: 0;
  line-height: 1.55;
}

.tc-acs-ficha-cifra {
  text-align: right;
  flex: none;
  max-width: 12rem;
}

.tc-acs-ficha-num {
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1.1;
}

.tc-acs-ficha-num--bien {
  color: var(--tc-success, #16a34a);
}

.tc-acs-ficha-num--mal {
  color: var(--tc-danger, #dc2626);
}

.tc-acs-ficha-campos {
  gap: var(--tc-space-4, 1rem);
  grid-template-columns: repeat(auto-fit, minmax(240px, 22rem));
  display: grid;
}

.tc-acs-ficha-solo-nombre {
  margin: 0 0 var(--tc-space-4, 1rem);
  max-width: 62ch;
  line-height: 1.55;
}

.tc-acs-ficha-pie {
  justify-content: flex-end;
  gap: var(--tc-space-2, .5rem);
  display: flex;
}

.tc-acs-mapa-intro {
  padding: 0 var(--tc-space-4, 1rem) var(--tc-space-3, .75rem);
  margin: 0;
}

.tc-acs-mapa-grupo {
  padding: 0 var(--tc-space-4, 1rem);
}

.tc-acs-mapa-fila {
  justify-content: start;
  gap: var(--tc-space-3, .75rem);
  padding: var(--tc-space-3, .75rem) 0;
  border-bottom: 1px dashed var(--admin-border, #e2e8f0);
  grid-template-columns: minmax(180px, 16rem) fit-content(46rem) 9rem auto;
  align-items: center;
  display: grid;
}

.tc-acs-mapa-fila:last-child {
  border-bottom: 0;
}

.tc-acs-mapa-modelo {
  font-weight: 600;
  font-size: var(--tc-text-sm, .85rem);
}

.tc-acs-mapa-donde {
  min-width: 0;
}

.tc-acs-mapa-donde .tc-acs-path {
  margin-top: 0;
}

.tc-acs-path--heredado {
  opacity: .72;
  font-style: italic;
}

.tc-acs-mapa-falta {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--tc-danger-text, #b91c1c);
}

.tc-acs-mapa-acciones {
  gap: var(--tc-space-2, .5rem);
  justify-content: flex-end;
  align-items: center;
  display: flex;
}

.tc-acs-mapa-resto {
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  padding: var(--tc-space-3, .75rem) var(--tc-space-4, 1rem);
  background: var(--tc-warning-bg, #fefce8);
  color: var(--tc-warning-text, #854d0e);
  display: flex;
}

.tc-acs-tecnico-head {
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  width: 100%;
  padding: var(--tc-space-3, .75rem) var(--tc-space-4, 1rem);
  cursor: pointer;
  text-align: left;
  font: inherit;
  background: none;
  border: 0;
  display: flex;
}

.tc-acs-tecnico-head:hover {
  background: var(--admin-table-hover, #f8fafc);
}

.tc-acs-tecnico-head:focus-visible {
  outline: 2px solid var(--tc-info);
  outline-offset: -2px;
}

.tc-acs-tecnico-titulo {
  font-weight: 600;
  font-size: var(--tc-text-sm, .85rem);
  color: var(--admin-text, #1e293b);
  flex: 1;
}

.tc-acs-tecnico-cuerpo {
  gap: var(--tc-space-4, 1rem);
  padding: var(--tc-space-3, .75rem) var(--tc-space-4, 1rem) var(--tc-space-4, 1rem);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  display: grid;
}

.tc-acs-tecnico-label {
  font-size: var(--tc-text-xs, .75rem);
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted, #64748b);
  margin-bottom: 2px;
  font-weight: 600;
}

@media (max-width: 900px) {
  .tc-acs-ficha-hero {
    flex-direction: column;
  }

  .tc-acs-ficha-cifra {
    text-align: left;
    max-width: none;
  }

  .tc-acs-mapa-fila {
    grid-template-columns: 1fr;
  }

  .tc-acs-mapa-acciones {
    justify-content: flex-start;
  }
}

.admin-shell[data-theme="dark"] .tc-acs-mapa-resto, .admin-shell[data-theme="dark"] .tc-acs-mapa-falta {
  --tc-warning-bg: #eab30829;
  --tc-warning-text: #fde047;
  --tc-danger-text: #fca5a5;
}

.tc-identificacion-equipo {
  flex-direction: column;
  gap: 1px;
  line-height: 1.3;
  display: inline-flex;
}

.tc-identificacion-equipo__principal {
  font-family: var(--tc-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: var(--tc-text-sm, .875rem);
}

.tc-identificacion-equipo__mac {
  font-family: var(--tc-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-mac-del-equipo {
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  margin-top: var(--tc-space-2, .5rem);
  flex-wrap: wrap;
  display: flex;
}

.tc-mac-del-equipo__label {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-mac-aviso {
  gap: var(--tc-space-2, .5rem);
  flex-direction: column;
  display: flex;
}

.tc-stat-row.tc-acs-kpis {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.tc-acs-kpis {
  --tc-acs-aviso: var(--tc-warning-text, #854d0e);
}

.admin-shell[data-theme="dark"] .tc-acs-kpis {
  --tc-acs-aviso: #fde047;
}

.tc-acs-herramientas {
  justify-content: flex-end;
  gap: var(--tc-space-2, .5rem);
  flex-wrap: wrap;
  display: flex;
}

.tc-page-header:has(.tc-acs-herramientas) {
  flex-wrap: wrap;
}

.tc-page-header:has(.tc-acs-herramientas) .tc-page-header-left {
  min-width: min(24rem, 100%);
}

.tc-page-header:has(.tc-acs-herramientas) .tc-page-actions {
  flex-shrink: 1;
  margin-left: auto;
}

.tc-acs-herr-aviso {
  background: var(--tc-warning, #eab308);
  border-radius: 999px;
  flex: none;
  width: 7px;
  height: 7px;
}

.tc-acs-alcance-cabeza {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-3, .75rem);
  flex-wrap: wrap;
  display: flex;
}

.tc-acs-alcance-cabeza p {
  max-width: 62ch;
  margin: 0;
}

.tc-acs-tarea-onu {
  flex-direction: column;
  gap: 1px;
  display: flex;
}

.tc-acs-tarea-modelo {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-acs-tarea-modelo--sin {
  color: var(--tc-warning-text, #854d0e);
  font-weight: 600;
}

.admin-shell[data-theme="dark"] .tc-acs-tarea-modelo--sin {
  color: #fde047;
}

.tc-acs-diag-nota {
  margin: 0 0 var(--tc-space-3, .75rem);
  max-width: 62ch;
}

.tc-acs-diag-chips {
  gap: var(--tc-space-2, .5rem);
  flex-wrap: wrap;
  display: flex;
}

.tc-acs-diag-cifras {
  gap: var(--tc-space-5, 1.5rem);
  margin-top: var(--tc-space-4, 1rem);
  padding-top: var(--tc-space-3, .75rem);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  display: flex;
}

.tc-acs-diag-num {
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.2;
}

.tc-acs-diag-num--mal {
  color: var(--tc-danger, #dc2626);
}

.tc-acs-diag-tareas {
  margin-top: var(--tc-space-4, 1rem);
  padding-top: var(--tc-space-3, .75rem);
  border-top: 1px solid var(--admin-border, #e2e8f0);
}

.tc-acs-diag-subtitulo {
  font-size: var(--tc-text-xs, .75rem);
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted, #64748b);
  margin-bottom: var(--tc-space-2, .5rem);
  font-weight: 600;
}

.tc-acs-diag-tarea {
  gap: var(--tc-space-3, .75rem);
  padding: var(--tc-space-2, .5rem) 0;
  border-bottom: 1px dashed var(--admin-border, #e2e8f0);
  font-size: var(--tc-text-sm, .85rem);
  grid-template-columns: 7rem fit-content(40rem) 7rem auto;
  justify-content: start;
  align-items: center;
  display: grid;
}

.tc-acs-diag-tarea:last-child {
  border-bottom: 0;
}

.tc-acs-diag-tarea-acciones {
  gap: var(--tc-space-2, .5rem);
  display: flex;
}

@media (max-width: 900px) {
  .tc-acs-diag-tarea {
    grid-template-columns: 1fr;
  }

  .tc-acs-diag-cifras {
    flex-wrap: wrap;
  }
}

.tc-acs-panel-pie {
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--tc-space-3, .75rem);
  padding-top: var(--tc-space-4, 1rem);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  flex-wrap: wrap;
  display: flex;
}

.tc-acs-panel-pie .tc-form-field {
  min-width: 16rem;
}

.tc-stat-row.tc-gestiones-kpis {
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.tc-gestiones-vistas {
  margin: var(--tc-space-4) 0 var(--tc-space-3);
}

.tc-gestiones-aviso-interno {
  align-items: center;
  gap: var(--tc-space-2);
  padding: var(--tc-space-3);
  margin-bottom: var(--tc-space-4);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  background: var(--admin-table-header, #f8fafc);
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-sm);
  display: flex;
}

.tc-gestion-detalle {
  gap: var(--tc-space-4);
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  align-items: start;
  display: grid;
}

@media (max-width: 1024px) {
  .tc-gestion-detalle {
    grid-template-columns: minmax(0, 1fr);
  }
}

.tc-gestion-chips {
  align-items: center;
  gap: var(--tc-space-2);
  margin-bottom: var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-gestion-detalle-texto {
  white-space: pre-line;
  color: var(--admin-text, #1e293b);
  font-size: var(--tc-text-base);
  margin: 0;
  line-height: 1.55;
}

.tc-gestion-detalle-meta {
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-sm);
  margin: 0;
}

.tc-gestion-comentario {
  gap: var(--tc-space-1);
  padding: var(--tc-space-3);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius);
  background: var(--tc-fila-zebra, #f8fafc);
  flex-direction: column;
  display: flex;
}

.tc-gestion-composer {
  align-items: flex-end;
  gap: var(--tc-space-2);
  margin-top: var(--tc-space-4);
  display: flex;
}

.tc-gestion-composer .tc-form-field {
  flex: auto;
  min-width: 0;
}

.tc-gestion-consecuencias {
  margin: 0 0 var(--tc-space-3);
  padding-left: var(--tc-space-5);
  gap: var(--tc-space-2);
  color: var(--admin-text, #1e293b);
  font-size: var(--tc-text-base);
  flex-direction: column;
  line-height: 1.5;
  display: flex;
}

.tc-perfil-op {
  grid-template-columns: repeat(auto-fit, minmax(max(min(100%, 34rem), calc((100% - var(--tc-space-4)) / 2)), 1fr));
  gap: var(--tc-space-4);
  display: grid;
}

.tc-perfil-op-ancho {
  grid-column: 1 / -1;
}

.tc-perfil-op-lista {
  flex-direction: column;
  display: flex;
}

.tc-perfil-op-ajuste {
  align-items: flex-start;
  gap: var(--tc-space-2);
  padding: var(--tc-space-3) 0;
  border-top: 1px solid var(--admin-border, #e2e8f0);
  flex-direction: column;
  display: flex;
}

.tc-perfil-op-lista > .tc-perfil-op-ajuste:first-child, .tc-perfil-op-nota + .tc-perfil-op-ajuste, .tc-perfil-op-grupo + .tc-perfil-op-ajuste {
  border-top: 0;
}

.tc-perfil-op-lista > .tc-perfil-op-ajuste:first-child {
  padding-top: 0;
}

.tc-perfil-op-ajuste__titulo {
  font-size: var(--tc-text-md);
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 500;
}

.tc-perfil-op-ajuste__desc {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-perfil-op-ajuste--sino {
  align-items: stretch;
}

.tc-perfil-op-ajuste--sino .vpn-config-toggle-wrap {
  max-width: 40rem;
  padding: 0;
}

.tc-perfil-op-ajuste--sino .vpn-config-toggle-wrap > div:first-child {
  flex: 1;
  min-width: 0;
}

.tc-perfil-op-grupo {
  padding-top: var(--tc-space-3);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  font-size: var(--tc-text-xs);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--admin-text-muted, #64748b);
  margin: 0;
  font-weight: 700;
}

.tc-perfil-op-nota {
  margin: 0 0 var(--tc-space-2);
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.tc-perfil-op-lista--columnas {
  gap: var(--tc-space-3) var(--tc-space-6);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
  display: grid;
}

.tc-perfil-op-lista--columnas > .tc-perfil-op-ajuste {
  border-top: 0;
  padding: 0;
}

.tc-perfil-op-lista--columnas .vpn-config-toggle-wrap {
  align-items: flex-start;
}

.tc-perfil-op-sub {
  margin: var(--tc-space-2) 0 0;
  padding: var(--tc-space-3) var(--tc-space-4);
  border-radius: var(--tc-radius-sm);
  background: color-mix(in srgb, var(--admin-text-muted, #64748b) 7%, transparent);
}

.tc-perfil-op-sub .tc-perfil-op-ajuste {
  border-top: 0;
  padding: 0;
}

.tc-pppoe-intro {
  margin-bottom: var(--tc-space-3);
}

.tc-pppoe-en-alta {
  margin-bottom: var(--tc-space-2);
  border-top: 0;
  padding-top: 0;
}

.tc-pppoe-cols {
  gap: var(--tc-space-4) var(--tc-space-6);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 30rem), 1fr));
  display: grid;
}

.tc-pppoe-col {
  gap: var(--tc-space-4);
  min-width: 0;
  padding-top: var(--tc-space-3);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  flex-direction: column;
  display: flex;
}

.tc-pppoe-col__cabecera {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2) var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-pppoe-col__titulo {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 600;
}

.tc-pppoe-resultado {
  gap: var(--tc-space-2);
  padding: var(--tc-space-3) var(--tc-space-4);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-sm);
  background: color-mix(in srgb, var(--admin-text-muted, #64748b) 5%, transparent);
  flex-direction: column;
  display: flex;
}

.tc-pppoe-resultado__principal {
  align-items: baseline;
  gap: var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-pppoe-resultado__quien {
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
}

.tc-pppoe-resultado__valor {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: var(--tc-text-xl);
  color: var(--admin-text, #1e293b);
  word-break: break-all;
  font-weight: 600;
}

.tc-pppoe-resultado__casos {
  gap: var(--tc-space-1) var(--tc-space-4);
  font-size: var(--tc-text-sm);
  grid-template-columns: fit-content(16rem) auto;
  margin: 0;
  display: grid;
}

.tc-pppoe-resultado__casos dt {
  color: var(--admin-text-muted, #64748b);
}

.tc-pppoe-resultado__casos dd {
  color: var(--admin-text, #1e293b);
  word-break: break-all;
  margin: 0;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 600;
}

.tc-pppoe-resultado__casos dd.is-vacio {
  color: var(--admin-text-muted, #64748b);
  font-family: inherit;
  font-weight: 400;
}

.tc-pppoe-resultado__nota {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-pppoe-bloque {
  gap: var(--tc-space-2);
  flex-direction: column;
  display: flex;
}

.tc-pppoe-rotulo {
  justify-content: space-between;
  gap: var(--tc-space-1) var(--tc-space-3);
  font-size: var(--tc-text-xs);
  color: var(--admin-text-muted, #64748b);
  flex-wrap: wrap;
  margin: 0;
  font-weight: 600;
  display: flex;
}

.tc-pppoe-rotulo span {
  font-weight: 400;
}

.tc-pppoe-comunes, .tc-pppoe-paleta {
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-pppoe-comun {
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text, #1e293b);
  font-size: var(--tc-text-sm);
  cursor: pointer;
  border-radius: 999px;
  padding: .3rem .8rem;
  font-weight: 500;
}

.tc-pppoe-comun:hover:not(:disabled) {
  border-color: var(--admin-primary, #2563eb);
}

.tc-pppoe-comun.is-active {
  border-color: var(--admin-primary, #2563eb);
  background: color-mix(in srgb, var(--admin-primary, #2563eb) 10%, transparent);
  color: var(--admin-primary, #2563eb);
  font-weight: 600;
}

.tc-pppoe-comun:disabled {
  cursor: default;
  opacity: .7;
}

.tc-pppoe-zona {
  align-items: center;
  gap: var(--tc-space-2);
  max-width: 44rem;
  min-height: 2.75rem;
  padding: var(--tc-space-2);
  border: 1.5px dashed var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-sm);
  flex-wrap: wrap;
  display: flex;
}

.tc-pppoe-zona.is-over {
  border-color: var(--admin-primary, #2563eb);
  background: color-mix(in srgb, var(--admin-primary, #2563eb) 6%, transparent);
}

.tc-pppoe-pieza {
  border-radius: var(--tc-radius-sm);
  background: color-mix(in srgb, var(--admin-primary, #2563eb) 12%, transparent);
  color: var(--admin-text, #1e293b);
  font-size: var(--tc-text-sm);
  cursor: grab;
  -webkit-user-select: none;
  user-select: none;
  align-items: center;
  gap: 4px;
  padding: .3rem .3rem .3rem .35rem;
  font-weight: 600;
  display: inline-flex;
}

.tc-pppoe-pieza.is-texto {
  background: color-mix(in srgb, var(--admin-text-muted, #64748b) 14%, transparent);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.tc-pppoe-pieza.is-arrastrando {
  opacity: .4;
}

.tc-pppoe-pieza:focus-visible {
  outline: 2px solid var(--admin-primary, #2563eb);
  outline-offset: 2px;
}

.tc-pppoe-pieza__asa {
  opacity: .5;
}

.tc-pppoe-pieza__quitar {
  border-radius: var(--tc-radius-sm);
  color: var(--admin-text-muted, #64748b);
  cursor: pointer;
  background: none;
  border: none;
  padding: 2px;
  display: inline-flex;
}

.tc-pppoe-pieza__quitar:hover:not(:disabled) {
  color: var(--admin-text, #1e293b);
}

.tc-pppoe-paleta__item {
  display: inline-flex;
}

.tc-pppoe-texto {
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: inline-flex;
}

.tc-pppoe-texto > .tc-form-input {
  width: 10rem;
}

.tc-plan-ficha {
  container-type: inline-size;
}

.tc-plan-ficha-cols {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  display: grid;
}

.tc-plan-ficha-col {
  min-width: 0;
  padding: var(--tc-space-5);
  gap: var(--tc-space-3);
  flex-direction: column;
  display: flex;
}

.tc-plan-ficha-col + .tc-plan-ficha-col {
  border-left: 1px solid var(--admin-border, #e2e8f0);
}

.tc-plan-ficha .tc-field-group-label {
  margin: 0;
}

@container (max-width: 840px) {
  .tc-plan-ficha-cols {
    grid-template-columns: 1fr;
  }

  .tc-plan-ficha-col + .tc-plan-ficha-col {
    border-left: 0;
    border-top: 1px solid var(--admin-border, #e2e8f0);
  }
}

.tc-acs-pestana {
  gap: var(--tc-space-4, 1rem);
  padding-top: var(--tc-space-4, 1rem);
  flex-direction: column;
  display: flex;
}

.tc-acs-tipos {
  gap: var(--tc-space-3, .75rem);
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  max-width: 64rem;
  display: grid;
}

.tc-acs-tipo {
  text-align: left;
  padding: var(--tc-space-3, .75rem) var(--tc-space-4, 1rem);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text, #0f172a);
  cursor: pointer;
  flex-direction: column;
  gap: 6px;
  transition: border-color .15s, box-shadow .15s;
  display: flex;
}

.tc-acs-tipo:hover {
  border-color: var(--tc-info, #3b82f6);
}

.tc-acs-tipo:focus-visible {
  outline: 2px solid var(--tc-info, #3b82f6);
  outline-offset: 2px;
}

.tc-acs-tipo--sel {
  border-color: var(--tc-info, #3b82f6);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--tc-info, #3b82f6) 18%, transparent);
}

.tc-acs-tipo-nombre {
  font-weight: 600;
}

.tc-acs-reconoce {
  gap: var(--tc-space-1, .25rem);
  padding: var(--tc-space-3, .75rem) var(--tc-space-4, 1rem);
  border-radius: var(--tc-radius-lg, 12px);
  background: color-mix(in srgb, var(--tc-info, #3b82f6) 7%, transparent);
  flex-direction: column;
  display: flex;
}

.tc-acs-crece {
  flex: auto;
  min-width: 0;
}

.tc-acs-bloques {
  columns: 2 560px;
  column-gap: var(--tc-space-4, 1rem);
}

.tc-acs-bloque {
  break-inside: avoid;
  margin: 0 0 var(--tc-space-4, 1rem);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--admin-card-bg, #fff);
  flex-direction: column;
  display: flex;
  overflow: hidden;
}

.tc-acs-bloque-head {
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  padding: 10px var(--tc-space-2, .5rem) 10px var(--tc-space-4, 1rem);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-bg, #f8fafc);
  display: flex;
}

.tc-acs-bloque-titulo {
  font-size: var(--tc-text-sm, .85rem);
  color: var(--admin-text, #0f172a);
  flex: auto;
  margin: 0;
  font-weight: 700;
}

.tc-acs-bloque-cuenta {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  white-space: nowrap;
  font-weight: 600;
}

.tc-acs-bloque-cuenta--falta {
  color: var(--tc-orange, #ea580c);
}

.tc-acs-bloque-nota {
  padding: 8px var(--tc-space-4, 1rem) 0;
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-acs-lista {
  flex-direction: column;
  display: flex;
}

.tc-acs-fila {
  align-items: center;
  gap: var(--tc-space-3, .75rem);
  padding: 10px var(--tc-space-3, .75rem) 10px var(--tc-space-4, 1rem);
  border: 0;
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  color: var(--admin-text, #0f172a);
  text-align: left;
  cursor: pointer;
  font: inherit;
  background: none;
  grid-template-columns: minmax(0, 1fr) auto auto 16px;
  display: grid;
}

.tc-acs-fila:last-child {
  border-bottom: 0;
}

.tc-acs-fila:hover {
  background: var(--admin-table-hover, #f8fafc);
}

.tc-acs-fila:focus-visible {
  outline: 2px solid var(--tc-info, #3b82f6);
  outline-offset: -2px;
}

.tc-acs-fila--abierta {
  background: color-mix(in srgb, var(--tc-info, #3b82f6) 10%, transparent);
}

.tc-acs-fila-nombre {
  font-weight: 600;
  font-size: var(--tc-text-sm, .85rem);
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  display: flex;
}

.tc-acs-fila-valor {
  align-items: center;
  gap: 8px;
  min-width: 0;
  display: flex;
}

.tc-acs-fila-texto {
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--admin-text-muted, #64748b);
  overflow: hidden;
}

.tc-acs-fila-chev {
  color: var(--admin-text-muted, #64748b);
}

.tc-acs-estado {
  font-size: var(--tc-text-xs, .75rem);
  white-space: nowrap;
  align-items: center;
  gap: 6px;
  font-weight: 600;
  display: inline-flex;
}

.tc-acs-estado--ok {
  color: var(--admin-text-muted, #64748b);
  font-weight: 500;
}

.tc-acs-estado--na {
  color: var(--admin-text-muted, #64748b);
}

.tc-acs-bloque--toda {
  column-span: all;
}

.tc-acs-lista--columnas {
  columns: 3 440px;
  column-rule: 1px solid var(--admin-border, #e2e8f0);
  column-gap: 0;
  display: block;
}

.tc-acs-orden {
  break-inside: avoid;
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-card-bg, #fff);
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: stretch;
  display: grid;
}

.tc-acs-orden > .tc-acs-fila {
  padding-left: var(--tc-space-2, .5rem);
  border-bottom: 0;
}

.tc-acs-orden--movido {
  opacity: .45;
}

.tc-acs-orden-asa {
  cursor: grab;
  color: var(--admin-text-muted, #64748b);
  background: none;
  border: 0;
  justify-content: center;
  align-items: center;
  padding: 0 0 0 6px;
  display: inline-flex;
}

.tc-acs-orden-asa:focus-visible {
  outline: 2px solid var(--tc-info, #3b82f6);
  outline-offset: -2px;
}

.tc-acs-orden-asa[aria-disabled="true"] {
  cursor: progress;
  opacity: .5;
}

.tc-acs-bloque-aviso {
  padding: 8px var(--tc-space-4, 1rem) 0;
}

.tc-acs-avanzado {
  cursor: pointer;
  font: inherit;
  color: var(--admin-text-muted, #64748b);
  text-align: left;
  background: none;
  border: 0;
  flex: auto;
  align-items: center;
  gap: 6px;
  padding: 0;
  display: inline-flex;
}

.tc-acs-velo {
  z-index: 900;
  background: #0f172a59;
  position: fixed;
  inset: 0;
}

.tc-acs-panel {
  z-index: 901;
  background: var(--admin-card-bg, #fff);
  width: min(760px, 100vw);
  color: var(--admin-text, #0f172a);
  border-left: 1px solid var(--admin-border, #e2e8f0);
  flex-direction: column;
  display: flex;
  position: fixed;
  top: 0;
  bottom: 0;
  right: 0;
  box-shadow: -12px 0 32px #0f172a2e;
}

.tc-acs-panel-head {
  align-items: flex-start;
  gap: var(--tc-space-3, .75rem);
  padding: var(--tc-space-4, 1rem) var(--tc-space-5, 1.25rem);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  display: flex;
}

.tc-acs-panel-titulos {
  flex: auto;
  min-width: 0;
}

.tc-acs-panel-titulo {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
}

.tc-acs-panel-cerrar {
  color: var(--admin-text-muted, #64748b);
  cursor: pointer;
  border-radius: var(--tc-radius-sm, 6px);
  background: none;
  border: 0;
  padding: 4px;
}

.tc-acs-panel-cerrar:hover {
  background: var(--admin-table-hover, #f8fafc);
}

.tc-acs-panel-cuerpo {
  padding: var(--tc-space-4, 1rem) var(--tc-space-5, 1.25rem) var(--tc-space-6, 1.5rem);
  gap: var(--tc-space-5, 1.25rem);
  flex-direction: column;
  flex: auto;
  display: flex;
  overflow-y: auto;
}

.tc-acs-panel-seccion {
  gap: var(--tc-space-2, .5rem);
  flex-direction: column;
  display: flex;
}

.tc-acs-panel-seccion .tc-field-group-label {
  margin: 0;
}

.tc-acs-caja {
  gap: var(--tc-space-2, .5rem);
  padding: var(--tc-space-3, .75rem);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  flex-direction: column;
  display: flex;
}

.tc-acs-caja p {
  margin: 0;
}

.tc-acs-caja-fila {
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  flex-wrap: wrap;
  display: flex;
}

.tc-acs-error {
  color: var(--tc-danger, #dc2626);
  margin: 0;
}

.tc-acs-selector-onu, .tc-acs-buscador {
  gap: var(--tc-space-2, .5rem);
  flex-direction: column;
  display: flex;
}

.tc-acs-selector-onu p, .tc-acs-buscador p {
  margin: 0;
}

.tc-acs-buscador-onu {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  flex-wrap: wrap;
  display: flex;
}

.tc-acs-buscador-q {
  gap: var(--tc-space-2, .5rem);
  align-items: center;
  display: flex;
}

.tc-acs-buscador-q .tc-form-input {
  flex: auto;
}

.tc-acs-lista-caja {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  overflow: hidden;
}

.tc-acs-lista-vacia {
  padding: var(--tc-space-3, .75rem);
  margin: 0;
}

.tc-acs-onu {
  align-items: center;
  gap: var(--tc-space-3, .75rem);
  width: 100%;
  padding: 10px var(--tc-space-3, .75rem);
  border: 0;
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  color: var(--admin-text, #0f172a);
  text-align: left;
  cursor: pointer;
  font: inherit;
  font-size: var(--tc-text-sm, .85rem);
  background: none;
  grid-template-columns: auto minmax(0, 1fr) auto 16px;
  display: grid;
}

.tc-acs-onu:last-child, .tc-acs-candidato:last-child, .tc-acs-adopcion-fila:last-child {
  border-bottom: 0;
}

.tc-acs-onu:hover {
  background: var(--admin-table-hover, #f8fafc);
}

.tc-acs-onu-cliente {
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--admin-text-muted, #64748b);
  overflow: hidden;
}

.tc-acs-candidato {
  gap: 4px var(--tc-space-2, .5rem);
  padding: 10px var(--tc-space-3, .75rem);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  display: grid;
}

.tc-acs-candidato--fuerte {
  background: color-mix(in srgb, var(--tc-success, #16a34a) 9%, transparent);
}

.tc-acs-candidato-path {
  font-size: var(--tc-text-xs, .75rem);
  word-break: normal;
  overflow-wrap: anywhere;
}

.tc-acs-lectura-ok {
  color: var(--tc-success-text, #15803d);
  margin: 0;
  font-weight: 600;
}

.tc-acs-candidato-valor {
  flex-wrap: wrap;
  grid-column: 1 / -1;
  align-items: center;
  gap: 6px;
  display: flex;
}

.tc-acs-candidato mark {
  background: color-mix(in srgb, var(--tc-warning, #eab308) 35%, transparent);
  color: inherit;
  border-radius: 2px;
}

.tc-acs-paginador {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  display: flex;
}

.tc-acs-paginador-botones {
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  display: inline-flex;
}

.tc-acs-wan-hojas, .tc-acs-wan-marcadores {
  flex-wrap: wrap;
  gap: 6px;
  display: flex;
}

.tc-acs-adopcion {
  max-height: 46vh;
  overflow-y: auto;
}

.tc-acs-adopcion-fila {
  align-items: flex-start;
  gap: var(--tc-space-3, .75rem);
  padding: 10px var(--tc-space-3, .75rem);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  display: flex;
}

.tc-acs-adopcion-texto {
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  display: flex;
}

.tc-acs-otros-modelos {
  gap: var(--tc-space-2, .5rem) var(--tc-space-4, 1rem);
  margin-top: var(--tc-space-2, .5rem);
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  display: grid;
}

.tc-acs-bloqueado {
  color: var(--admin-text-muted, #64748b);
  align-items: center;
  gap: 8px;
  display: inline-flex;
}

@media (max-width: 720px) {
  .tc-acs-fila {
    grid-template-columns: minmax(0, 1fr) auto 16px;
  }

  .tc-acs-fila-valor {
    grid-area: 2 / 1 / auto / -1;
  }
}

.tc-acs-fila-id {
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  display: flex;
}

.tc-acs-fila-path {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.tc-acs-fila-forma {
  color: var(--admin-text, #0f172a);
}

.tc-pagar {
  --lightningcss-light: initial;
  --lightningcss-dark: ;
  color-scheme: light;
  --admin-bg: #f1f5f9;
  --admin-card-bg: #fff;
  --admin-text: #1e293b;
  --admin-text-muted: #64748b;
  --admin-border: #e2e8f0;
  --admin-input-bg: #fff;
  --admin-input-border: #e2e8f0;
  --admin-primary: #2563eb;
  --admin-shadow: 0 1px 3px #00000014;
  background: var(--admin-bg);
  min-height: 100vh;
  color: var(--admin-text);
}

.tc-pagar-contenido {
  max-width: 34rem;
  padding: var(--tc-space-5) 16px var(--tc-space-6);
  gap: var(--tc-space-4);
  flex-direction: column;
  margin: 0 auto;
  display: flex;
}

.tc-pagar-marca {
  align-items: center;
  gap: var(--tc-space-3);
  min-height: 48px;
  display: flex;
}

.tc-pagar-logo {
  object-fit: contain;
  max-width: 160px;
  max-height: 48px;
}

.tc-pagar-empresa {
  font-weight: 600;
  font-size: var(--tc-text-lg, 1.125rem);
}

.tc-pagar-saludo {
  margin: 0 0 var(--tc-space-2);
  font-size: var(--tc-text-lg, 1.125rem);
  font-weight: 600;
}

.tc-pagar-ayuda, .tc-pagar-nota {
  margin: 0 0 var(--tc-space-3);
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.tc-pagar-nota {
  margin: var(--tc-space-3) 0 0;
  text-align: center;
}

.tc-pagar-grupo + .tc-pagar-grupo {
  margin-top: var(--tc-space-4);
}

.tc-pagar-servicio {
  margin: 0 0 var(--tc-space-2);
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
  font-weight: 600;
}

.tc-pagar-facturas {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  margin: 0;
  padding: 0;
  list-style: none;
}

.tc-pagar-factura {
  align-items: center;
  gap: var(--tc-space-3);
  padding: var(--tc-space-3) 0;
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  cursor: pointer;
  grid-template-columns: auto 1fr auto;
  display: grid;
}

.tc-pagar-factura input {
  width: 20px;
  height: 20px;
  margin: 0;
}

.tc-pagar-factura-texto {
  flex-direction: column;
  min-width: 0;
  display: flex;
}

.tc-pagar-vence {
  font-size: var(--tc-text-sm);
  color: var(--admin-text-muted, #64748b);
}

.tc-pagar-monto {
  white-space: nowrap;
  font-weight: 600;
}

.tc-pagar-datos {
  margin-top: var(--tc-space-4);
}

.tc-pagar-pasarelas {
  gap: var(--tc-space-2, 8px);
  border: 0;
  flex-direction: column;
  margin: 0;
  padding: 0;
  display: flex;
}

.tc-pagar-pasarelas-titulo {
  margin-bottom: var(--tc-space-2, 8px);
  color: var(--admin-text, #1e293b);
  padding: 0;
  font-weight: 600;
}

.tc-pagar-pasarela {
  align-items: center;
  gap: var(--tc-space-2, 8px);
  display: inline-flex;
}

.tc-pagar-pasarela-logo {
  object-fit: contain;
  width: auto;
  max-width: 56px;
  height: 22px;
}

.tc-pagar-boton {
  justify-content: center;
  gap: var(--tc-space-2);
  width: 100%;
  margin-top: var(--tc-space-4);
}

.tc-pagar-resultado {
  text-align: center;
  align-items: center;
  gap: var(--tc-space-2);
  padding: var(--tc-space-4) 0;
  flex-direction: column;
  display: flex;
}

.tc-pagar-resultado p {
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-pagar-resultado-titulo {
  font-size: var(--tc-text-xl, 1.25rem);
  margin: 0;
}

.tc-pagar-resultado--ok svg {
  color: var(--tc-success, #16a34a);
}

.tc-pagar-resultado--error svg {
  color: var(--tc-danger, #ef4444);
}

.tc-pagar-resultado--espera svg {
  color: var(--tc-warning-text, #854d0e);
}

.tc-enlace-pago {
  gap: var(--tc-space-3, 12px);
  flex-direction: column;
  max-width: 44rem;
  display: flex;
}

.tc-enlace-pago-ayuda {
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-sm, .875rem);
  margin: 0;
}

.tc-enlace-pago-acciones {
  gap: var(--tc-space-2, 8px);
  flex-wrap: wrap;
  display: flex;
}

.tc-pasarelas-aviso-texto {
  margin: 0 0 var(--tc-space-2, 8px);
}

.tc-plan-precio-cambio {
  align-items: center;
  gap: var(--tc-space-2) var(--tc-space-3);
  flex-wrap: wrap;
  display: flex;
}

.tc-plan-precio-anterior {
  color: var(--admin-text-muted, #64748b);
  text-decoration: line-through;
}

.tc-plan-precio-nuevo {
  font-size: var(--tc-text-xl, 1.25rem);
  color: var(--admin-text, #1e293b);
  font-weight: 700;
}

.tc-plan-impuestos-grupo {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2) var(--tc-space-4);
  padding: var(--tc-space-3) var(--tc-space-4);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  flex-wrap: wrap;
  display: flex;
}

.tc-plan-impuestos-monto {
  align-items: center;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
  display: flex;
}

.tc-acs-cuadro {
  gap: var(--tc-space-2, .5rem);
  margin-top: var(--tc-space-3, .75rem);
  flex-direction: column;
  display: flex;
}

.tc-acs-cuadro-fila {
  align-items: center;
  gap: var(--tc-space-3, .75rem);
  grid-template-columns: 9rem minmax(0, 24rem) auto;
  display: grid;
}

.tc-acs-cuadro-tipo {
  font-weight: 600;
  font-size: var(--tc-text-sm, .85rem);
}

.tc-acs-cuadro-perfil {
  min-width: 0;
}

.tc-acs-cuadro-fila > .tc-chip {
  justify-self: start;
}

@media (max-width: 720px) {
  .tc-acs-cuadro-fila {
    grid-template-columns: 1fr;
  }
}

.tc-nexmo-cuenta {
  gap: var(--tc-space-3, 12px);
  grid-template-columns: repeat(auto-fit, minmax(200px, 280px));
  display: grid;
}

.tc-nexmo-prueba {
  gap: var(--tc-space-4, 16px);
  grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
  align-items: start;
  display: grid;
}

.tc-nexmo-prueba .tc-chip {
  text-transform: none;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.tc-nexmo-prueba .tc-chip:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.tc-nexmo-resumen {
  grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
}

.tc-pasarela-logo {
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 56px;
  height: 26px;
  display: inline-flex;
}

.tc-pasarela-row-logo {
  gap: var(--tc-space-3, 12px);
}

.tc-pasarela-logo img {
  object-fit: contain;
  max-width: 100%;
  max-height: 100%;
  display: block;
}

.tc-pasarela-logo--grande {
  width: 112px;
  height: 56px;
  padding: var(--tc-space-1, 4px) var(--tc-space-2, 8px);
  box-sizing: border-box;
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  background: #fff;
  justify-content: center;
}

.tc-pasarela-cabecera {
  align-items: center;
  gap: var(--tc-space-4, 16px);
  padding-bottom: var(--tc-space-4, 16px);
  margin-bottom: var(--tc-space-4, 16px);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  display: flex;
}

.tc-pasarela-desc {
  font-size: var(--tc-text-base, .875rem);
  color: var(--admin-text-muted, #64748b);
  flex: 1;
  margin: 0;
}

.tc-pasarela-cuerpo {
  gap: var(--tc-space-5, 20px);
  grid-template-columns: minmax(0, 1fr);
  display: grid;
}

.tc-pasarela-cuerpo--guia {
  grid-template-columns: minmax(0, 1fr) 260px;
}

@media (max-width: 760px) {
  .tc-pasarela-cuerpo--guia {
    grid-template-columns: minmax(0, 1fr);
  }
}

.tc-pasarela-principal {
  gap: var(--tc-space-4, 16px);
  flex-direction: column;
  min-width: 0;
  display: flex;
}

.tc-pasarela-rotulo {
  font-size: var(--tc-text-xs, .75rem);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--admin-text-muted, #64748b);
  font-weight: 650;
}

.tc-pasarela-entorno {
  align-items: center;
  gap: var(--tc-space-3, 12px);
  flex-wrap: wrap;
  display: flex;
}

.tc-pasarela-nota {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-pasarela-seccion {
  gap: var(--tc-space-3, 12px);
  padding: var(--tc-space-4, 16px);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  flex-direction: column;
  display: flex;
}

.tc-pasarela-seccion-cab {
  align-items: center;
  gap: var(--tc-space-3, 12px);
  display: flex;
}

.tc-pasarela-seccion-cab--boton {
  width: 100%;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  background: none;
  border: 0;
  padding: 0;
}

.tc-pasarela-seccion-texto {
  flex-direction: column;
  flex: 1;
  min-width: 0;
  display: flex;
}

.tc-pasarela-seccion-titulo {
  font-size: var(--tc-text-lg, 1rem);
  color: var(--admin-text, #1e293b);
  font-weight: 650;
}

.tc-pasarela-seccion-sub {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-pasarela-seccion-num {
  width: 26px;
  height: 26px;
  font-size: var(--tc-text-sm, .8125rem);
  background: var(--tc-warning-bg, #fef9c3);
  color: var(--tc-warning-text, #854d0e);
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  font-weight: 700;
  display: inline-flex;
}

.tc-pasarela-seccion-num--ok {
  background: var(--tc-success-bg, #dcfce7);
  color: var(--tc-success-text, #166534);
}

.tc-pasarela-flecha {
  color: var(--admin-text-muted, #64748b);
  transition: transform .15s;
}

.tc-pasarela-flecha--abierta {
  transform: rotate(180deg);
}

.tc-pasarela-campos {
  gap: var(--tc-space-3, 12px) var(--tc-space-4, 16px);
  grid-template-columns: repeat(auto-fit, minmax(min(170px, 100%), 1fr));
  display: grid;
}

.tc-pasarela-campos > .tc-form-field--full {
  grid-column: 1 / -1;
}

.tc-pasarela-mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.tc-pasarela-secreto {
  align-items: center;
  gap: var(--tc-space-2, 8px);
  min-height: 40px;
  padding: 0 var(--tc-space-1, 4px) 0 var(--tc-space-3, 12px);
  box-sizing: border-box;
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius, 8px);
  background: var(--admin-bg, #f1f5f9);
  display: flex;
}

.tc-pasarela-secreto-icono {
  color: var(--tc-success, #16a34a);
  flex-shrink: 0;
}

.tc-pasarela-secreto-texto {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text, #1e293b);
  flex: 1;
}

.tc-pasarela-cert-pasos {
  gap: var(--tc-space-3, 12px);
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
  display: grid;
}

.tc-pasarela-cert-paso {
  gap: var(--tc-space-2, 8px);
  padding: var(--tc-space-3, 12px);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius, 8px);
  flex-direction: column;
  display: flex;
}

.tc-pasarela-cert-paso--actual {
  border-color: var(--admin-primary, #2563eb);
  background: var(--tc-primary-bg, #eef2ff);
}

.tc-pasarela-cert-titulo {
  align-items: center;
  gap: var(--tc-space-2, 8px);
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 600;
  display: flex;
}

.tc-pasarela-cert-num {
  width: 22px;
  height: 22px;
  font-size: var(--tc-text-xs, .75rem);
  background: var(--admin-bg, #f1f5f9);
  color: var(--admin-text-muted, #64748b);
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  font-weight: 700;
  display: inline-flex;
}

.tc-pasarela-cert-paso--actual .tc-pasarela-cert-num {
  background: var(--admin-primary, #2563eb);
  color: #fff;
}

.tc-pasarela-cert-paso--hecho .tc-pasarela-cert-num {
  background: var(--tc-success-bg, #dcfce7);
  color: var(--tc-success-text, #166534);
}

.tc-pasarela-cert-texto {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-pasarela-cert-acciones {
  gap: var(--tc-space-2, 8px);
  flex-wrap: wrap;
  display: flex;
}

.tc-pasarela-cert-archivo {
  cursor: pointer;
  align-self: flex-start;
}

.tc-pasarela-cert-archivo input {
  display: none;
}

.tc-pasarela-prueba {
  align-items: center;
  gap: var(--tc-space-3, 12px);
  padding: var(--tc-space-3, 12px) var(--tc-space-4, 16px);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  flex-wrap: wrap;
  display: flex;
}

.tc-pasarela-prueba-resultado {
  min-width: 12rem;
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
  flex: 1;
}

.tc-pasarela-prueba-resultado--ok {
  color: var(--tc-success-text, #166534);
}

.tc-pasarela-prueba-resultado--error {
  color: var(--tc-danger-text, #991b1b);
}

.tc-pasarela-lista {
  gap: var(--tc-space-2, 8px);
  flex-direction: column;
  display: flex;
}

.tc-pasarela-lista ul {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.tc-pasarela-lista-item {
  align-items: center;
  gap: var(--tc-space-3, 12px);
  padding: var(--tc-space-2, 8px) var(--tc-space-4, 16px);
  display: flex;
}

.tc-pasarela-lista-item + .tc-pasarela-lista-item {
  border-top: 1px solid var(--admin-border, #e2e8f0);
}

.tc-pasarela-lista-marca {
  border: 2px solid var(--admin-border, #e2e8f0);
  box-sizing: border-box;
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 22px;
  height: 22px;
  display: inline-flex;
}

.tc-pasarela-lista-marca--ok {
  background: var(--tc-success-bg, #dcfce7);
  color: var(--tc-success-text, #166534);
  border: 0;
}

.tc-pasarela-lista-texto {
  font-size: var(--tc-text-base, .875rem);
  color: var(--admin-text, #1e293b);
  flex: 1;
}

.tc-pasarela-lista-detalle {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
  text-align: right;
}

.tc-pasarela-activar {
  padding: var(--tc-space-3, 12px) var(--tc-space-4, 16px);
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--admin-bg, #f1f5f9);
}

.tc-pasarela-guia {
  gap: var(--tc-space-3, 12px);
  padding: var(--tc-space-4, 16px);
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--admin-bg, #f1f5f9);
  flex-direction: column;
  align-self: start;
  display: flex;
}

.tc-pasarela-guia-titulo {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-weight: 650;
}

.tc-pasarela-guia-pasos {
  gap: var(--tc-space-3, 12px);
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text, #1e293b);
  flex-direction: column;
  margin: 0;
  padding-left: 1.2rem;
  line-height: 1.5;
  display: flex;
}

.tc-pasarela-guia-nota {
  padding-top: var(--tc-space-3, 12px);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
  line-height: 1.5;
}

.tc-accion-filtro-canales {
  gap: var(--tc-space-2, 8px);
  grid-template-columns: repeat(auto-fit, minmax(min(9rem, 100%), 1fr));
  display: grid;
}

.tc-accion-filtro-canal {
  align-items: center;
  gap: var(--tc-space-2, 8px);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-md, 8px);
  background: var(--admin-card-bg, #fff);
  cursor: pointer;
  padding: 10px 12px;
  display: flex;
}

.tc-accion-filtro-canal strong {
  margin-left: auto;
  font-size: 1.1rem;
}

.tc-accion-filtro-canal:has(input:disabled) {
  opacity: .5;
  cursor: not-allowed;
}

.tc-dropdown-rotulo {
  color: var(--admin-text-muted, #64748b);
  flex-shrink: 0;
}

.tc-dropdown-rotulo + .tc-dropdown-value {
  margin-right: auto;
}

.tc-dropdown-grupo {
  font-size: var(--tc-text-xs, .75rem);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--admin-text-muted, #64748b);
  padding: 10px 12px 4px;
  font-weight: 600;
}

.tc-notif-cabecera {
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--tc-space-3, 12px);
  margin-bottom: var(--tc-space-4, 16px);
  flex-wrap: wrap;
  display: flex;
}

.tc-notif-canales {
  gap: var(--tc-space-3, 12px);
  grid-template-columns: repeat(4, minmax(9.5rem, 13rem));
  display: grid;
}

.tc-notif-canales .tc-radiocard--lg {
  padding: var(--tc-space-3, 12px) var(--tc-space-4, 16px);
  align-items: center;
}

.tc-notif-enviar {
  gap: var(--tc-space-2, 8px);
  flex-wrap: wrap;
  display: flex;
}

.tc-toolbar-quickfilters.tc-notif-filtros > .tc-dropdown {
  flex: none;
  width: auto;
  min-width: 0;
}

.tc-notif-filtros .tc-rango-fechas {
  margin: 0;
}

.tc-listado-toolbar .tc-notif-filtros .tc-datepicker-trigger {
  min-height: 36px;
  padding-top: 7px;
  padding-bottom: 7px;
  font-size: .84rem;
}

.tc-notif-estados {
  gap: var(--tc-space-3, 12px);
  padding: var(--tc-space-3, 12px) 14px;
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  flex-direction: column;
  display: flex;
}

.tc-notif-estados .tc-tabs-conteo {
  margin-bottom: 0;
}

.tc-notif-franja {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2, 8px) var(--tc-space-4, 16px);
  border-radius: var(--tc-radius, 8px);
  background: var(--tc-danger-bg, #fef2f2);
  color: var(--tc-danger-text, #991b1b);
  font-size: var(--tc-text-sm, .875rem);
  flex-wrap: wrap;
  padding: 10px 14px;
  display: flex;
}

.tc-notif-franja-acciones {
  gap: var(--tc-space-2, 8px);
  flex-wrap: wrap;
  display: flex;
}

@media (max-width: 900px) {
  .tc-notif-canales {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }
}

.tc-aviso-filtros {
  align-items: center;
  gap: var(--tc-space-2, 8px);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  flex-wrap: wrap;
  padding: 14px 16px;
  display: flex;
}

.tc-aviso-filtros > .tc-dropdown {
  flex: none;
  width: auto;
}

.tc-aviso-filtros .tc-dropdown-trigger {
  min-height: 36px;
  padding: 7px 12px;
  font-size: .84rem;
}

.tc-aviso-alcance {
  align-items: center;
  gap: var(--tc-space-3, 12px) var(--tc-space-8, 36px);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-surface-2, var(--admin-bg, #f8fafc));
  flex-wrap: wrap;
  padding: 14px 18px;
  display: flex;
}

.tc-aviso-alcance-rotulo {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  font-weight: 600;
  display: block;
}

.tc-aviso-alcance-total {
  padding-right: var(--tc-space-8, 36px);
  border-right: 1px solid var(--admin-border, #e2e8f0);
}

.tc-aviso-alcance-total strong {
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
  font-size: 1.75rem;
  line-height: 1.1;
}

.tc-aviso-alcance-canal {
  color: var(--admin-text-muted, #64748b);
  align-items: center;
  gap: 10px;
  display: flex;
}

.tc-aviso-alcance-canal strong {
  color: var(--admin-text, #1e293b);
  font-variant-numeric: tabular-nums;
  font-size: 1.05rem;
}

.tc-aviso-alcance-cargando {
  color: var(--admin-text-muted, #64748b);
}

.tc-aviso-alcance-si {
  color: var(--tc-success-text, #166534);
  display: inline-flex;
}

.tc-aviso-alcance-no {
  color: var(--admin-text-muted, #94a3b8);
}

.tc-aviso-dest-cliente {
  flex-direction: column;
  display: flex;
}

.tc-aviso-dest-error {
  padding: 12px 16px 0;
}

.tc-aviso-destinatarios .tc-empty {
  padding-block: 40px;
}

@media (max-width: 700px) {
  .tc-aviso-alcance-total {
    border-right: 0;
    flex-basis: 100%;
    padding-right: 0;
  }
}

.tc-onu-banda {
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--tc-space-3) var(--tc-space-6, 1.5rem);
  padding: var(--tc-space-4) var(--tc-space-5);
  margin-bottom: var(--tc-space-5);
  border-radius: var(--tc-radius-lg);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-bg, #f8fafc);
  flex-wrap: wrap;
  display: flex;
}

.tc-onu-banda-dato {
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  display: flex;
}

.tc-onu-banda-dato--modelo {
  min-width: min(14rem, 100%);
}

.tc-onu-banda-rotulo {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--admin-text-muted, #64748b);
  font-weight: 700;
}

.tc-onu-banda-valor {
  align-items: center;
  gap: var(--tc-space-2);
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  overflow-wrap: anywhere;
  flex-wrap: wrap;
  font-weight: 650;
  display: flex;
}

.tc-onu-banda-valor .tc-link-action {
  font-size: var(--tc-text-sm);
  font-weight: 600;
}

.tc-onu-conexion {
  gap: var(--tc-space-4) var(--tc-space-5);
  grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr));
  align-items: start;
  display: grid;
}

.tc-onu-conexion > .tc-form-field {
  align-content: start;
  min-width: 0;
}

.tc-segmented.tc-onu-modo {
  width: 100%;
  display: flex;
}

.tc-onu-modo .tc-segmented__item {
  flex: 1;
  padding-top: 6px;
  padding-bottom: 6px;
}

.tc-onu-datos-wan {
  gap: var(--tc-space-2);
  display: grid;
}

.tc-onu-datos-wan-rejilla {
  gap: var(--tc-space-3) var(--tc-space-6, 1.5rem);
  padding: var(--tc-space-3) var(--tc-space-4);
  border-radius: var(--tc-radius-lg, 12px);
  border: 1px solid var(--admin-border, #e2e8f0);
  background: var(--admin-bg, #f8fafc);
  flex-wrap: wrap;
  display: flex;
}

.tc-onu-datos-wan-campo {
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  display: flex;
}

.tc-onu-datos-wan-rotulo {
  font-size: var(--tc-text-xs);
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--admin-text-muted, #64748b);
  font-weight: 700;
}

.tc-onu-datos-wan-valor {
  font-size: var(--tc-text-base);
  color: var(--admin-text, #1e293b);
  overflow-wrap: anywhere;
  font-weight: 600;
}

.tc-onu-datos-wan-valor.tc-mono {
  font-size: var(--tc-text-base);
}

.tc-onu-datos-wan-secreto {
  align-items: center;
  gap: var(--tc-space-2);
  display: inline-flex;
}

.tc-onu-seguridad .vpn-config-toggle-wrap > div:first-child {
  flex: 1;
  min-width: 0;
}

.tc-onu-seguridad .vpn-config-toggle-wrap + .vpn-config-toggle-wrap {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  padding-top: var(--tc-space-3);
}

.onu-config-section.tc-onu-registro {
  padding: var(--tc-space-4) var(--tc-space-5);
  border-radius: var(--tc-radius-lg, 12px);
  border: 1px solid var(--admin-border, #e2e8f0);
}

.tc-onu-registro-modelo {
  gap: var(--tc-space-4);
  margin-bottom: var(--tc-space-4);
  display: grid;
}

.tc-onu-registro-modo {
  flex-wrap: wrap;
  justify-self: start;
  max-width: 100%;
}

.tc-onu-registro-campos {
  gap: var(--tc-space-3) var(--tc-space-4);
  grid-template-columns: repeat(auto-fill, minmax(min(12rem, 100%), 1fr));
  max-width: 52rem;
  display: grid;
}

.tc-onu-registro-campos > .tc-form-field {
  min-width: 0;
  margin-bottom: 0;
}

.tc-onu-registro-campos .tc-form-input {
  margin-top: 0;
}

.tc-onu-registro-capacidades {
  gap: var(--tc-space-2) var(--tc-space-6, 1.5rem);
  flex-wrap: wrap;
  display: flex;
}

.tc-onu-conexion > .tc-onu-conexion-ancho {
  grid-column: 1 / -1;
  min-width: 0;
}

.tc-equipo {
  --tc-equipo-suave: #f8fafc;
  background: var(--admin-card-bg, #fff);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-xl, 14px);
  box-shadow: var(--admin-shadow, 0 1px 3px #00000014);
  overflow: hidden;
  container-type: inline-size;
}

.admin-shell[data-theme="dark"] .tc-equipo {
  --tc-equipo-suave: #ffffff0a;
}

.tc-equipo--cargando {
  padding: var(--tc-space-5, 1.25rem);
  gap: var(--tc-space-3, .75rem);
  flex-direction: column;
  display: flex;
}

.tc-equipo-cab {
  align-items: center;
  gap: var(--tc-space-3, .75rem) var(--tc-space-4, 1rem);
  padding: var(--tc-space-4, 1rem) var(--tc-space-5, 1.25rem);
  flex-wrap: wrap;
  display: flex;
}

.tc-equipo-ico {
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--tc-equipo-suave);
  border: 1px solid var(--admin-border, #e2e8f0);
  width: 42px;
  height: 42px;
  color: var(--admin-text-muted, #64748b);
  flex: none;
  place-items: center;
  display: grid;
}

.tc-equipo-id {
  flex: 20rem;
  min-width: 0;
}

.tc-equipo-nombre {
  align-items: center;
  gap: var(--tc-space-2, .5rem) var(--tc-space-3, .75rem);
  font-size: var(--tc-text-lg, 1rem);
  color: var(--admin-text, #1e293b);
  flex-wrap: wrap;
  font-weight: 650;
  display: flex;
}

.tc-equipo-sub {
  gap: var(--tc-space-1, .25rem) var(--tc-space-4, 1rem);
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
  flex-wrap: wrap;
  margin-top: 2px;
  display: flex;
}

.tc-equipo-sub b {
  color: var(--admin-text, #1e293b);
  font-weight: 550;
}

.tc-equipo-der {
  gap: var(--tc-space-2, .5rem);
  flex-wrap: wrap;
  display: flex;
}

.tc-equipo-avisos {
  gap: var(--tc-space-3, .75rem);
  padding: 0 var(--tc-space-5, 1.25rem) var(--tc-space-4, 1rem);
  flex-direction: column;
  display: flex;
}

.tc-equipo-discrepancia {
  justify-content: space-between;
  align-items: center;
  gap: var(--tc-space-2, .5rem) var(--tc-space-4, 1rem);
  margin-top: var(--tc-space-2, .5rem);
  flex-wrap: wrap;
  display: flex;
}

.tc-equipo-cuerpo {
  border-top: 1px solid var(--admin-border, #e2e8f0);
  grid-template-columns: 17rem minmax(0, 1fr);
  display: grid;
}

.tc-equipo-nav {
  gap: var(--tc-space-1, .25rem);
  padding: var(--tc-space-3, .75rem);
  background: var(--tc-equipo-suave);
  border-right: 1px solid var(--admin-border, #e2e8f0);
  flex-direction: column;
  min-width: 0;
  display: flex;
}

.tc-equipo-buscar {
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  margin-bottom: var(--tc-space-2, .5rem);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius, 8px);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text-muted, #64748b);
  padding: .45rem .7rem;
  display: flex;
}

.tc-equipo-buscar:focus-within {
  border-color: var(--tc-info, #2563eb);
}

.tc-equipo-buscar input, .tc-equipo-buscar input:focus, .tc-equipo-buscar input:focus-visible {
  width: 100%;
  min-width: 0;
  box-shadow: none;
  color: var(--admin-text, #1e293b);
  font-size: var(--tc-text-sm, .8125rem);
  background: none;
  border: none;
  outline: none;
  flex: 1;
  margin: 0;
  padding: 0;
}

.tc-equipo-nav-it {
  align-items: center;
  gap: 2px var(--tc-space-2, .5rem);
  text-align: left;
  border-radius: var(--tc-radius, 8px);
  cursor: pointer;
  width: 100%;
  color: var(--admin-text, #1e293b);
  background: none;
  border: 1px solid #0000;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  padding: .55rem .6rem;
  display: grid;
}

.tc-equipo-nav-it:hover {
  background: var(--admin-table-hover, #f1f5f9);
}

.tc-equipo-nav-it:focus-visible {
  outline: 2px solid var(--tc-info, #2563eb);
  outline-offset: -2px;
}

.tc-equipo-nav-it--on {
  background: var(--admin-card-bg, #fff);
  border-color: var(--admin-border, #e2e8f0);
  box-shadow: var(--admin-shadow, 0 1px 3px #00000014);
}

.tc-equipo-nav-ico {
  border-radius: var(--tc-radius, 8px);
  width: 30px;
  height: 30px;
  color: var(--admin-text-muted, #64748b);
  grid-row: span 2;
  place-items: center;
  display: grid;
}

.tc-equipo-nav-it--on .tc-equipo-nav-ico {
  color: var(--tc-estado-info-icono, #2563eb);
  background: var(--tc-estado-info-bg, #eff6ff);
}

.tc-equipo-nav-nom {
  font-weight: 600;
  font-size: var(--tc-text-base, .875rem);
}

.tc-equipo-nav-est {
  justify-self: end;
}

.tc-equipo-nav-res {
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  grid-column: 2 / 4;
  overflow: hidden;
}

.tc-equipo-sec {
  min-width: 0;
  padding: var(--tc-space-4, 1rem) var(--tc-space-6, 1.5rem) var(--tc-space-5, 1.25rem);
}

.tc-equipo-sec-cab {
  align-items: baseline;
  gap: var(--tc-space-1, .25rem) var(--tc-space-3, .75rem);
  margin-bottom: var(--tc-space-2, .5rem);
  flex-wrap: wrap;
  display: flex;
}

.tc-equipo-sec-cab h3 {
  color: var(--admin-text, #1e293b);
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 650;
}

.tc-equipo-sec-cab .tc-text-muted {
  font-size: var(--tc-text-sm, .8125rem);
}

.tc-equipo-grupos {
  grid-template-columns: repeat(auto-fit, minmax(min(26rem, 100%), 1fr));
  column-gap: 2.75rem;
  display: grid;
}

.tc-equipo-grupo {
  min-width: 0;
  padding-top: var(--tc-space-3, .75rem);
}

.tc-equipo-grupo > .tc-field-group-label {
  margin: 0 0 .125rem;
}

.tc-equipo-grupo--ancho {
  grid-column: 1 / -1;
}

.tc-equipo-franja {
  grid-template-columns: repeat(auto-fit, minmax(min(22rem, 100%), 1fr));
  column-gap: 2.75rem;
  display: grid;
}

.tc-equipo-franja > .tc-equipo-fila {
  border-top: 0;
}

.tc-equipo-fila {
  align-items: center;
  gap: var(--tc-space-1, .25rem) var(--tc-space-4, 1rem);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  grid-template-columns: minmax(8rem, 12rem) minmax(0, 1fr) auto;
  min-height: 2.75rem;
  padding: .45rem 0;
  display: grid;
}

.tc-field-group-label + .tc-equipo-fila {
  border-top: 0;
}

.tc-equipo-fila--edicion {
  margin: 0 calc(-1 * var(--tc-space-3, .75rem));
  padding: .6rem var(--tc-space-3, .75rem);
  border-radius: var(--tc-radius, 8px);
  background: var(--tc-estado-info-bg, #eff6ff);
  border-top-color: #0000;
}

.tc-equipo-lab {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
  align-items: center;
  gap: 5px;
  display: inline-flex;
}

.tc-equipo-origen {
  color: var(--admin-text-muted, #64748b);
  display: inline-flex;
}

.tc-equipo-val {
  overflow-wrap: anywhere;
  min-width: 0;
  font-size: var(--tc-text-base, .875rem);
  color: var(--admin-text, #1e293b);
  font-weight: 550;
}

.tc-equipo-acc {
  justify-content: flex-end;
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  display: flex;
}

.tc-equipo-input {
  max-width: 20rem;
}

.tc-equipo-select {
  width: 100%;
  max-width: 20rem;
}

.tc-equipo-antes-despues {
  border-radius: var(--tc-radius, 8px);
  background: var(--admin-bg, #f1f5f9);
  color: var(--admin-text, #1e293b);
  font-size: var(--tc-text-sm, .8125rem);
  overflow-wrap: anywhere;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .25rem .75rem;
  padding: .6rem .75rem;
  display: grid;
}

.tc-equipo-antes-despues > span {
  color: var(--admin-text-muted, #64748b);
}

.tc-equipo-nota {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  grid-column: 1 / -1;
}

.tc-equipo-res {
  padding-bottom: var(--tc-space-1, .25rem);
  grid-column: 1 / -1;
}

.tc-equipo-res-acc {
  gap: var(--tc-space-2, .5rem);
  margin-top: var(--tc-space-2, .5rem);
  flex-wrap: wrap;
  display: flex;
}

.tc-equipo-onoff {
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  display: inline-flex;
}

.tc-equipo-secreto {
  letter-spacing: .15em;
  color: var(--admin-text-muted, #64748b);
}

.tc-equipo-sin {
  color: var(--admin-text-muted, #64748b);
  font-style: italic;
  font-weight: 400;
}

.tc-equipo-cambiar {
  cursor: pointer;
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--tc-info, #2563eb);
  background: none;
  border: 0;
  padding: .2rem .1rem;
  font-weight: 550;
}

.tc-equipo-cambiar:hover:not(:disabled) {
  text-decoration: underline;
}

.tc-equipo-cambiar:focus-visible {
  outline: 2px solid var(--tc-info, #2563eb);
  outline-offset: 2px;
  border-radius: 4px;
}

.tc-equipo-cambiar:disabled {
  cursor: not-allowed;
  color: var(--admin-text-muted, #64748b);
  opacity: .6;
}

.tc-equipo-motivo {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  align-items: center;
  gap: 4px;
  text-decoration: none;
  display: inline-flex;
}

a.tc-equipo-motivo:hover {
  text-decoration: underline;
}

.tc-equipo-pie-grupo {
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  margin-top: var(--tc-space-2, .5rem);
  border-radius: var(--tc-radius, 8px);
  background: var(--tc-equipo-suave);
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  flex-wrap: wrap;
  padding: .5rem .75rem;
  display: flex;
}

.tc-equipo-pie-grupo .tc-link {
  margin-left: auto;
}

.tc-equipo-vacio {
  gap: var(--tc-space-3, .75rem);
  margin-top: var(--tc-space-3, .75rem);
  padding: var(--tc-space-4, 1rem);
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--tc-equipo-suave);
  color: var(--admin-text, #1e293b);
  font-size: var(--tc-text-sm, .8125rem);
  align-items: flex-start;
  display: flex;
}

.tc-equipo-vacio > svg {
  color: var(--admin-text-muted, #64748b);
  flex: none;
  margin-top: 2px;
}

.tc-equipo-plegado {
  margin-top: var(--tc-space-4, 1rem);
}

.tc-equipo-plegar {
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  border: 0;
  border-top: 1px solid var(--admin-border, #e2e8f0);
  cursor: pointer;
  width: 100%;
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
  background: none;
  padding: .6rem 0;
  font-weight: 600;
  display: flex;
}

.tc-equipo-plegar:hover {
  color: var(--admin-text, #1e293b);
}

.tc-equipo-plegar svg {
  transition: transform .15s;
}

.tc-equipo-chev--abierto {
  transform: rotate(180deg);
}

.tc-equipo-gestion {
  align-items: center;
  gap: var(--tc-space-1, .25rem) var(--tc-space-3, .75rem);
  margin-top: var(--tc-space-4, 1rem);
  border-radius: var(--tc-radius, 8px);
  background: var(--tc-equipo-suave);
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  flex-wrap: wrap;
  padding: .6rem .75rem;
  display: flex;
}

.tc-equipo-gestion b {
  color: var(--admin-text, #1e293b);
  font-weight: 550;
}

.tc-equipo-pie {
  padding: var(--tc-space-3, .75rem) var(--tc-space-5, 1.25rem);
  border-top: 1px solid var(--admin-border, #e2e8f0);
}

.tc-equipo-pie--suelto {
  margin: 0 calc(-1 * var(--tc-space-5, 1.25rem)) calc(-1 * var(--tc-space-5, 1.25rem));
}

.tc-equipo-pie .tc-acs-panel-pie {
  border-top: 0;
  align-items: center;
  padding-top: 0;
}

.tc-equipo-pie .tc-actions-inline {
  flex-wrap: wrap;
}

@container (max-width: 900px) {
  .tc-equipo-cuerpo {
    grid-template-columns: minmax(0, 1fr);
  }

  .tc-equipo-nav {
    border-right: 0;
    border-bottom: 1px solid var(--admin-border, #e2e8f0);
    flex-direction: row;
    align-items: stretch;
    overflow-x: auto;
  }

  .tc-equipo-buscar {
    flex: none;
    align-self: center;
    width: 11rem;
    margin: 0;
  }

  .tc-equipo-nav-it {
    flex: none;
    width: 11.5rem;
  }

  .tc-equipo-nav-grupo {
    display: none;
  }

  .tc-equipo-nav-sep {
    flex: none;
    width: 1px;
    height: auto;
    margin: .25rem .125rem;
  }
}

@container (max-width: 620px) {
  .tc-equipo-cab, .tc-equipo-sec, .tc-equipo-avisos {
    padding-left: var(--tc-space-4, 1rem);
    padding-right: var(--tc-space-4, 1rem);
  }

  .tc-equipo-fila {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .tc-equipo-lab {
    grid-column: 1 / -1;
  }
}

.tc-caja-puerto {
  gap: var(--tc-space-4, 1rem);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  align-items: start;
  display: grid;
}

@media (max-width: 760px) {
  .tc-caja-puerto {
    grid-template-columns: minmax(0, 1fr);
  }
}

.tc-caja-puerto-cajas, .tc-caja-puerto-puertos {
  gap: var(--tc-space-2, .5rem);
  flex-direction: column;
  min-width: 0;
  display: flex;
}

.tc-caja-puerto-buscar {
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius, 8px);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text-muted, #64748b);
  padding: .45rem .7rem;
  display: flex;
}

.tc-caja-puerto-buscar:focus-within {
  border-color: var(--tc-info, #2563eb);
}

.tc-caja-puerto-buscar input, .tc-caja-puerto-buscar input:focus, .tc-caja-puerto-buscar input:focus-visible {
  width: 100%;
  min-width: 0;
  box-shadow: none;
  color: var(--admin-text, #1e293b);
  font-size: var(--tc-text-sm, .8125rem);
  background: none;
  border: none;
  outline: none;
  flex: 1;
  margin: 0;
  padding: 0;
}

.tc-caja-puerto-filtros {
  gap: var(--tc-space-2, .5rem) var(--tc-space-4, 1rem);
  flex-wrap: wrap;
  display: flex;
}

.tc-caja-puerto-nota {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  margin: 0;
}

.tc-caja-puerto-lista {
  flex-direction: column;
  gap: .375rem;
  max-height: 22rem;
  padding: 2px;
  display: flex;
  overflow-y: auto;
}

.tc-caja-puerto-caja {
  gap: 2px var(--tc-space-3, .75rem);
  text-align: left;
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--admin-card-bg, #fff);
  width: 100%;
  color: var(--admin-text, #1e293b);
  cursor: pointer;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: .55rem .75rem;
  display: grid;
}

.tc-caja-puerto-caja:hover {
  background: var(--admin-table-hover, #f1f5f9);
}

.tc-caja-puerto-caja:focus-visible {
  outline: 2px solid var(--tc-info, #2563eb);
  outline-offset: 1px;
}

.tc-caja-puerto-caja--on {
  border-color: var(--tc-info, #2563eb);
  box-shadow: 0 0 0 3px var(--tc-estado-info-bg, #eff6ff);
}

.tc-caja-puerto-caja-nom {
  font-weight: 600;
  font-size: var(--tc-text-base, .875rem);
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.tc-caja-puerto-caja-dist {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  font-variant-numeric: tabular-nums;
}

.tc-caja-puerto-caja-det {
  gap: 2px var(--tc-space-3, .75rem);
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  flex-wrap: wrap;
  grid-column: 1 / -1;
  display: flex;
}

.tc-caja-puerto-caja-aqui {
  color: var(--tc-estado-success-texto, #067647);
  font-weight: 600;
}

.tc-caja-puerto-rejilla {
  gap: var(--tc-space-2, .5rem);
  grid-template-columns: repeat(auto-fill, minmax(4.25rem, 1fr));
  display: grid;
}

.tc-caja-puerto-pto {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius, 8px);
  background: var(--admin-card-bg, #fff);
  color: var(--admin-text, #1e293b);
  font-size: var(--tc-text-xs, .75rem);
  cursor: pointer;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  padding: .5rem .25rem;
  display: flex;
}

.tc-caja-puerto-pto strong {
  font-size: var(--tc-text-base, .875rem);
  font-variant-numeric: tabular-nums;
}

.tc-caja-puerto-pto--libre:hover {
  border-color: var(--tc-info, #2563eb);
}

.tc-caja-puerto-pto:focus-visible {
  outline: 2px solid var(--tc-info, #2563eb);
  outline-offset: 1px;
}

.tc-caja-puerto-pto:disabled {
  cursor: not-allowed;
}

.tc-caja-puerto-pto--ocupado, .tc-caja-puerto-pto--danado {
  background: var(--admin-table-header, #f8fafc);
  color: var(--admin-text-muted, #64748b);
}

.tc-caja-puerto-pto--danado {
  border-style: dashed;
}

.tc-caja-puerto-pto--actual {
  background: var(--tc-estado-success-bg, #f0fdf4);
  border-color: var(--tc-success, #16a34a);
  color: var(--tc-estado-success-texto, #067647);
}

.tc-caja-puerto-pto--on {
  background: var(--tc-info, #2563eb);
  border-color: var(--tc-info, #2563eb);
  color: var(--admin-card-bg, #fff);
}

.tc-caja-puerto-leyenda {
  gap: .375rem var(--tc-space-4, 1rem);
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  flex-wrap: wrap;
  display: flex;
}

.tc-caja-puerto-leyenda span {
  align-items: center;
  gap: .375rem;
  display: inline-flex;
}

.tc-caja-puerto-muestra {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: 3px;
  width: .75rem;
  height: .75rem;
  padding: 0;
  display: inline-block;
}

.tc-caja-puerto-vacio {
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  padding: var(--tc-space-8, 2rem) var(--tc-space-4, 1rem);
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--admin-table-header, #f8fafc);
  color: var(--admin-text-muted, #64748b);
  font-size: var(--tc-text-sm, .8125rem);
  text-align: center;
  flex-direction: column;
  display: flex;
}

.admin-modal-footer:has(.tc-caja-puerto-resumen) {
  flex-wrap: wrap;
  align-items: center;
}

@media (max-width: 760px) {
  .tc-caja-puerto-resumen {
    flex-basis: 100%;
  }
}

.tc-caja-puerto-resumen {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
  margin-right: auto;
}

.tc-caja-puerto-resumen strong {
  color: var(--admin-text, #1e293b);
}

.tc-ftth-salud-pie {
  gap: var(--tc-space-3, .75rem);
  margin-top: var(--tc-space-4, 1rem);
  padding-top: var(--tc-space-4, 1rem);
  border-top: 1px solid var(--admin-border, #e2e8f0);
  flex-direction: column;
  display: flex;
}

.tc-ftth-planta {
  gap: var(--tc-space-3, .75rem) var(--tc-space-6, 1.5rem);
  grid-template-columns: repeat(auto-fit, minmax(min(22rem, 100%), 1fr));
  display: grid;
}

.tc-onu-empty + .tc-ftth-planta {
  padding-top: var(--tc-space-4, 1rem);
  border-top: 1px solid var(--admin-border, #e2e8f0);
}

.tc-ftth-planta-pieza {
  align-items: center;
  gap: var(--tc-space-3, .75rem);
  min-width: 0;
  display: flex;
}

.tc-ftth-planta-ico {
  border-radius: var(--tc-radius, 8px);
  background: var(--admin-table-header, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  width: 34px;
  height: 34px;
  color: var(--admin-text-muted, #64748b);
  flex: none;
  place-items: center;
  display: grid;
}

.tc-ftth-planta-dato {
  flex-direction: column;
  flex: 1;
  gap: 1px;
  min-width: 0;
  display: flex;
}

.tc-ftth-planta-lbl {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-ftth-planta-val {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text, #1e293b);
  overflow-wrap: anywhere;
  font-weight: 600;
}

.tc-ftth-planta-val a.tc-table-cell--link-plain {
  display: inline;
}

.tc-ftth-planta-sub {
  font-weight: 400;
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
  display: block;
}

.tc-ftth-planta-muted {
  color: var(--admin-text-muted, #64748b);
  font-weight: 400;
}

.tc-ftth-planta-link {
  color: var(--tc-info, #2563eb);
  font: inherit;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  text-decoration: underline;
}

.tc-ftth-planta-aviso {
  grid-column: 1 / -1;
  margin: 0;
}

.tc-wifi-equipo {
  gap: var(--tc-space-2, .5rem);
  flex-direction: column;
  display: flex;
}

.tc-wifi-equipo-red {
  align-items: center;
  gap: var(--tc-space-3, .75rem);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius, 8px);
  color: var(--admin-text-muted, #64748b);
  padding: .55rem .75rem;
  display: flex;
}

.tc-wifi-equipo-nombre {
  flex-direction: column;
  flex: 1;
  min-width: 0;
  display: flex;
}

.tc-wifi-equipo-ssid {
  color: var(--admin-text, #1e293b);
  overflow-wrap: anywhere;
  font-weight: 600;
}

.tc-wifi-equipo-sub, .tc-wifi-equipo-nota {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-wifi-equipo-nota {
  margin: 0;
}

.tc-perfil-acs-linea {
  flex-wrap: wrap;
  align-items: center;
  gap: .3rem;
  display: inline-flex;
}

.tc-perfil-acs-linea b {
  color: var(--admin-text, #1e293b);
}

.tc-perfil-acs-cab {
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--tc-space-3, .75rem);
  display: flex;
}

.tc-perfil-acs-nombre {
  font-size: var(--tc-text-base, .875rem);
  color: var(--admin-text, #1e293b);
  font-weight: 600;
}

.tc-equipo-nav-grupo {
  padding: var(--tc-space-2, .5rem) .6rem .125rem;
  font-size: var(--tc-text-xs, .75rem);
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--admin-text-muted, #64748b);
  font-weight: 600;
}

.tc-equipo-nav-sep {
  height: 1px;
  margin: var(--tc-space-1, .25rem) .25rem;
  background: var(--admin-border, #e2e8f0);
}

.tc-equipo-etiqueta, .tc-equipo-dual {
  font-size: var(--tc-text-xs, .75rem);
  white-space: nowrap;
  border-radius: 6px;
  align-items: center;
  padding: 1px 8px;
  font-weight: 600;
  display: inline-flex;
}

.tc-equipo-etiqueta {
  background: var(--admin-table-header, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  color: var(--admin-text-muted, #64748b);
}

.tc-equipo-dual {
  background: var(--tc-estado-info-bg, #eff6ff);
  border: 1px solid var(--tc-estado-info-borde, #bfdbfe);
  color: var(--tc-estado-info-texto, #1d4ed8);
}

.tc-equipo-wan-linea {
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
  margin-top: 2px;
}

.tc-equipo-cifras {
  gap: var(--tc-space-3, .75rem);
  margin: var(--tc-space-3, .75rem) 0 var(--tc-space-4, 1rem);
  grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
  display: grid;
}

.tc-equipo-cifra {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--admin-card-bg, #fff);
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  padding: .6rem .85rem;
  display: flex;
}

.tc-equipo-cifra-lbl {
  font-size: var(--tc-text-xs, .75rem);
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--admin-text-muted, #64748b);
  align-items: center;
  gap: 6px;
  font-weight: 600;
  display: flex;
}

.tc-equipo-cifra-n {
  color: var(--admin-text, #1e293b);
  overflow-wrap: anywhere;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 1.05rem;
  font-weight: 700;
}

.tc-equipo-cifra-n--vacio {
  font-family: inherit;
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
  font-style: italic;
  font-weight: 400;
}

.tc-equipo-cifra-d {
  font-size: var(--tc-text-xs, .75rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-equipo-ver {
  letter-spacing: .04em;
  text-transform: none;
  background: var(--tc-estado-info-bg, #eff6ff);
  border: 1px solid var(--tc-estado-info-borde, #bfdbfe);
  color: var(--tc-estado-info-texto, #1d4ed8);
  border-radius: 5px;
  padding: 0 6px;
  font-size: .66rem;
  font-weight: 700;
  display: inline-flex;
}

.tc-equipo-ver--v4 {
  background: var(--admin-table-header, #f8fafc);
  border-color: var(--admin-border, #e2e8f0);
  color: var(--admin-text-muted, #64748b);
}

.tc-equipo-basica {
  column-gap: var(--tc-space-8, 2rem);
  grid-template-columns: repeat(auto-fit, minmax(max(min(24rem, 100%), 50% - 1rem), 1fr));
  display: grid;
}

.tc-equipo-pilas {
  gap: var(--tc-space-4, 1rem);
  margin-top: var(--tc-space-4, 1rem);
  grid-template-columns: repeat(auto-fit, minmax(min(26rem, 100%), 1fr));
  align-items: start;
  display: grid;
}

.tc-equipo-pila {
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius-lg, 12px);
  background: var(--admin-card-bg, #fff);
  min-width: 0;
  overflow: hidden;
}

.tc-equipo-pila-cab {
  align-items: center;
  gap: var(--tc-space-2, .5rem);
  background: var(--admin-table-header, #f8fafc);
  border-bottom: 1px solid var(--admin-border, #e2e8f0);
  padding: .5rem .85rem;
  display: flex;
}

.tc-equipo-pila-cab .tc-equipo-ver {
  padding: 1px 8px;
  font-size: .75rem;
}

.tc-equipo-pila-cuerpo {
  padding: 0 .85rem .25rem;
}

.tc-equipo-pila-cuerpo > .tc-equipo-fila:first-child {
  border-top: 0;
}

.tc-equipo-pilas > .tc-equipo-gestion {
  margin-top: 0;
}

.tc-equipo-dir-detalle {
  margin: 0 0 var(--tc-space-2, .5rem) var(--tc-space-3, .75rem);
  padding-left: var(--tc-space-3, .75rem);
  border-left: 1px solid var(--admin-border, #e2e8f0);
}

.tc-equipo-puertos {
  flex-wrap: wrap;
  gap: 4px;
  display: inline-flex;
}

.tc-equipo-puerto {
  font-size: var(--tc-text-xs, .75rem);
  background: var(--admin-table-header, #f8fafc);
  border: 1px solid var(--admin-border, #e2e8f0);
  color: var(--admin-text, #1e293b);
  border-radius: 5px;
  padding: 0 7px;
  font-weight: 600;
}

.tc-equipo-mono {
  overflow-wrap: anywhere;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.tc-equipo-grupo--sep {
  margin-top: var(--tc-space-3, .75rem);
}

.tc-equipo-grupos--resto {
  margin-top: var(--tc-space-4, 1rem);
}

.tc-equipo-barra {
  background: var(--admin-border, #e2e8f0);
  border-radius: 5px;
  width: 60%;
  height: 10px;
  display: block;
}

.tc-equipo-nav-it--esqueleto {
  cursor: default;
}

.tc-equipo-nav-it--esqueleto .tc-equipo-nav-res {
  padding-top: 4px;
}

.tc-equipo-nav-it--esqueleto:nth-child(2n) .tc-equipo-barra {
  width: 75%;
}

.tc-equipo-fila--esqueleto .tc-equipo-lab .tc-equipo-barra {
  width: 55%;
}

.tc-equipo-fila--esqueleto:nth-of-type(2n) .tc-equipo-val .tc-equipo-barra {
  width: 35%;
}

.tc-equipo-fila--esqueleto:nth-of-type(odd) .tc-equipo-val .tc-equipo-barra {
  width: 50%;
}

.tc-equipo-esqueleto-nota {
  margin: var(--tc-space-3, .75rem) 0 0;
  font-size: var(--tc-text-sm, .8125rem);
  color: var(--admin-text-muted, #64748b);
}

.tc-fabrica-caja {
  margin-top: var(--tc-space-3, .75rem);
  border: 1px solid var(--admin-border, #e2e8f0);
  border-radius: var(--tc-radius, 8px);
  background: var(--admin-bg, #f8fafc);
  color: var(--admin-text, #1e293b);
  font-size: var(--tc-text-sm, .8125rem);
  text-align: left;
  padding: .6rem .8rem;
}

.tc-fabrica-caja b {
  margin-bottom: .25rem;
  display: block;
}

.tc-fabrica-caja ul {
  margin: 0;
  padding-left: 1.1rem;
}

.tc-fabrica-caja li {
  margin: .15rem 0;
}

.tc-equipo-fabrica {
  padding: var(--tc-space-5, 1.25rem);
}

.tc-equipo-fabrica-acc {
  align-items: center;
  gap: var(--tc-space-2, .5rem) var(--tc-space-3, .75rem);
  margin-top: var(--tc-space-3, .75rem);
  flex-wrap: wrap;
  display: flex;
}

/*# sourceMappingURL=app_globals_0yg4wg8.css.map*/