:root{
  /* Base */
  --bg:#0b0f14;            /* fondo */
  --card:#181c22;          /* cards */
  --card-elevated:#20262d; /* cards elevadas */
  --text:#e0e2eb;          /* texto principal */
  --text-strong:#eef3f8;   /* texto principal elevado */
  --muted:#aab3bf;         /* texto secundario */
  --line:rgba(60,73,78,.18);
  --font-body:system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif;
  --font-heading:"Manrope", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif;
  --danger:#f29aa3;
  --danger-soft:rgba(242,154,163,.09);
  --danger-line:rgba(242,154,163,.18);

  /* Accent */
  --accent:#9de2ff;        /* primario */
  --accent-2:#00ccff;      /* hover */
  --accent-soft:rgba(94,212,255,.16);

  /* Botones */
  --btn-bg:var(--accent);
  --btn-bg-hover:var(--accent-2);
  --btn-text:#003545;      /* contraste sobre cyan */
  --btn-border:rgba(255,255,255,.08);

  --ghost-bg:rgba(38,42,49,.54);
  --ghost-bg-hover:rgba(38,42,49,.72);
  --ghost-text:var(--text);
  --ghost-border:rgba(60,73,78,.24);

  /* UX */
  --radius:12px;
  --shadow:0 18px 40px rgba(0,0,0,.24);
  --focus:0 0 0 3px var(--accent-soft);
}

*{box-sizing:border-box}
body{
  margin:0;
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text);
}

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

.ui-record,
.table td:first-child,
.detail-facts-table td,
.table td > a:not(.btn):not(.edit-link):not(.btn-link),
.table td > strong,
.detail-facts-table td > a:not(.btn):not(.edit-link):not(.btn-link){
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:13px;
  line-height:1.2;
  letter-spacing:.01em;
}

.muted.small,
.ui-kicker,
.pill,
.currency,
.money,
.money *,
.table-amount,
.table-amount *,
.mi-ficha-state-pill,
.state-dot,
.tree-chip,
.empty-copy,
.btn,
.btn-link,
.edit-link{
  font-family:var(--font-body);
}

.table a:not(.btn):not(.edit-link):hover,
.detail-facts-table a:hover,
.metric-inline a:hover,
.muted a:hover{
  color:var(--accent);
}
.container{max-width:1100px;margin:0 auto;padding:24px}

.topbar{
  position:sticky; 
  top:0;
  z-index: 1000;
  background:rgba(38,42,49,.64);
  backdrop-filter: blur(20px);
  border-bottom:1px solid rgba(60,73,78,.12);
}
.topbar__inner{
  max-width:1100px;margin:0 auto;
  padding:12px 24px;
}
.topbar__main{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  min-height:56px;
}
.topbar__left,
.topbar__right{
  display:flex;
  align-items:center;
  gap:18px;
  min-width:0;
}

.topbar__left{
  flex:1 1 auto;
}

.topbar__right{
  flex:0 1 auto;
}

.brand{
  flex:0 0 auto;
  font-family:"Expressa Regular", "Expressa", "Manrope", system-ui, sans-serif;
  font-size:1.08rem;
  font-weight:500;
  letter-spacing:.15rem;
  text-decoration:none;
}
.fx-badges-row{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.fx-badges-row__label{
  color:var(--muted);
  font-size:12px;
  letter-spacing:.04em;
  text-transform:uppercase;
  white-space:nowrap;
}
.fx-badges{
  display:grid;
  grid-template-columns:1fr;
  gap:4px;
  min-width:150px;
  padding:8px 10px;
  border-radius:12px;
  background:rgba(38,42,49,.44);
  border:1px solid rgba(60,73,78,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
.fx-badges::-webkit-scrollbar{display:none}
.fx-badge{
  display:grid;
  grid-template-columns:auto auto;
  align-items:center;
  justify-content:space-between;
  column-gap:12px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#d5dbe4;
  white-space:nowrap;
  font-size:11px;
  line-height:1;
}
.fx-badge__label{
  color:#aab3bf;
  font-weight:400;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.fx-badge__value{
  font-variant-numeric:tabular-nums;
  color:#e0e2eb;
  font-size:11px;
  text-align:right;
}
.nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  flex:1 1 auto;
  flex-wrap:wrap;
}
.nav--solo{
  flex:0 0 auto;
  justify-content:flex-start;
  margin-left:14px;
  gap:12px;
}
.nav a{
  position:relative;
  padding:4px 0;
  font-family:var(--font-heading);
  font-size:13px;
  line-height:1.2;
  letter-spacing:.01em;
  text-decoration:none;
  color:var(--muted);
  transition:color .15s ease;
}
.nav a:hover{color:var(--accent)}
.nav__link--active{
  color:var(--text);
}
.nav__link--active::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-8px;
  height:2px;
  border-radius:999px;
  background:var(--accent);
}

.nav--ops{
  display:grid;
  grid-template-columns:repeat(4, auto);
  justify-content:center;
  align-items:center;
  column-gap:16px;
  row-gap:8px;
  width:min(100%, 760px);
}

.nav--ops a{
  text-align:center;
}

.nav--ops a:nth-child(5){
  grid-column:2;
}

.nav--ops a:nth-child(6){
  grid-column:3;
}

.nav--ops a:nth-child(7){
  grid-column:4;
}

.nav-menu{
  position:relative;
}

.nav-menu summary{
  list-style:none;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  padding:0;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.05);
  background:rgba(24,28,34,.84);
  color:var(--text);
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}

.nav-menu summary svg{
  width:18px;
  height:18px;
  fill:currentColor;
}

.nav-menu summary::-webkit-details-marker{
  display:none;
}

.nav-menu[open] summary,
.nav-menu summary:hover{
  color:var(--text);
  background:rgba(38,42,49,.96);
  border-color:rgba(157,226,255,.12);
}

.nav-menu__list{
  position:absolute;
  right:0;
  top:calc(100% + 10px);
  min-width:220px;
  display:grid;
  gap:8px;
  padding:12px;
  background:#12171d;
  border:1px solid rgba(60,73,78,.14);
  border-radius:14px;
  box-shadow:0 18px 38px rgba(4,8,13,.34);
  z-index:1001;
}

.nav-menu__meta{
  display:grid;
  gap:2px;
  padding:2px 2px 8px;
  border-bottom:1px solid rgba(255,255,255,.05);
}

.nav-menu__name{
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:14px;
  line-height:1.2;
  letter-spacing:.01em;
}

.nav-menu__role{
  color:var(--muted);
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.nav-menu__form{
  margin:0;
}

.nav-menu__list a,
.nav-menu__button{
  width:100%;
  text-align:left;
  display:inline-flex;
  align-items:center;
  min-height:34px;
  background:#0f141a;
  border:1px solid rgba(255,255,255,.04);
  border-radius:10px;
  padding:0 10px;
  color:var(--text);
  cursor:pointer;
  font:inherit;
  text-decoration:none;
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.nav-menu__list a:hover,
.nav-menu__button:hover{
  color:var(--text);
  border-color:rgba(157,226,255,.14);
  background:#141a21;
}

.header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:26px;
}

.header > :first-child{
  min-width:0;
}

.header > :first-child > .muted.small:first-child{
  display:block;
  margin-bottom:10px;
  color:var(--accent);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.header > :first-child > h1,
.header > :first-child > .big:first-of-type{
  margin:0;
  font-family:var(--font-heading);
  font-size:clamp(2rem, 4vw, 3.2rem);
  font-weight:400;
  line-height:.98;
  letter-spacing:.01em;
}

.header > :first-child > .muted:not(.small){
  margin-top:12px;
  color:var(--muted);
  font-size:14px;
}

.header > :first-child > .muted.small:not(:first-child){
  margin-top:10px;
}

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

.header .proc-header{
  margin-top:10px;
}

.proc-breadcrumb{
  display:flex;
  align-items:center;
  gap:.3rem;
  flex-wrap:wrap;
}

.proc-breadcrumb__edit{
  margin-left:.18rem;
  opacity:.78;
}

.proc-breadcrumb__edit .icon-svg--img{
  width:18px;
  height:18px;
}

.header .proc-title{
  margin:0;
  display:inline-block;
  font-family:var(--font-heading);
  font-size:clamp(2rem, 4vw, 3.2rem);
  font-weight:400;
  line-height:.98;
  letter-spacing:.01em;
}

.proc-title__text{
  display:inline;
}
.muted{color:var(--muted)}

.ui-kicker,
.muted.small{
  color:var(--muted);
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  line-height:1.5;
}

.card{
  background:var(--card);
  border:1px solid rgba(60,73,78,.14);
  border-radius:14px;
  padding:16px;
  margin-bottom:16px;
}

.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:900px){.grid{grid-template-columns:1fr}}
@media (max-width:980px){
  .header{
    align-items:flex-start;
    flex-direction:column;
  }

  .header .actions{
    width:100%;
    justify-content:flex-start;
  }

  .topbar__main{
    flex-wrap:wrap;
  }
  .topbar__left,
  .topbar__right{
    width:100%;
    justify-content:flex-start;
  }
  .nav,
  .nav--ops{
    justify-content:flex-start;
  }
  .nav--solo{
    margin-left:0;
  }
  .fx-badges-row{
    width:100%;
    justify-content:flex-start;
    flex-wrap:wrap;
  }
  .fx-badges{
    min-width:140px;
  }
}

@media (max-width:720px){
  .nav,
  .nav--ops{
    display:flex;
    gap:12px;
  }

  .nav__link--active::after{
    bottom:-4px;
  }
}

/* Botón base: sirve para <a> y <button> */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-size: 11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:400;
  line-height: 1;
  height: 40px;

  padding:10px 14px;
  border-radius:var(--radius);

  background:var(--btn-bg);
  color:var(--btn-text);
  text-decoration:none;

  border:1px solid var(--btn-border);

  cursor:pointer;
  user-select:none;
  transition:transform .06s ease, background .15s ease, border-color .15s ease, opacity .15s ease;
}

.btn-danger{
  background:var(--danger-soft);
  color:#ffd8dd;
  border-color:var(--danger-line);
}

.btn-danger:hover{
  background:rgba(242,154,163,.14);
  color:#ffe5e8;
  border-color:rgba(242,154,163,.28);
}

.btn:hover{
  background:var(--btn-bg-hover);
}

.btn:active{
  transform:translateY(1px);
}

.btn:focus-visible{
  outline:none;
}

/* Variante ghost */
.btn-ghost{
  background:var(--ghost-bg);
  color:var(--ghost-text);
  border:1px solid var(--ghost-border);
}

.btn-ghost:hover{
  background:var(--ghost-bg-hover);
  border-color:rgba(148,163,184,.30);
}

/* Disabled */
.btn:disabled{
  opacity:.55;
  cursor:not-allowed;
  transform:none;
}

/* Botón compacto para tablas */
.btn-sm{
  padding: 6px 10px;
  font-size: 13px;
  border-radius: 10px;
}

/* Contenedor de acciones */
.actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

.actions--bento{
  --actions-bento-width: 430px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  justify-content:end;
  align-content:flex-start;
  width:min(var(--actions-bento-width), 100%);
  margin-left:auto;
}

.header .actions--bento{
  display:flex;
  flex-wrap:wrap;
  flex:0 0 auto;
  width:min(var(--actions-bento-width), 100%);
  align-self:flex-end;
}

.header .actions--bento > *{
  flex:0 0 auto;
  min-width:0;
}

.actions--bento-tight{
  --actions-bento-width: 290px;
}

.actions--end{
  justify-content:flex-end;
}

@media (max-width: 720px){
  .actions--bento{
    justify-content:start;
    width:100%;
    margin-left:0;
  }
}

.th-help{
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.th-help__hint{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;
  height:16px;
  border-radius:999px;
  font-size:11px;
  line-height:1;
  color:var(--muted);
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
}

.action-link{
  opacity:.9;
  margin-left:0;
}

.action-link:hover{
  opacity:1;
}

.table{width:100%;border-collapse:collapse}
.table-wrap { overflow-x:auto; overflow-y:hidden; }
.table-card .table-wrap{
  margin-top:6px;
  border-radius:16px;
  background:#101419;
  border:1px solid rgba(255,255,255,.04);
}
.comp-payments-wrap{
  overflow:visible;
}
/* evita clipping */
.table th, .table td { overflow: visible; position: relative; }
.table th,.table td{padding:10px;border-bottom:1px solid var(--line);text-align:left}
.big{font-size:24px;font-weight:500}
.kpi{display:flex;gap:18px;flex-wrap:wrap}

/* --- KPI (tree) --- */
.kpi-card{padding:18px}
.kpi-card__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}
.kpi-card__title{margin:0}
.kpi-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px 16px;
}
.kpi-stack{
  display:grid;
  gap:10px;
}
.kpi-row__value{
  text-align:right;
  white-space:nowrap;
  line-height:1.1;
}
.kpi-row__sub{
  margin-top:4px;
}
.kpi-sub{margin-top:4px}

.kpi-inline-card{
  position:relative;
}

.kpi-inline-filter{
  position:absolute;
  top:12px;
  right:12px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
}

.kpi-inline-filter__select{
  width:auto;
  min-width:92px;
  margin-top:0;
}

@media (max-width: 640px){
  .kpi-inline-filter{
    position:static;
    margin-bottom:8px;
    flex-wrap:wrap;
    justify-content:flex-start;
  }
}

@media (max-width: 980px){
  .kpi-grid{grid-template-columns: 1fr}
}

.tree, .tree ul {list-style:none;padding-left:16px;margin:0}
.tree > li {padding:6px 0}
.list{margin:0;padding-left:18px}

.form p{margin:0 0 12px}
.form label{display:block;margin-bottom:6px;color:var(--muted);font-size:14px}
.form input,.form select,.form textarea,
.input{
  width:100%;
  padding:8px 12px;
  border-radius:10px;
  border:1px solid var(--line);
  background:#0b0e14;
  color:var(--text);
  font-size:13px;
  font-family:inherit;
  margin-top:4px;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.input:hover,
.form input:hover,.form select:hover,.form textarea:hover{
  border-color:rgba(94,212,255,.24);
  background:#131821;
}
.input:focus,
.form input:focus,.form select:focus,.form textarea:focus{
  outline:none;
  border-color:var(--accent);
  background:#131821;
  box-shadow:var(--focus);
}
/* Custom chevron for selects */
select.input,
.form select{
  appearance:none;
  -webkit-appearance:none;
  color-scheme:dark;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23aab3bf' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
  background-size:12px;
  padding-right:32px;
  cursor:pointer;
}

select.input option,
.form select option{
  background:#101419;
  color:var(--text);
  font-family:var(--font-heading);
  font-size:13px;
}

select.input optgroup,
.form select optgroup{
  background:#101419;
  color:var(--muted);
  font-family:var(--font-body);
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:0 10px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.05);
  background:rgba(255,255,255,.025);
  color:#d5dbe4;
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  line-height:1;
  white-space:nowrap;
}

.pill--compact{
  min-height:20px;
  padding:0 8px;
  font-size:9px;
  letter-spacing:.11em;
}

.pill--success,
.pill.state-activo{
  border-color:rgba(111,189,149,.18);
  color:#cfe9da;
  background:rgba(111,189,149,.08);
}

.pill--warn,
.pill.state-pausado{
  border-color:rgba(250,204,21,.18);
  color:#f3e4a0;
  background:rgba(250,204,21,.08);
}

.pill--muted,
.pill.state-borrador{
  border-color:rgba(170,179,191,.12);
  color:#c9d1da;
  background:rgba(170,179,191,.06);
}

.pill.state-cerrado{
  border-color:var(--danger-line);
  color:#ffd8dd;
  background:var(--danger-soft);
}

.badge, .chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .22rem .55rem;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.08);
  font-size: .85rem;
  line-height: 1;
  white-space: nowrap;
}

.badge { font-weight: 400; }
.chip  { font-weight: 400; }

.badge-ok   { background: rgba(0, 160, 90, .10); border-color: rgba(0, 160, 90, .25); }
.badge-warn { background: rgba(255, 170, 0, .12); border-color: rgba(255, 170, 0, .28); }
.badge-muted{ background: rgba(0,0,0,.04); border-color: rgba(0,0,0,.10); }

[data-tooltip] {
  position: relative;
  cursor: help;
}

[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%);
  padding: 8px 10px;
  min-width: 120px;
  max-width: min(280px, 80vw);
  font-size: 10px;
  line-height: 1.5;
  letter-spacing: .16em;
  text-transform: uppercase;
  white-space: normal;
  text-align: left;
  color: #bcc5d0;
  background: #0b0f14;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  box-shadow: 0 10px 30px rgba(0,0,0,.26);
  opacity: 0;
  pointer-events: none;
  transition: opacity .12s ease;
  z-index: 9999;
}

[data-tooltip]:hover::after {
  opacity: 1;
}

[data-tooltip].tooltip-float {
  --tt-x: 50vw;
  --tt-y: 50vh;
}

[data-tooltip].tooltip-float::after {
  position: fixed;
  top: var(--tt-y);
  left: var(--tt-x);
  transform: translate(-50%, 12px);
}

[data-tooltip].tooltip-float[data-tt-placement="top"]::after {
  transform: translate(-50%, calc(-100% - 12px));
}

/* --- Estado de proc: dot con tooltip --- */
.state-dot {
  position: relative;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
  position: relative;
  flex: 0 0 auto;
  pointer-events: auto;
}

/* Paleta para estados (procedimientos y cotizaciones) */
.state-activo   { background: #4ade80; }
.state-pausado  { background: #facc15; }
.state-borrador { background: #94a3b8; }
.state-cerrado  { background: #f87171; }

.state-dot[data-tooltip]::after {
  top: 140%;
  left: 0;
  transform: translateX(0);
}

.state-dot:hover::after {
  opacity: 1;
}

/* hit area invisible más grande */
.state-dot::before {
  content: "";
  position: absolute;
  inset: -6px;
}

/* --- Estado de cotización: dot con tooltip --- */
.cot-dot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  display: inline-block;
  flex: 0 0 auto;
  border: 1px solid rgba(148,163,184,.35);
}

/* Pendiente > 0 (pero existe) */
.cot-dot--pendiente { background: #facc15; }  

/* Pendiente == 0 */
.cot-dot--ok { background: #4ade80; }    

/* --- Edit link al lado de títulos --- */
.edit-link {
  opacity: .92;
  width: auto;
  margin-left: .35rem;
  text-decoration: none;
  font-size: 12px;
  transition: none;
  text-align: center;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  vertical-align:middle;
}

.edit-link.action-link{
  opacity:.9;
  width:auto;
  margin-left:0;
  display:inline-flex;
  align-items:center;
}


/* --- Chip para mostrar estadísticas de hijos con tooltip --- */
.tree-chip{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:2px 8px;
  border-radius:999px;
  border:1px solid var(--line);
  background:transparent;
  font-size:12px;
  line-height:1;
  color:var(--muted, #94a3b8);
  cursor:help;
  position:relative;
  white-space:nowrap;
}

.tree-chip[data-tooltip]::after{
  top: 140%;
  left: 0;
  transform: translateX(0);
}

.tree-chip:hover::after{ opacity:1; }

.card-actions{
  margin-top: .85rem;
  padding-top: .75rem;
  border-top: 1px solid var(--line);
}

.btn-link{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:6px 10px;
  border:1px solid var(--line);
  border-radius:10px;
  text-decoration:none;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:400;
  color: var(--text);
  background: transparent;
  transition: transform .08s ease, background .12s ease, border-color .12s ease;
}

.btn-link:hover{
  background: rgba(255,255,255,.04);
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.15);
}

.info-dot{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:999px;
  border:1px solid var(--line);
  color:var(--muted, #94a3b8);
  cursor:help;
  position:relative;
  font-size:13px;
  user-select:none;
}

.info-dot[data-tooltip]::after{
  top: 140%;
  left: 0;
  transform: translateX(0);
}

.info-dot:hover::after{ opacity:1; }

/* Vista de árbol para procedimientos con acciones a la derecha */
.tree-sub{
  margin-top:.15rem;
}

.tabular-nums{
  font-variant-numeric: tabular-nums;
}

/* --- Procedimientos tree: migracion visual --- */
.tree-page{
  position:relative;
  padding-top:36px;
  padding-bottom:40px;
}

.tree-page::after{
  display:none;
}

.tree-page > *{
  position:relative;
  z-index:1;
}

.tree-page__hero{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:26px;
}

.tree-page__eyebrow{
  color:#9de2ff;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin-bottom:10px;
}

.tree-ui-caps{
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.tree-page__title{
  margin:0;
  font-size:clamp(2rem, 4vw, 3.2rem);
  font-weight:400;
  line-height:.98;
  letter-spacing:.01em;
}

.tree-page__org{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:12px;
  color:#aab3bf;
  font-size:14px;
}

.tree-page__org-label{
  color:var(--muted);
}

.tree-page__org-name{
  color:#9de2ff;
}

.tree-page__hero-actions{
  display:flex;
  align-items:center;
}

.tree-page__cta{
  min-width:220px;
  height:46px;
  border:0;
  border-radius:14px;
  background:var(--accent);
  color:#003545;
  font-weight:400;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.tree-page__cta:hover{
  background:var(--accent-2);
}

.tree-shell{
  border:1px solid rgba(255,255,255,.04);
  background:#181c22;
  box-shadow:none;
}

.tree-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}

.tree-panel-head--structure{
  padding:20px 20px 14px;
  margin-bottom:0;
}

.tree-panel-kicker{
  color:#aab3bf;
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  margin-bottom:8px;
}

.tree-panel-title{
  margin:0;
  font-family:var(--font-heading);
  font-size:1.4rem;
  font-weight:400;
  line-height:1.1;
  letter-spacing:.01em;
}

.tree-panel-note{
  color:var(--muted);
  font-size:12px;
  white-space:nowrap;
}

.tree-panel-note.tree-ui-caps{
  font-size:10px;
  letter-spacing:.16em;
}

.tree-kpi-card{
  padding:20px;
}

.tree-kpi-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1px;
  overflow:hidden;
  border-radius:16px;
  background:rgba(255,255,255,.03);
}

.tree-kpi-block{
  position:relative;
  min-height:230px;
  padding:24px;
  background:#181c22;
}

.tree-kpi-block--proy{
  background:#181c22;
}

.tree-kpi-block--comp{
  background:#20262d;
}

.tree-kpi-block--cash{
  background:#181c22;
}

.tree-kpi-block__title{
  margin-bottom:22px;
  color:#aab3bf;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.tree-kpi-list{
  display:grid;
  gap:18px;
}

.tree-kpi-item{
  display:grid;
  gap:6px;
}

.tree-kpi-item__label,
.tree-kpi-inline__label,
.tree-kpi-total__label{
  color:#aab3bf;
  font-size:14px;
}

.tree-kpi-item__label[data-tooltip],
.tree-kpi-inline__label[data-tooltip],
.tree-kpi-total__label[data-tooltip]{
  display:inline-flex;
  width:max-content;
}

.tree-kpi-item__value{
  font-size:2rem;
  line-height:1;
  font-weight:400;
  letter-spacing:-.04em;
  color:#e0e2eb;
}

.tree-kpi-item__value--empty{
  color:rgba(226,226,232,.55);
}

.tree-kpi-item__currency{
  font-size:.58em;
  font-weight:400;
  color:rgba(224,226,235,.62);
}

.tree-kpi-item__meta{
  color:rgba(170,179,191,.68);
  font-size:12px;
  font-style:italic;
}

.tree-kpi-inline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:2px 0;
}

.tree-kpi-inline__value{
  color:#d5dbe4;
  font-size:1rem;
  font-weight:400;
}

.tree-kpi-total{
  margin-top:4px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.06);
}

.tree-kpi-total__value{
  margin-top:6px;
  font-size:2rem;
  line-height:1;
  font-weight:400;
  letter-spacing:-.04em;
  color:#e0e2eb;
}

.tree-kpi-total__value--negative{
  color:#ffb4ab;
}

.tree-empty-state{
  padding:22px;
}

.tree-empty-state__text{
  margin:10px 0 0;
  color:#aab3bf;
  max-width:60ch;
}

.detail-kpi-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1rem;
  margin-bottom:16px;
}

.detail-kpi-card{
  padding:20px;
}

.detail-kpi-card__head{
  margin-bottom:14px;
}

.detail-kpi-card--proy{
  background:#181c22;
}

.detail-kpi-card--comp{
  background:#20262d;
}

.detail-kpi-card--cash{
  background:#181c22;
}

.detail-kpi-list{
  display:grid;
  gap:14px;
}

.detail-kpi-list--comp{
  gap:18px;
}

.detail-kpi-summary{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}

.detail-kpi-item{
  min-width:0;
}

.detail-kpi-item__label{
  color:#aab3bf;
  font-size:13px;
  line-height:1.35;
}

.detail-kpi-item__value{
  margin-top:6px;
  color:#e0e2eb;
  font-size:1.55rem;
  line-height:1.06;
  font-weight:400;
  letter-spacing:-.03em;
}

.detail-kpi-item__sub{
  margin-top:8px;
  color:#aab3bf;
  font-size:12px;
}

.detail-kpi-item__subvalue{
  margin-top:4px;
  color:#d5dbe4;
  font-size:1rem;
  line-height:1.1;
  font-weight:400;
}

.detail-kpi-item--hero{
  padding-bottom:14px;
  border-bottom:1px solid rgba(255,255,255,.05);
}

.detail-kpi-item--hero .detail-kpi-item__value{
  font-size:1.9rem;
}

.detail-kpi-meta-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px 18px;
}

.detail-kpi-item--metric{
  padding-top:2px;
}

.detail-kpi-item--metric .detail-kpi-item__label{
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.detail-kpi-item--metric .detail-kpi-item__subvalue{
  margin-top:8px;
  font-size:1.05rem;
}

.detail-ops-shell{
  padding:20px;
  margin-bottom:16px;
}

.detail-ops-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:12px;
}

.detail-ops-tabs{
  display:flex;
  align-items:center;
  gap:24px;
  flex-wrap:wrap;
  margin-bottom:20px;
  padding-bottom:0;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.detail-ops-tab{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:0 0 12px;
  border-radius:0;
  border:0;
  border-bottom:2px solid transparent;
  background:transparent;
  color:var(--muted);
  text-decoration:none;
  font-size:13px;
  letter-spacing:.02em;
  text-transform:none;
  transition:color .15s ease, border-color .15s ease, opacity .15s ease;
}

.detail-ops-tab:hover,
.detail-ops-tab:focus-visible{
  color:var(--accent);
  border-color:rgba(157,226,255,.34);
  opacity:1;
}

.detail-ops-tab.is-active{
  color:var(--text);
  border-color:var(--accent);
}

.detail-ops-panel{
  min-height:240px;
}

.detail-ops-pane{
  min-width:0;
}

.detail-ops-pane__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}

.detail-ops-pane__title{
  margin:0;
  font-family:var(--font-heading);
  font-size:1.1rem;
  font-weight:400;
  line-height:1.1;
  letter-spacing:.01em;
}

.detail-ops-pane__meta{
  color:var(--muted);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  white-space:nowrap;
}

.detail-section-shell{
  padding:20px;
}

.detail-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}

.detail-section-note{
  margin-top:.65rem;
}

.detail-kpi-summary--ops{
  margin-bottom:14px;
}

.detail-ops-table-wrap{
  margin-top:6px;
  border-radius:16px;
  background:#101419;
  border:1px solid rgba(255,255,255,.04);
}

.detail-ops-table th{
  padding:12px 14px;
  color:var(--muted);
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:400;
  border-bottom:1px solid rgba(255,255,255,.05);
}

.detail-ops-table .ui-kicker,
.detail-ops-table .muted.small:not(.empty-copy):not(.currency){
  font-family:var(--font-body);
  font-size:12px;
  letter-spacing:.01em;
  text-transform:none;
}

.detail-ops-table td{
  padding:14px;
  border-bottom:1px solid rgba(255,255,255,.04);
}

.detail-ops-table__wide{
  min-width:280px;
}

.detail-ops-table tbody tr:hover{
  background:#181c22;
}

.detail-facts-table th{
  width:180px;
  color:var(--muted);
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:400;
}

.detail-facts-table td{
  color:var(--text);
}

.detail-facts-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
}

.detail-facts-grid__table{
  margin:0;
}

.inline-form--inline{
  display:inline;
}

.text-right{
  text-align:right;
}

.detail-summary-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
  margin-top:8px;
}

.detail-summary-item{
  min-width:0;
}

.detail-summary-item__label{
  color:var(--muted);
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  line-height:1.45;
}

.detail-summary-item__value{
  margin-top:6px;
}

.detail-table-note{
  margin-top:8px;
}

.detail-inline-action-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}

.detail-inline-action-row + .detail-inline-action-row{
  margin-top:4px;
}

.movement-detail-table{
  width:100%;
  min-width:100%;
  table-layout:auto;
}

.detail-nested-block{
  padding:10px 0 2px;
}

.detail-nested-title{
  margin:0 0 8px;
  color:var(--muted);
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  line-height:1.45;
}

@media (max-width: 820px){
  .detail-facts-grid{
    grid-template-columns:1fr;
    gap:12px;
  }
}

.detail-nested-table{
  font-size:.85em;
}

.detail-nested-table td,
.detail-nested-table th{
  padding-top:10px;
  padding-bottom:10px;
}

@media (max-width: 980px){
  .detail-summary-grid{
    grid-template-columns:1fr;
  }
}

.detail-child-cell{
  display:flex;
  align-items:flex-start;
  gap:.7rem;
}

.detail-child-cell__body{
  min-width:0;
}

.detail-child-cell__title-row{
  display:flex;
  align-items:center;
  gap:.45rem;
  min-width:0;
}

.detail-child-cell__title{
  display:inline-block;
  max-width:42ch;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.detail-child-cell__meta{
  margin-top:.2rem;
}

.detail-commitment-person{
  min-width:220px;
}

.detail-commitment-person__cell{
  display:flex;
  align-items:center;
  gap:.5rem;
}

.detail-commitment-person__body{
  min-width:0;
}

.detail-commitment-person__title{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:38ch;
}

.detail-state-badge{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:0 10px 0 12px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.05);
  background:rgba(255,255,255,.025);
  color:#d5dbe4;
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  white-space:nowrap;
  position:relative;
  overflow:hidden;
}

.detail-state-badge::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:3px;
  background:#94a3b8;
}

.detail-state-badge--activo::before{
  background:#6fbd95;
}

.detail-state-badge--pausado::before{
  background:#facc15;
}

.detail-state-badge--borrador::before{
  background:#94a3b8;
}

.detail-state-badge--cerrado::before{
  background:#f87171;
}

.tree-structure-card{
  --tree-col-status:116px;
  --tree-col-aside:152px;
  padding:0;
  overflow:hidden;
}

.tree-rows{
  background:transparent;
}

.tree-rows__head{
  display:grid;
  grid-template-columns:minmax(0, 1fr) var(--tree-col-status) var(--tree-col-aside);
  align-items:center;
  gap:16px;
  padding:0 20px 10px;
}

.tree-rows__th{
  color:var(--muted);
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.tree-rows__th--status{
  text-align:left;
  padding-left:14px;
}

.tree-rows__th--right{
  text-align:right;
}

.tree-node{
  border-top:1px solid rgba(255,255,255,.02);
}

.tree-node:first-child{
  border-top:0;
}

.tree-node__row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) var(--tree-col-status) var(--tree-col-aside);
  align-items:center;
  gap:16px;
  padding:16px 20px;
  transition:background .18s ease, transform .18s ease;
}

.tree-node__row:hover{
  background:rgba(24,28,34,.82);
}

.tree-node__main{
  display:flex;
  align-items:flex-start;
  gap:14px;
  min-width:0;
  flex:1 1 auto;
}

.tree-node__content{
  min-width:0;
}

.tree-node__title{
  display:inline-block;
  font-family:var(--font-heading);
  max-width:min(62ch, 100%);
  color:var(--text-strong);
  font-size:1.02rem;
  line-height:1.15;
  letter-spacing:.01em;
  text-decoration:none;
}

.tree-node__title:hover{
  color:#9de2ff;
}

.tree-node__title--child{
  font-size:.92rem;
}

.tree-node__meta{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:6px;
}

.tree-node__scope{
  color:#aab3bf;
  font-size:12px;
}

.tree-node__chip,
.tree-node__pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:24px;
  padding:4px 9px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.05);
  background:rgba(38,42,49,.58);
  color:#d5dbe4;
  font-size:11px;
  line-height:1;
  white-space:nowrap;
}

.tree-node__chip--muted{
  color:rgba(170,179,191,.72);
  background:rgba(24,28,34,.78);
}

.tree-node__aside{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
  min-width:var(--tree-col-aside);
}

.tree-node__status{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex:0 0 auto;
  min-width:var(--tree-col-status);
  padding-left:14px;
}

.tree-node__pill{
  background:rgba(157,226,255,.12);
  color:#9de2ff;
}

.tree-node__children{
  position:relative;
}

.tree-node__children::before{
  content:"";
  position:absolute;
  left:33px;
  top:0;
  bottom:18px;
  width:1px;
  background:rgba(157,226,255,.14);
}

.tree-node__row--child{
  position:relative;
  margin-left:30px;
  padding-left:32px;
}

.tree-node__row--child::before{
  content:"";
  position:absolute;
  left:3px;
  top:50%;
  width:18px;
  height:1px;
  background:rgba(157,226,255,.18);
}

@media (max-width: 980px){
  .tree-page__hero{
    align-items:flex-start;
    flex-direction:column;
  }

  .tree-kpi-grid{
    grid-template-columns:1fr;
  }

  .detail-kpi-grid,
  .detail-kpi-summary{
    grid-template-columns:1fr;
  }

  .detail-kpi-meta-grid{
    grid-template-columns:1fr;
  }

  .tree-kpi-block{
    min-height:auto;
  }
}

@media (max-width: 720px){
  .tree-page{
    padding-top:24px;
  }

  .tree-page__hero-actions,
  .tree-page__hero-actions .tree-page__cta{
    width:100%;
  }

  .tree-panel-head,
  .tree-node__row{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
  }

  .tree-rows__head{
    display:none;
  }

  .tree-panel-note{
    white-space:normal;
  }

  .detail-ops-head,
  .detail-ops-pane__head,
  .detail-section-head{
    flex-direction:column;
  }

  .detail-ops-pane__meta{
    white-space:normal;
  }

  .tree-node__aside{
    width:100%;
    justify-content:flex-start;
  }

  .tree-node__status{
    width:100%;
    justify-content:flex-start;
  }

  .tree-node__row{
    padding:16px;
  }

  .tree-node__row--child{
    margin-left:18px;
    padding-left:24px;
  }

  .tree-node__children::before{
    left:24px;
  }

  .detail-ops-shell{
    padding:16px;
  }

  .detail-ops-tab{
    padding-bottom:10px;
  }
}

/* Item de línea para mostrar detalles de movimientos o cotizaciones */
.line-item{
  border:1px solid var(--line);
  background: rgba(148,163,184,.06);
  border-radius: 12px;
  padding: 12px;
}

/* Resaltar fila seleccionada (cotizacion_conciliar) */
.row-selected {
  background:rgba(157,226,255,.08);
  box-shadow:inset 3px 0 0 rgba(157,226,255,.55);
}

.conciliar-row{
  cursor:pointer;
}

.conciliar-row:focus-visible{
  outline:none;
  box-shadow:inset 0 0 0 1px rgba(157,226,255,.36), inset 3px 0 0 rgba(157,226,255,.55);
}

.conciliar-row:hover td{
  background:rgba(157,226,255,.045);
}

.conciliar-row.row-selected:hover td{
  background:transparent;
}

.conciliar-step__title{
  font-family:var(--font-heading);
  font-size:1rem;
  line-height:1.15;
  letter-spacing:.01em;
  color:var(--text-strong);
}

.step-number {
  font-weight: 400;
  margin-right: 6px;
  color: #ffc107;
}


/* Alertas de error, éxito, advertencia e información */
.alert {
  padding: 10px 12px;
  border-radius: 10px;
  margin-bottom: 10px;
  border: 1px solid var(--line);
}

.alert-error {
  background: rgba(220, 53, 69, 0.10);
  border-color: rgba(220, 53, 69, 0.25);
}

.alert-success {
  background: rgba(25, 135, 84, 0.10);
  border-color: rgba(25, 135, 84, 0.25);
}

.alert-warning {
  background: rgba(255, 193, 7, 0.12);
  border-color: rgba(255, 193, 7, 0.25);
}

.alert-info {
  background: rgba(13, 110, 253, 0.10);
  border-color: rgba(13, 110, 253, 0.25);
}


/* Estados disabled globales */
input:disabled,
select:disabled,
textarea:disabled,
button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

input:disabled,
select:disabled,
textarea:disabled {
  background: rgba(0, 0, 0, 0.04);
  border-color: rgba(0, 0, 0, 0.12);
}


/* --- Cotizaciones table tweaks --- */
.table-cots .col-dot { width: 28px; }
.table-cots .col-action { width: 160px; } /* asegura que el botón no se parta */
.table-cots td, .table-cots th { vertical-align: middle; }

/* Montos y moneda: no cortar línea */
.money,
.table-amount{
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
  letter-spacing:.01em;
  color:var(--text-strong);
  font-weight:400;
}

.money strong,
.table-amount strong,
.detail-summary-item__value strong,
.detail-facts-table td strong{
  font-weight:400;
  color:inherit;
}

.currency{
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:400;
  margin-left:.2em;
  white-space:nowrap;
}

/* Botón compacto estilo “chip” para Cot #id */
.btn-chip{
  padding: 6px 10px;
  font-size: 11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:400;
  border-radius: 12px;
}

/* Botón compacto tabla */
.btn-sm{
  padding: 6px 10px;
  font-size: 11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:400;
  border-radius: 12px;
}

/* Evita que “Registrar cobro” se rompa */
.btn-nowrap{ white-space: nowrap; }

/* Estado cot: dots */
.cot-dot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  display: inline-block;
  border: 1px solid rgba(148,163,184,.35);
}
.cot-dot--pendiente{ background: #facc15; } /* amarillo */
.cot-dot--ok{ background: #4ade80; }        /* verde */

/* Layout interno de la celda Cotización */
.cot-cell{
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.cot-top{
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* Resumen financiero en cotizacion_conciliar: cards con estados */
.summary-card{
  border:1px solid var(--line);
}

.summary-card.is-empty{
  opacity:.85;
}

.summary-card.is-ready{
  border-color: rgba(59,130,246,.45);
  box-shadow: 0 0 0 1px rgba(59,130,246,.12) inset;
}

.summary-title{
  font-weight:400;
  margin-bottom:10px;
}

.summary-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:14px;
  align-items:start;
}

.summary-grid__item{
  min-width:0;
  padding:14px 16px;
  border-radius:14px;
  background:#101419;
  border:1px solid rgba(255,255,255,.04);
}

.summary-main{
  font-weight:400;
  margin-top:2px;
  margin-bottom:4px;
}

.summary-grid .ui-kicker{
  margin-top:4px;
}

.summary-amount{
  font-size:20px;
  font-weight:400;
  margin-top:2px;
}

/* Filas con pendiente > 0 */
.row-pendiente{
  background: rgba(250, 204, 21, 0.05); /* amarillo ultra sutil */
}

/* Hover mantiene coherencia */
.row-pendiente:hover{
  background: rgba(250, 204, 21, 0.10);
}

.row-pendiente-pago{
  background: rgba(220, 53, 69, 0.05);
}

.row-pendiente-pago:hover{
  background: rgba(220, 53, 69, 0.10);
}

.table-tight th, .table-tight td{ padding: 10px; }
.table-vcenter td{ vertical-align: middle; }
.table-fixed{ table-layout: fixed; width: 100%; }
.truncate-1{
  display:block;
  width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.mov-ref{
  max-width:100%;
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:13px;
  line-height:1.2;
  letter-spacing:.01em;
  text-transform:none;
  transition:color .15s ease;
}
.mov-parte{
  display:inline-block;
  max-width:calc(100% - 22px);
  vertical-align:middle;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  transition:color .15s ease;
}

a.ui-record.mov-ref:hover,
a.ui-record.mov-parte:hover{
  color:var(--accent) !important;
}

.cot-ref,
.cot-scope{
  transition:color .15s ease;
}

a.ui-record.cot-ref:hover,
a.ui-record.cot-scope:hover{
  color:var(--accent) !important;
}

/* Ticket table: group header (persona) */
.row-group-header td{
  background: rgba(148,163,184,.08);
  border-top: 1px solid var(--line);
  padding-top: 12px;
  padding-bottom: 12px;
}
.row-group-header:first-child td{
  border-top: none;
}

/* Ticket table: child rows (individual tickets) */
.row-child td{
  padding-top: 6px;
  padding-bottom: 6px;
  font-size: .92em;
  color: var(--muted);
}
.row-child td strong{
  color: var(--text);
}
.row-child .col-proc{
  padding-left: 8px;
}

.comp-status-meta,
.comp-ticket-persona__meta{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:6px;
}

a.ui-record[href*="/personas/"]:hover{
  color:var(--accent) !important;
}

.comp-ticket-persona{
  display:grid;
  gap:6px;
}

.comp-ticket-proc{
  position:relative;
  display:flex;
  align-items:center;
  min-height:28px;
  padding-left:22px;
}

.comp-ticket-proc::before{
  content:"";
  position:absolute;
  left:8px;
  top:-12px;
  bottom:-12px;
  width:1px;
  background:rgba(157,226,255,.14);
}

.comp-ticket-proc::after{
  content:"";
  position:absolute;
  left:8px;
  top:50%;
  width:12px;
  height:1px;
  background:rgba(157,226,255,.18);
}

.comp-ticket-period,
.comp-ticket-adjustment{
  color:var(--muted);
  font-size:12px;
}

.comp-ticket-adjustment{
  margin-top:4px;
}

.comp-status-meta [data-tooltip]::after,
.comp-ticket-persona__meta [data-tooltip]::after{
  left:0;
  transform:none;
}

.btn-xs{
  padding:6px 10px;
  border-radius:10px;
  font-size:13px;
}

/* Global refinement pass */
.card{
  background:var(--card);
  border:1px solid rgba(255,255,255,.05);
  border-radius:16px;
  box-shadow:none;
}

.table-wrap{
  border-radius:14px;
}

.btn-sm,
.btn-xs,
.btn-chip,
.table .btn,
.table-wrap .btn,
form .actions .btn-sm{
  min-height:32px;
  height:32px;
  padding:0 10px;
  font-size:10px;
  letter-spacing:.16em;
  line-height:1;
  border-radius:10px;
}

.table .btn,
.table-wrap .btn{
  gap:6px;
}

.error,
.errorlist,
.field-errors,
.form .errorlist,
.formset .errorlist{
  margin:8px 0 0;
  padding:0;
  list-style:none;
  color:var(--danger);
  font-size:11px;
  line-height:1.45;
  letter-spacing:.02em;
}

.errorlist li,
.form .errorlist li,
.formset .errorlist li{
  margin-top:4px;
}

small.error,
.field--error .error{
  display:block;
  margin-top:8px;
  color:var(--danger);
  font-size:11px;
  line-height:1.45;
}

.field--error label{
  color:#d8e0ea;
}

.field--error input,
.field--error select,
.field--error textarea,
.field--error .input,
.form .errorlist + input,
.form .errorlist + select,
.form .errorlist + textarea{
  border-color:var(--danger-line);
  box-shadow:0 0 0 3px rgba(242,154,163,.06);
}

.form .muted.small[style*="#f87171"],
.form .muted.small[style*="#F87171"],
.form .muted.small[style*="color:#f87171"],
.form .muted.small[style*="color: #f87171"]{
  display:block;
  margin-top:8px;
  color:var(--danger) !important;
  font-size:11px;
  line-height:1.45;
  letter-spacing:.02em;
}

.alert{
  padding:12px 14px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.05);
  font-size:12px;
  line-height:1.45;
}

.alert-error{
  background:var(--danger-soft);
  border-color:var(--danger-line);
  color:#ffd8dd;
}

.card > .muted:not(.small):only-child,
.card > .muted:not(.small):last-child,
.detail-ops-pane > .muted:not(.small):only-child,
.detail-section-shell > .muted:not(.small):only-child,
.table td.muted[colspan]{
  color:#bcc5d0;
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  line-height:1.5;
}

.stack-16{
  margin-top:16px;
}

.metric-inline{
  margin-top:6px;
  font-size:12px;
  line-height:1.5;
}

.filter-card,
.table-card{
  margin-top:16px;
}

.filter-card{
  padding:18px 20px 20px;
}

.filter-card__head,
.table-card__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:12px;
}

.filter-card__eyebrow,
.table-card__eyebrow{
  color:#bcc5d0;
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  line-height:1.4;
}

.filter-card__actions,
.table-card__actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.table-card__actions--end{
  justify-content:flex-end;
  margin-left:auto;
}

.filters-grid{
  display:grid;
  gap:12px;
}

.filters-grid--4{
  grid-template-columns:repeat(4, minmax(0, 1fr));
}

.filters-grid--actions{
  grid-template-columns:minmax(260px, 1fr) auto auto auto auto;
  align-items:end;
  margin-top:12px;
}

.stats-grid--3{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

.stats-grid--5{
  grid-template-columns:repeat(5, minmax(0, 1fr));
}

.filters-grid--persona{
  grid-template-columns:minmax(280px, 1fr) auto auto auto auto;
  align-items:end;
}

.filters-grid--inline{
  display:flex;
  gap:12px;
  align-items:flex-end;
  flex-wrap:wrap;
}

.filters-field{
  min-width:120px;
  flex:1;
}

.filters-field--wide{
  min-width:140px;
}

.filters-period{
  display:flex;
  gap:8px;
}

.filters-period__month{
  flex:1;
}

.filters-period__year{
  flex:0 0 90px;
}

.check-inline{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:0 10px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.05);
  background:rgba(255,255,255,.025);
  color:var(--text);
  cursor:pointer;
  user-select:none;
  transition:border-color .15s ease, background .15s ease;
  white-space:nowrap;
  line-height:1;
}

.check-inline__content{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:100%;
}

.check-inline:hover{
  border-color:rgba(94,212,255,.22);
  background:rgba(157,226,255,.04);
}

.check-inline input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  width:13px !important;
  height:13px !important;
  min-width:13px;
  max-width:13px;
  padding:0 !important;
  margin:0 !important;
  margin-top:0 !important;
  width:13px;
  height:13px;
  border-radius:5px;
  border:1px solid rgba(170,179,191,.34);
  background:#101419;
  display:inline-grid;
  place-items:center;
  cursor:pointer;
  flex:0 0 13px;
  align-self:center;
  transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.check-inline__label{
  display:inline-flex;
  align-items:center;
  line-height:1;
}

.check-inline input[type="checkbox"]::after{
  content:"";
  width:6px;
  height:6px;
  border-radius:2px;
  background:var(--btn-text);
  transform:scale(0);
  transition:transform .12s ease;
}

.check-inline input[type="checkbox"]:checked{
  background:var(--accent);
  border-color:rgba(157,226,255,.62);
  box-shadow:0 0 0 3px rgba(157,226,255,.08);
}

.check-inline input[type="checkbox"]:checked::after{
  transform:scale(1);
}

.check-inline input[type="checkbox"]:focus-visible{
  outline:none;
  box-shadow:var(--focus);
}

.filters-grid--persona .btn,
.filters-grid--persona .btn-ghost{
  min-height:32px;
  height:32px;
  padding:0 10px;
  font-size:10px;
  letter-spacing:.16em;
  border-radius:10px;
}

.table-card{
  padding:18px 20px 20px;
}

.table-card__head{
  margin-bottom:10px;
}

.table-wrap--clipped{
  overflow-x:hidden;
}

.empty-copy{
  color:#bcc5d0;
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  line-height:1.5;
  margin-top:10px;
}

.table td.empty-copy{
  text-align:left;
}

.table-actions{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
}

.table-actions--inline{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.action-link{
  width:auto;
  display:inline-flex;
  align-items:center;
  opacity:.9;
}

.table-summary-card{
  position:relative;
}

.table-summary-card__action{
  position:absolute;
  top:16px;
  right:16px;
}

.table-summary-card__meta{
  padding-right:170px;
}

.partial-filter-form{
  margin-bottom:12px;
}

.partial-filter-layout{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:12px;
  align-items:end;
}

.partial-filter-fields{
  display:grid;
  gap:12px;
  align-items:end;
}

.partial-filter-fields--2{
  grid-template-columns:180px minmax(0, 1fr);
}

.partial-filter-fields--3{
  grid-template-columns:180px 180px minmax(0, 1fr);
}

.partial-filter-actions{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
}

.partial-pager{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-top:12px;
}

.form-grid-3{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
  align-items:start;
}

.form-grid-2{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  align-items:start;
}

.form-grid-3wide{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:12px;
  align-items:start;
}

.form-grid{
  display:grid;
  gap:12px;
  margin-top:.75rem;
}

.form-grid--single{
  grid-template-columns:1fr;
}

.form-grid-inline{
  display:flex;
  gap:12px;
  align-items:flex-end;
}

.form-grid-inline__grow{
  flex:1;
}

.form-grid-inline__narrow{
  flex:0 0 100px;
}

.form-section-copy{
  margin-top:.5rem;
}

.form-section-copy--top{
  margin-top:.75rem;
}

.form-actions{
  margin-top:14px;
}

.inline-form{
  display:inline;
}

.card--outlined{
  border-color:var(--line);
}

.card--danger{
  border-color:var(--danger-line);
  background:rgba(242,154,163,.06);
}

.card--spaced{
  margin-bottom:12px;
}

.details-card{
  margin:12px 0;
}

.details-card summary{
  cursor:pointer;
}

.visually-hidden-block{
  display:none;
}

.is-hidden{
  display:none !important;
}

.stack-12{
  margin-top:12px;
}

.stack-10{
  margin-top:10px;
}

.summary-grid--equal{
  grid-template-columns:1fr 1fr 1fr;
}

.table-actions-cell{
  text-align:right;
  white-space:nowrap;
}

.table-card .table-actions-cell{
  width:1%;
}

.icon-svg{
  width:21px;
  height:21px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex:0 0 auto;
}

.icon-svg--img{
  display:block;
  object-fit:contain;
  transition:transform .14s ease;
}

.table-actions .edit-link,
.table-actions--inline .edit-link,
.table-actions-cell .edit-link{
  opacity:.92;
}

.edit-link--danger{
  color:var(--danger);
}

.edit-link[title*="Eliminar"],
.edit-link[title*="Desconciliar"]{
  color:var(--danger);
}

.table-actions .edit-link:hover,
.table-actions--inline .edit-link:hover,
.table-actions-cell .edit-link:hover{
  opacity:.92;
  color:inherit;
}

.edit-link:hover .icon-svg,
.edit-link:hover .icon-svg--img{
  transform:scale(1.12);
}

.suscripcion-cargos-table{
  width:100%;
  table-layout:auto;
}

.suscripcion-cargos-table td,
.suscripcion-cargos-table th{
  white-space:normal;
}

.section-shell{
  margin-top:16px;
}

.mi-ficha-shell{
  padding:0;
}

.mi-ficha-shell__head{
  padding:18px 18px 14px;
}

.mi-ficha-shell__body{
  padding:0 18px 18px;
}

.mi-ficha-shell__toolbar{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  flex-wrap:wrap;
}

.year-kpi-grid{
  display:grid;
  gap:12px;
  margin-top:6px;
}

.year-kpi-card{
  min-height:126px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
}

.year-kpi-card__value{
  margin-top:8px;
}

.year-kpi-card__state{
  margin-top:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}

.section-divider{
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--line);
}

.detail-row{
  padding-top:0 !important;
}

.detail-card-inline{
  margin:8px 0 4px;
  padding:14px 16px;
}

.preview-box{
  margin-top:14px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:rgba(148,163,184,.06);
  display:none;
}

.mi-ficha-page{
  padding-top:18px;
}

.mi-ficha-profile-shell{
  padding:22px 22px 18px;
}

.mi-ficha-profile{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
}

.mi-ficha-profile__identity{
  display:flex;
  align-items:center;
  gap:18px;
  min-width:0;
}

.mi-ficha-profile__avatar{
  width:76px;
  height:76px;
  border-radius:22px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#101419;
  border:1px solid rgba(255,255,255,.05);
  color:var(--accent);
  font-family:var(--font-heading);
  font-size:1.9rem;
  letter-spacing:.02em;
}

.mi-ficha-profile__copy{
  min-width:0;
}

.mi-ficha-profile__title{
  margin:4px 0 12px;
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:1.18rem;
  line-height:1.08;
  letter-spacing:.01em;
}

.mi-ficha-profile__rail{
  display:grid;
  gap:10px;
  justify-items:end;
  flex:0 0 auto;
}

.mi-ficha-profile__tag{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 12px;
  border-radius:10px;
  border:1px solid rgba(157,226,255,.18);
  background:rgba(157,226,255,.12);
  color:#9de2ff;
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  white-space:nowrap;
}

.mi-ficha-profile__meta{
  display:grid;
  gap:4px;
  justify-items:end;
}

.mi-ficha-overview{
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:12px;
  margin-top:18px;
}

.mi-ficha-overview__card{
  min-height:122px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
}

.mi-ficha-overview__value{
  margin-top:8px;
}

.mi-ficha-overview__state{
  margin-top:10px;
  display:flex;
  align-items:center;
  gap:8px;
}

.mi-ficha-state-pill{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 12px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.05);
  background:#13181f;
  color:var(--text);
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  white-space:nowrap;
}

.mi-ficha-state-pill.state-activo{
  border-color:rgba(125,214,180,.16);
  background:rgba(125,214,180,.12);
  color:#7dd6b4;
}

.mi-ficha-state-pill.state-pausado{
  border-color:rgba(241,196,107,.16);
  background:rgba(241,196,107,.12);
  color:#f1c46b;
}

.mi-ficha-state-pill.state-cerrado{
  border-color:rgba(255,176,186,.16);
  background:rgba(255,176,186,.12);
  color:#ffb0ba;
}

.mi-ficha-state-pill.state-borrador{
  border-color:rgba(188,193,205,.14);
  background:rgba(188,193,205,.10);
  color:#bfc5d1;
}

.mi-ficha-overview__stack{
  margin-top:10px;
  display:grid;
  gap:6px;
  color:var(--text-strong);
  line-height:1.35;
}

.mi-ficha-overview__asset{
  margin-top:10px;
  display:grid;
  gap:6px;
  min-width:0;
  justify-items:center;
  text-align:center;
}

.mi-ficha-overview__asset-name{
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:13px;
  line-height:1.2;
  letter-spacing:.01em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.empty-copy--inline{
  margin:10px 0 0;
  min-height:auto;
  padding:0;
  border:0;
  background:transparent;
  justify-content:flex-start;
  text-align:left;
}

.mi-ficha-assets-grid{
  align-items:start;
}

.mi-ficha-year-select{
  width:auto;
  min-width:108px;
}

.mi-ficha-year-panel__divider{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
}

.mi-ficha-year-panel__table{
  margin-top:12px;
}

.mi-ficha-year-panel__state-copy{
  margin-left:8px;
}

.mi-ficha-year-panel__nested-table{
  margin-top:10px;
}

.mi-ficha-month__cell{
  display:flex;
  align-items:center;
  gap:10px;
}

.mi-ficha-month__toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  padding:0;
  border:1px solid rgba(157,226,255,.12);
  border-radius:9px;
  background:#12171d;
  color:var(--accent);
  cursor:pointer;
  flex:0 0 auto;
}

.mi-ficha-month__toggle svg{
  width:14px;
  height:14px;
  transition:transform .15s ease;
}

.mi-ficha-month__toggle[aria-expanded="true"] svg{
  transform:rotate(180deg);
}

.mi-ficha-month__toggle--ghost{
  visibility:hidden;
  pointer-events:none;
}

.mi-ficha-month__label{
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:13px;
  line-height:1.2;
  letter-spacing:.01em;
}

.mi-ficha-entity-link{
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:13px;
  letter-spacing:.01em;
  line-height:1.2;
  text-decoration:none;
}

.mi-ficha-entity-link:hover{
  color:var(--text);
}

.login-shell{
  max-width:560px;
  padding-top:40px;
}

.login-card{
  padding:22px;
}

.login-card__title{
  margin-top:4px;
  font-family:var(--font-heading);
  letter-spacing:.01em;
}

.login-card__copy{
  margin-top:6px;
}

.login-card__form{
  margin-top:18px;
}

.login-card__error{
  margin-bottom:12px;
}

.login-card__fields{
  grid-template-columns:1fr;
  gap:14px;
}

.login-card__field{
  margin:0;
}

.login-card__actions{
  margin-top:18px;
}

.mi-ficha-month__branch{
  position:relative;
  margin:2px 0 4px 34px;
  padding-left:34px;
}

.mi-ficha-month__branch::before{
  content:"";
  position:absolute;
  left:10px;
  top:-12px;
  bottom:18px;
  width:1px;
  background:rgba(157,226,255,.14);
}

.mi-ficha-month__branch::after{
  content:"";
  position:absolute;
  left:10px;
  top:20px;
  width:18px;
  height:1px;
  background:rgba(157,226,255,.14);
}

.mi-ficha-month__nested{
  margin:0 0 4px;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}

.mi-ficha-month__row--open > td{
  border-bottom-color:transparent;
}

@media (max-width: 980px){
  .stats-grid--5{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .mi-ficha-profile{
    flex-direction:column;
    align-items:flex-start;
  }

  .mi-ficha-profile__rail{
    justify-items:start;
  }

  .mi-ficha-overview{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .form-grid-3,
  .form-grid-2,
  .form-grid-3wide,
  .partial-filter-layout,
  .partial-filter-fields--2,
  .partial-filter-fields--3{
    grid-template-columns:1fr;
  }

  .form-grid-inline{
    flex-direction:column;
    align-items:stretch;
  }

  .form-grid-inline__narrow{
    flex:1 1 auto;
  }

  .partial-filter-actions{
    justify-content:flex-start;
  }

  .partial-pager{
    flex-direction:column;
    align-items:flex-start;
  }
}

@media (max-width: 980px){
  .filters-grid--4,
  .filters-grid--actions,
  .filters-grid--persona{
    grid-template-columns:1fr;
  }

  .filters-period{
    display:grid;
    grid-template-columns:minmax(0, 1fr) 90px;
  }

  .table-summary-card__meta{
    padding-right:0;
  }
}

@media (max-width: 720px){
  .mi-ficha-profile-shell{
    padding:18px 18px 16px;
  }

  .mi-ficha-profile__identity{
    align-items:flex-start;
  }

  .mi-ficha-profile__avatar{
    width:64px;
    height:64px;
    border-radius:18px;
    font-size:1.55rem;
  }

  .mi-ficha-month__branch{
    margin-left:14px;
    padding-left:20px;
  }

  .mi-ficha-overview{
    grid-template-columns:1fr;
  }
}
