@font-face{
  font-family:"Expressa Regular";
  src:
    local("Expressa Regular"),
    local("Expressa-Regular"),
    url("/static/fonts/Expressa-Regular.woff2") format("woff2");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

: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;
  --font-brand:"Expressa Regular", "Expressa", var(--font-heading);
  --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);
  font-size:14px;
  line-height:1.5;
  background:var(--bg);
  color:var(--text);
}

p{
  margin:0;
  color:var(--text);
  font-size:14px;
  line-height:1.6;
}

p + p{
  margin-top:10px;
}

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 td > a:not(.btn):not(.edit-link):not(.btn-link):hover,
.detail-facts-table a:hover,
.metric-inline a:hover,
.muted a:hover{
  color:var(--accent);
}

.doc-code{
  display:block;
  color:#9fb0bf;
  font-family:var(--font-heading);
  font-size:11px;
  line-height:1.25;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.doc-title{
  display:block;
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:inherit;
  line-height:1.25;
  letter-spacing:.01em;
}

a:hover .doc-title,
a.doc-title:hover{
  color:var(--accent);
}

.container{max-width:1100px;margin:0 auto;padding:24px}

.layout-default > .container{
  max-width:none;
  margin:0;
  padding:0;
}

.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;
}

/* Capa de transicion: permite vistas opt-in al app shell sin romper layouts SSR existentes. */
.app-shell{
  --app-left-width:240px;
  --app-right-width:380px;
  --sidebar-toggle-size:40px;
  width:100%;
  min-height:100vh;
  margin:0;
  padding:24px 28px;
  display:grid;
  grid-template-columns:var(--app-left-width) minmax(0, 1fr) var(--app-right-width);
  gap:20px;
  align-items:start;
  transition:grid-template-columns .2s ease, gap .2s ease;
}

.app-shell--topless{
  padding-top:18px;
}

.app-shell--left-collapsed{
  --app-left-width:84px;
}

.app-shell--right-collapsed{
  --app-right-width:56px;
}

.app-sidebar-left,
.app-sidebar-right{
  position:sticky;
  top:24px;
  display:grid;
  gap:12px;
  align-content:start;
  max-height:calc(100vh - 48px);
  overflow:hidden;
  min-width:0;
  transition:width .2s ease, opacity .18s ease;
}

.app-main{
  min-width:0;
}

.app-sidebar-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:40px;
  padding:4px 4px 0;
}

.app-sidebar-header--right{
  justify-content:flex-start;
}

.app-sidebar-header__content{
  min-width:0;
  flex:1 1 auto;
}

.app-sidebar-header__title{
  color:var(--muted);
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.app-sidebar-body{
  min-width:0;
  overflow:auto;
}

.app-sidebar-body--left,
.app-sidebar-body--right{
  max-height:calc(100vh - 100px);
}

.app-sidebar-body--left,
.app-sidebar-body--right,
.app-modal__body{
  scrollbar-width:thin;
  scrollbar-color:rgba(157,226,255,.28) transparent;
}

.app-sidebar-body--left::-webkit-scrollbar,
.app-sidebar-body--right::-webkit-scrollbar,
.app-modal__body::-webkit-scrollbar{
  width:8px;
}

.app-sidebar-body--left::-webkit-scrollbar-track,
.app-sidebar-body--right::-webkit-scrollbar-track,
.app-modal__body::-webkit-scrollbar-track{
  background:transparent;
}

.app-sidebar-body--left::-webkit-scrollbar-thumb,
.app-sidebar-body--right::-webkit-scrollbar-thumb,
.app-modal__body::-webkit-scrollbar-thumb{
  background:rgba(157,226,255,.22);
  border-radius:999px;
  border:2px solid transparent;
  background-clip:padding-box;
}

.app-sidebar-body--left::-webkit-scrollbar-thumb:hover,
.app-sidebar-body--right::-webkit-scrollbar-thumb:hover,
.app-modal__body::-webkit-scrollbar-thumb:hover{
  background:rgba(157,226,255,.34);
  background-clip:padding-box;
}

.app-sidebar-toggle{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  padding:0;
  box-sizing:border-box;
  line-height:1;
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  background:rgba(17,20,24,.92);
  color:var(--text);
  box-shadow:0 10px 30px rgba(0,0,0,.18);
  cursor:pointer;
  transition:background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.app-sidebar-toggle:hover{
  color:var(--accent);
  border-color:rgba(157,226,255,.28);
  background:rgba(24,28,34,.96);
}

.app-sidebar-toggle:focus-visible{
  outline:2px solid rgba(157,226,255,.45);
  outline-offset:2px;
}

.app-sidebar-toggle__icon{
  display:grid;
  place-items:center;
  width:16px;
  height:16px;
  margin:0;
  font-size:18px;
  line-height:1;
  text-align:center;
  transform-origin:center;
  transition:transform .16s ease;
}

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

.context-sidebar{
  display:grid;
  gap:14px;
  min-width:0;
}

.context-panel{
  min-width:0;
  background:rgba(24,28,34,.96);
  border:1px solid rgba(255,255,255,.05);
  border-radius:14px;
  padding:14px;
}

.context-panel__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

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

.context-panel__title{
  margin:4px 0 0;
  font-family:var(--font-heading);
  font-size:1rem;
  font-weight:400;
  line-height:1.15;
  color:var(--text-strong);
}

.context-panel__body{
  min-width:0;
}

.context-panel__actions{
  display:grid;
  gap:12px;
}

.context-panel--compact .context-panel__header{
  margin-bottom:10px;
}

.context-panel--compact .context-panel__body{
  display:grid;
  gap:12px;
}

.context-panel__hint{
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.55;
  text-wrap:pretty;
}

.context-panel__hint + .context-panel__hint{
  margin-top:8px;
}

.context-panel__table-wrap{
  margin-top:14px;
  max-width:100%;
}

.context-panel__table{
  min-width:760px;
}

.context-action{
  display:grid;
  gap:10px;
}

.simulation-status{
  display:grid;
  gap:6px;
}

.simulation-status__pill{
  width:max-content;
}

.app-sidebar-panel{
  box-shadow:none;
}

.app-sidebar-panel--global{
  display:grid;
  gap:18px;
  padding:18px 16px 16px;
  min-width:0;
  max-height:none;
  overflow:visible;
  transition:opacity .18s ease, transform .18s ease;
}

.context-sidebar::-webkit-scrollbar{
  width:10px;
}

.context-sidebar::-webkit-scrollbar-thumb{
  background:rgba(170,179,191,.18);
  border-radius:999px;
}

.app-sidebar-panel__head{
  margin-bottom:12px;
}

.app-sidebar-panel__title{
  font-size:1.15rem;
}

.app-sidebar__section + .app-sidebar__section{
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.05);
}

.app-sidebar__eyebrow{
  color:var(--muted);
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.app-sidebar__brand{
  display:grid;
  gap:12px;
}

.app-sidebar__brand-link{
  display:grid;
  gap:3px;
}

.app-sidebar__title{
  color:var(--text-strong);
  font-family:var(--font-brand);
  font-size:1.15rem;
  letter-spacing:.16rem;
}

.app-sidebar__brand-copy{
  color:var(--muted);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.app-sidebar__brand-org{
  display:grid;
  gap:4px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(255,255,255,.025);
  border:1px solid rgba(255,255,255,.04);
}

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

.app-sidebar__account{
  display:grid;
  gap:6px;
}

.app-sidebar__account-identity{
  display:flex;
  gap:10px;
  align-items:center;
  min-width:0;
}

.app-sidebar__account-avatar{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  min-width:38px;
  min-height:38px;
  border-radius:50%;
  aspect-ratio:1 / 1;
  box-sizing:border-box;
  background:#101419;
  border:1px solid rgba(255,255,255,.05);
  color:var(--accent);
  font-family:var(--font-heading);
  font-size:.95rem;
  font-weight:500;
  line-height:1;
  letter-spacing:.02em;
  flex:0 0 auto;
  overflow:hidden;
}

.app-sidebar__account-copy{
  min-width:0;
}

.app-sidebar__account-name{
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:14px;
  line-height:1.2;
}

.app-sidebar__account-name span{
  color:var(--accent);
}

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

.app-sidebar__indicators{
  display:grid;
  gap:10px;
}

.app-sidebar__indicator-list{
  display:grid;
  gap:6px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(255,255,255,.025);
  border:1px solid rgba(255,255,255,.04);
}

.app-sidebar__indicator-row{
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  align-items:center;
  gap:10px;
  font-size:11px;
  line-height:1.2;
  white-space:nowrap;
}

.app-sidebar__indicator-code{
  color:var(--muted);
  letter-spacing:.08em;
  text-transform:uppercase;
}

.app-sidebar__indicator-value{
  justify-self:end;
  color:var(--text-strong);
  font-variant-numeric:tabular-nums;
  text-align:right;
}

.app-sidebar__indicator-meta{
  color:var(--muted);
  font-size:10px;
  letter-spacing:.04em;
  line-height:1.4;
}

.app-sidebar__logout-form{
  margin:0;
}

.app-sidebar__logout-button{
  width:100%;
  cursor:pointer;
  font:inherit;
  text-align:left;
  background:none;
}

.app-sidebar__footer{
  margin-top:auto;
}

.app-sidebar-actions{
  display:grid;
  gap:10px;
}

.app-sidebar-meta{
  display:grid;
  gap:4px;
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.05);
}

.app-nav{
  display:grid;
  gap:4px;
  margin-top:12px;
}

.app-nav__item{
  display:flex;
  align-items:center;
  gap:10px;
  position:relative;
  width:100%;
  min-height:40px;
  padding:0 10px 0 12px;
  border-radius:10px;
  border:0;
  background:transparent;
  color:var(--text);
  font-family:var(--font-heading);
  font-size:13px;
  line-height:1.2;
  letter-spacing:.01em;
  transition:background .15s ease, color .15s ease;
  text-align:left;
}

.app-nav__item::before{
  content:"";
  position:absolute;
  left:0;
  top:7px;
  bottom:7px;
  width:3px;
  border-radius:999px;
  background:transparent;
}

.app-nav__item:hover{
  color:var(--accent);
  background:rgba(255,255,255,.03);
}

.app-nav__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  flex:0 0 24px;
  border-radius:8px;
  background:rgba(255,255,255,.04);
  color:#c3ccd6;
  font-size:9px;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.app-nav__icon svg{
  width:1.1rem;
  height:1.1rem;
  display:block;
}

.app-nav__label{
  min-width:0;
  flex:1 1 auto;
}

.app-nav__item.is-active{
  color:var(--text-strong);
  background:rgba(157,226,255,.1);
}

.app-nav__item.is-active::before{
  background:var(--accent);
}

.app-nav__item.is-active .app-nav__icon{
  background:rgba(157,226,255,.14);
  color:var(--accent);
}

/* Preparado para un futuro colapso del sidebar sin reescribir el HTML. */
.app-sidebar-left--collapsed .app-nav__label{
  display:none;
}

.app-sidebar-left--collapsed .app-nav__item{
  justify-content:center;
  padding:0;
}

.app-shell--left-collapsed .app-sidebar__eyebrow,
.app-shell--left-collapsed .app-sidebar__brand-copy,
.app-shell--left-collapsed .app-sidebar__brand-org,
.app-shell--left-collapsed .app-sidebar__indicators,
.app-shell--left-collapsed .app-sidebar__section-title,
.app-shell--left-collapsed .app-sidebar__footer{
  display:none;
}

.app-shell--left-collapsed .app-sidebar__brand{
  justify-items:center;
}

.app-shell--left-collapsed .app-sidebar__account{
  justify-items:center;
}

.app-shell--left-collapsed .app-sidebar__account-identity{
  justify-content:center;
}

.app-shell--left-collapsed .app-sidebar__account-copy{
  display:none;
}

.app-shell--left-collapsed .app-sidebar__account-avatar{
  width:34px;
  height:34px;
  min-width:34px;
  min-height:34px;
  font-size:.85rem;
}

.app-shell--left-collapsed .app-sidebar__brand-link{
  justify-items:center;
}

.app-shell--left-collapsed .app-sidebar-header{
  justify-content:center;
  padding-inline:0;
}

.app-shell--left-collapsed .app-sidebar-header__content{
  display:none;
}

.app-shell--left-collapsed .app-sidebar__title{
  font-size:.8rem;
  letter-spacing:.08em;
}

.app-shell--left-collapsed .app-nav{
  margin-top:0;
}

.app-shell--left-collapsed .app-nav__item{
  min-height:44px;
  justify-content:center;
}


.app-shell--left-collapsed .app-nav__icon{
  width:28px;
  height:28px;
  flex-basis:28px;
}

.app-shell--left-collapsed .app-nav__item::before{
  left:50%;
  top:auto;
  bottom:3px;
  width:18px;
  height:3px;
  transform:translateX(-50%);
}

.app-sidebar-right--collapsed{
  overflow:hidden;
}

.app-shell--right-collapsed .app-sidebar-right{
  justify-items:center;
}

.app-shell--right-collapsed .app-sidebar-header{
  justify-content:center;
  padding-inline:0;
}

.app-shell--right-collapsed .app-sidebar-right .app-sidebar-header__content,
.app-shell--right-collapsed .app-sidebar-right .app-sidebar-body{
  display:none;
}

.page-header{
  margin-bottom:26px;
}

.workspace-header{
  margin-bottom:18px;
}

.workspace-section + .workspace-section{
  margin-top:18px;
}

.workspace-card{
  border-color:rgba(255,255,255,.05);
}

.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:var(--font-brand);
  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, max-content);
  justify-content:center;
  align-items:center;
  column-gap:18px;
  row-gap:10px;
  width:max-content;
  max-width:100%;
  margin:0 auto;
}

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

.nav--ops a:nth-child(1){ grid-column:1; grid-row:1; }
.nav--ops a:nth-child(2){ grid-column:2; grid-row:1; }
.nav--ops a:nth-child(3){ grid-column:3; grid-row:1; }
.nav--ops a:nth-child(4){ grid-column:1; grid-row:2; }
.nav--ops a:nth-child(5){ grid-column:2; grid-row:2; }
.nav--ops a:nth-child(6){ grid-column:3; grid-row:2; }
.nav--ops a:nth-child(7){ grid-column:4; grid-row:1; }
.nav--ops a:nth-child(8){ grid-column:4; grid-row:2; }

.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);
}

.muted:not(.small){
  font-size:13px;
  line-height:1.55;
}

.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.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;
  box-shadow:var(--focus);
}

/* 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.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;
  justify-content: center;
  gap: .35rem;
  line-height: 1.1;
  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:12px;
  padding-bottom:40px;
}

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

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

.tree-page__hero{
  display:grid;
  gap:12px;
  margin-bottom:10px;
}

.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__hero-copy{
  display:grid;
  gap:0;
}

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

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

.tree-page__org-name{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  border:1px solid rgba(157,226,255,.16);
  background:rgba(157,226,255,.08);
  color:#9de2ff;
  font-family:var(--font-heading);
}

.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:22px;
}

.finance-dashboard{
  display:grid;
  gap:12px;
}

.finance-dashboard__header{
  align-items:center;
  margin-bottom:0;
}

.finance-dashboard__header-copy{
  display:grid;
  gap:6px;
}

.finance-dashboard__chip{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 9px;
  border:1px solid rgba(157,226,255,.12);
  border-radius:999px;
  background:rgba(157,226,255,.06);
  color:#9de2ff;
}

.finance-kpi-section{
  display:grid;
  gap:8px;
}

.finance-kpi-section + .finance-kpi-section{
  padding-top:0;
  border-top:0;
}

.finance-kpi-section__title-row{
  display:none;
}

.finance-kpi-section__title{
  margin:0;
  color:#aab3bf;
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:500;
}

.tree-kpi-grid.finance-kpi-grid{
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
}

.tree-kpi-grid.finance-kpi-grid--overview{
  grid-template-columns:repeat(3, minmax(280px, 1fr));
}

.finance-kpi-card{
  display:flex;
  flex-direction:column;
  min-height:0;
  padding:18px 18px 16px;
  background:#181d23;
}

.finance-kpi-card--risk{
  background:#171c22;
}

.finance-dashboard .tree-kpi-total{
  margin-top:0;
  padding-top:0;
  border-top:0;
}

.finance-dashboard .tree-kpi-total__label{
  font-size:12px;
}

.finance-dashboard .tree-kpi-total__value{
  font-size:1.28rem;
  font-weight:500;
}

.finance-dashboard .tree-kpi-item__currency{
  font-size:.6em;
}

.sim-panel{
  margin-bottom:1rem;
}

.app-modal{
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  width:min(1040px, calc(100vw - 48px));
  max-width:none;
}

.app-modal::backdrop{
  background:rgba(10, 12, 15, .72);
  backdrop-filter:blur(8px);
}

.app-modal__panel{
  display:grid;
  grid-template-rows:auto minmax(0, 1fr);
  max-height:min(88vh, 920px);
  border:1px solid rgba(255,255,255,.08);
  border-radius:22px;
  background:#11161c;
  box-shadow:0 24px 60px rgba(0,0,0,.42);
  overflow:hidden;
}

.app-modal__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:22px 24px 16px;
  border-bottom:1px solid rgba(255,255,255,.06);
}

.app-modal__header-copy{
  min-width:0;
}

.app-modal__title-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.app-modal__title{
  margin:0;
  font-family:var(--font-heading);
  font-size:1.35rem;
  font-weight:400;
  line-height:1.08;
}

.app-modal__subtitle{
  margin:8px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.5;
}

.app-modal__body{
  min-height:0;
  padding:24px 24px 24px;
  overflow:auto;
}

.app-modal__footer{
  padding:16px 24px 24px;
}

.app-modal__close{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:10px;
  background:rgba(255,255,255,.025);
  color:var(--text);
  font-size:20px;
  line-height:1;
  cursor:pointer;
  transition:background .16s ease, border-color .16s ease, color .16s ease;
}

.app-modal__close:hover,
.app-modal__close:focus-visible{
  border-color:rgba(157,226,255,.18);
  background:#141a21;
  color:#9de2ff;
}

.app-modal__close:focus-visible{
  outline:none;
  box-shadow:var(--focus);
}

.help-flow-grid{
  display:grid;
  gap:14px;
}

.help-flow-card{
  padding:16px;
}

.help-flow-card .context-panel__header{
  margin-bottom:12px;
}

.help-flow-card .context-panel__body{
  display:grid;
  gap:10px;
}

.help-flow-card--intro{
  margin-top:2px;
}

.help-flow-intro{
  color:var(--text-strong);
  font-size:14px;
  line-height:1.6;
}

.help-flow-step{
  display:inline-flex;
  align-items:center;
  width:max-content;
  min-height:30px;
  padding:0 12px;
  border-radius:999px;
  background:rgba(157,226,255,.08);
  border:1px solid rgba(157,226,255,.12);
  color:#9de2ff;
  font-family:var(--font-heading);
  font-size:12px;
  letter-spacing:.06em;
}

.simulator-summary-card{
  display:grid;
  gap:10px;
}

.simulator-summary-card__copy{
  display:grid;
  gap:3px;
}

.simulator-summary-card__actions{
  display:grid;
  gap:10px;
}

.simulation-detail{
  display:grid;
  gap:12px;
}

.simulation-detail__group{
  display:grid;
  gap:8px;
}

.simulation-detail__chips{
  gap:8px;
}

.simulation-detail__notes{
  display:grid;
  gap:6px;
}

.document-mini-nav{
  display:grid;
  gap:8px;
}

.document-mini-nav__item{
  display:grid;
  gap:4px;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.05);
  border-radius:12px;
  background:rgba(255,255,255,.015);
  color:inherit;
  text-decoration:none;
}

.document-mini-nav__item:hover,
.document-mini-nav__item:focus-visible{
  border-color:rgba(157,226,255,.16);
  background:rgba(157,226,255,.04);
}

.document-mini-nav__item:focus-visible{
  outline:none;
  box-shadow:var(--focus);
}

.document-mini-nav__title{
  color:var(--text);
  font-size:13px;
  line-height:1.35;
  overflow-wrap:anywhere;
}

.document-mini-nav__meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  color:var(--muted);
  font-size:11px;
  line-height:1.4;
}

.document-empty{
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
}

.sim-panel__details{
  padding:0;
  overflow:hidden;
}

.sim-panel__summary-toggle{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:18px 20px;
  cursor:pointer;
  list-style:none;
}

.sim-panel__summary-toggle::-webkit-details-marker{
  display:none;
}

.sim-panel__summary-copy{
  display:grid;
  gap:4px;
  min-width:0;
}

.sim-panel__summary-title{
  margin:0;
}

.sim-panel__summary-meta{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  flex:0 0 auto;
}

.sim-panel__body{
  padding:0 20px 20px;
}

.app-sidebar-right .sim-panel__body{
  padding:0;
}

.app-sidebar-right .sim-panel__summary-toggle{
  padding:0 0 12px;
}

.app-sidebar-right .sim-panel__form{
  padding:16px 0 0;
}

.app-modal .sim-panel{
  margin-bottom:0;
}

.app-modal .sim-panel__body{
  padding:18px 0 0;
}

.app-modal .sim-panel__form{
  margin-top:1rem;
  padding:0;
}

.app-modal .sim-panel .form-grid-2{
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px 16px;
}

.app-modal .sim-panel__actions{
  position:sticky;
  bottom:0;
  padding-top:16px;
  background:transparent;
}

@media (max-width: 980px){
  .app-modal{
    width:min(100vw - 24px, 100vw);
  }

  .app-modal__header{
    padding:18px 18px 14px;
  }

  .app-modal__body{
    padding:0 18px 18px;
  }

  .app-modal .sim-panel .form-grid-2{
    grid-template-columns:1fr;
  }

  .simulator-summary-card__actions > *{
    width:100%;
  }
}

@media (prefers-reduced-motion: reduce){
  .app-modal__close{
    transition:none;
  }
}

.sim-panel__intro{
  display:grid;
  gap:4px;
}

.sim-panel__form{
  margin-top:.85rem;
  padding:18px 20px 20px;
}

.sim-panel__section{
  padding:14px 16px 16px;
  border:1px solid rgba(255,255,255,.05);
  border-radius:14px;
  background:rgba(255,255,255,.015);
  min-width:0;
}

.sim-panel__section + .sim-panel__section{
  margin-top:16px;
}

.sim-panel__field{
  display:grid;
  gap:6px;
  min-width:0;
}

.app-sidebar-right .sim-panel .form-grid-2{
  grid-template-columns:1fr;
  gap:14px;
}

.sim-panel__field-label{
  color:var(--text);
  font-size:13px;
  line-height:1.4;
}

.sim-panel .filter-card__head{
  margin-bottom:12px;
  padding-bottom:8px;
  border-bottom:1px solid rgba(255,255,255,.05);
}

.sim-panel select[multiple]{
  min-height:216px;
  background-image:none;
  padding-right:12px;
  max-width:100%;
}

.sim-panel select[multiple] option{
  padding:4px 0;
}

.sim-panel__selected{
  display:grid;
  gap:6px;
  margin-top:6px;
}

.sim-panel__selected-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  flex-wrap:wrap;
}

.sim-panel__selected-list{
  min-height:28px;
  overflow-wrap:anywhere;
}

.sim-panel__selected-chip{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  cursor:pointer;
  background:rgba(255,255,255,.04);
  color:var(--text);
  border-color:rgba(255,255,255,.08);
  text-align:left;
}

.sim-panel__selected-chip:hover{
  border-color:rgba(94,212,255,.24);
  background:#131821;
}

.sim-panel__selected-empty{
  display:inline-flex;
  align-items:center;
  min-height:24px;
}

.sim-panel__actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.app-sidebar-right .sim-panel__actions > *{
  width:100%;
}

.sim-panel__status{
  margin-top:.75rem;
}

.sim-panel__summary{
  margin-top:.65rem;
}

.sim-panel__extra-line,
.sim-panel__safety-copy,
.sim-panel__invalid{
  margin-top:.45rem;
}

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

.kpi-group,
.tree-kpi-block{
  position:relative;
  min-height:230px;
  padding:24px;
  background:#181c22;
  border:1px solid rgba(255,255,255,.05);
  border-radius:16px;
}

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

.tree-kpi-block--comp{
  background:#181c22;
  display:flex;
  flex-direction:column;
}

.tree-kpi-block--cash{
  background:#1b2027;
  border-color:rgba(157,226,255,.12);
}

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

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

.tree-kpi-list--compact-four{
  flex:1;
  align-content:start;
  grid-template-rows:repeat(4, minmax(0, auto));
  gap:8px;
}

.tree-kpi-item{
  display:grid;
  gap:4px;
  align-content:start;
}

.kpi-compare-row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:start;
  gap:12px;
}

.kpi-compare-row__label{
  min-width:0;
}

.kpi-compare-row__values{
  display:grid;
  gap:4px;
  justify-items:end;
  text-align:right;
}

.kpi-compare-row__value{
  color:#e0e2eb;
  font-size:1.02rem;
  line-height:1.05;
  font-weight:400;
  white-space:nowrap;
}

.kpi-compare-row__value--base{
  color:#e0e2eb;
}

.kpi-compare-row__value--base-overridden{
  color:rgba(224,226,235,.72);
  opacity:.78;
  text-decoration:line-through;
  text-decoration-thickness:1px;
  text-decoration-color:rgba(224,226,235,.42);
}

.kpi-compare-row__value--simulated{
  color:#f3e4a0;
  font-weight:500;
}

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

.tree-kpi-item__label,
.tree-kpi-inline__label,
.tree-kpi-total__label{
  color:#aab3bf;
  font-size:12px;
  line-height:1.35;
}

.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:1.5rem;
  line-height:.98;
  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:10px;
  font-style:italic;
}

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

.tree-kpi-list--compact-four .tree-kpi-inline{
  min-height:0;
}

.tree-kpi-inline__value{
  color:#d5dbe4;
  font-size:.94rem;
  font-weight:400;
  text-align:right;
  white-space:nowrap;
}

.tree-kpi-list .tree-kpi-inline{
  min-height:0;
}

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

.tree-kpi-total--inline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:30px;
}

.tree-kpi-total--inline .tree-kpi-total__value{
  margin-top:0;
  text-align:right;
  white-space:nowrap;
}

.tree-kpi-total--flat{
  display:grid;
  gap:8px;
  margin-top:0;
  padding-top:0;
  border-top:0;
}

.tree-kpi-total--flat .tree-kpi-item{
  gap:4px;
}

.tree-kpi-list--compact-four .tree-kpi-total--flat{
  gap:8px;
}

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

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

.tree-kpi-total__value--positive{
  color:#cfe9da;
}

.tree-kpi-total--secondary .tree-kpi-total__value{
  font-size:1.2rem;
}

.finance-kpi-card .tree-kpi-item:first-child .tree-kpi-item__value,
.finance-kpi-card .tree-kpi-total__value{
  color:#f2f5fb;
}

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

.finance-kpi-card .tree-kpi-total__value--positive{
  color:#cfe9da;
}

.finance-kpi-card--risk .tree-kpi-total{
  border-top-color:rgba(242,154,163,.12);
}

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

.finance-dashboard .tree-kpi-list{
  gap:8px;
}

.finance-dashboard .kpi-compare-row{
  min-height:38px;
  align-items:center;
}

.finance-dashboard .kpi-compare-row__values{
  align-self:center;
}

.finance-kpi-breakdown{
  display:grid;
  gap:6px;
}

.finance-kpi-breakdown__summary{
  display:block;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  cursor:pointer;
  list-style:none;
  outline:none;
  width:100%;
}

.finance-kpi-breakdown__summary .kpi-compare-row{
  width:100%;
  box-sizing:border-box;
  transition:color .18s ease;
}

.finance-kpi-breakdown__summary::-webkit-details-marker{
  display:none;
}

.finance-kpi-breakdown__summary::marker{
  display:none;
}

.finance-kpi-breakdown__summary .kpi-compare-row__label,
.finance-kpi-breakdown__summary .kpi-compare-row__value,
.finance-kpi-breakdown__summary .kpi-compare-row__unit{
  transition:color .18s ease, opacity .18s ease, text-decoration-color .18s ease;
}

.finance-kpi-breakdown__summary:hover .kpi-compare-row__label,
.finance-kpi-breakdown__summary:hover .kpi-compare-row__value,
.finance-kpi-breakdown__summary:hover .kpi-compare-row__unit{
  color:var(--accent);
}

.finance-kpi-breakdown__summary:focus-visible .kpi-compare-row__label,
.finance-kpi-breakdown__summary:focus-visible .kpi-compare-row__value,
.finance-kpi-breakdown__summary:focus-visible .kpi-compare-row__unit{
  color:var(--accent);
}

.finance-kpi-breakdown__summary:focus-visible .kpi-compare-row__label{
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}

.finance-kpi-breakdown[open] .finance-kpi-breakdown__summary .kpi-compare-row__label,
.finance-kpi-breakdown[open] .finance-kpi-breakdown__summary .kpi-compare-row__value,
.finance-kpi-breakdown[open] .finance-kpi-breakdown__summary .kpi-compare-row__unit{
  color:var(--accent);
}

.finance-kpi-breakdown__body{
  display:grid;
  grid-template-rows:0fr;
  margin-left:20px;
  padding-left:14px;
  opacity:0;
  transform:translateY(-3px);
  transition:grid-template-rows .2s ease, opacity .2s ease, transform .2s ease;
}

.finance-kpi-breakdown[open] .finance-kpi-breakdown__body{
  grid-template-rows:1fr;
  opacity:1;
  transform:none;
}

.finance-kpi-breakdown__body-inner{
  display:grid;
  gap:8px;
  overflow:hidden;
  padding-top:2px;
}

.finance-kpi-breakdown__row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
}

.finance-kpi-breakdown__label{
  color:rgba(170,179,191,.78);
  font-size:11px;
  line-height:1.35;
}

.finance-kpi-breakdown__value{
  display:inline-flex;
  align-items:baseline;
  justify-content:flex-end;
  gap:6px;
  color:#dfe4ee;
  font-size:.82rem;
  font-weight:500;
  white-space:nowrap;
  text-align:right;
}

.finance-kpi-breakdown__amount{
  color:inherit;
  font-size:inherit;
  line-height:1.05;
  font-weight:500;
}

.finance-kpi-breakdown__currency{
  color:rgba(224,226,235,.62);
}

@media (max-width: 1520px){
  .tree-kpi-grid.finance-kpi-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1320px){
  .tree-kpi-grid.finance-kpi-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px){
  .tree-kpi-grid.finance-kpi-grid{
    grid-template-columns:1fr;
  }

  .finance-kpi-breakdown__body{
    margin-left:12px;
    padding-left:10px;
  }

  .finance-kpi-breakdown__row{
    align-items:flex-start;
    flex-direction:column;
    gap:2px;
  }
}

@media (prefers-reduced-motion: reduce){
  .finance-kpi-breakdown__summary .kpi-compare-row,
  .finance-kpi-breakdown__body{
    transition:none;
  }
}

.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;
}

.procedure-tree-panel{
  border-color:rgba(157,226,255,.08);
}

.procedure-tree-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}

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

.procedure-tree-panel .tree-panel-title{
  font-size:1.5rem;
}

.procedure-tree-subtitle{
  margin:10px 0 0;
  max-width:58ch;
  color:var(--muted);
  font-size:13px;
  line-height:1.55;
}

.procedure-tree-panel .tree-rows{
  padding-bottom:6px;
}

.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--collapsible{
  position:relative;
}

.tree-node__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);
  flex:0 0 auto;
  transition:background .16s ease, border-color .16s ease, transform .16s ease;
  cursor:pointer;
}

.tree-node__toggle-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.tree-node__toggle-icon{
  width:14px;
  height:14px;
  transition:transform .18s ease;
}

.tree-node__toggle[aria-expanded="true"] .tree-node__toggle-icon{
  transform:rotate(180deg);
}

.tree-node__toggle:hover,
.tree-node__toggle:focus-visible{
  background:#141a21;
  border-color:rgba(157,226,255,.18);
}

.tree-node__toggle:focus-visible{
  outline:none;
  box-shadow:var(--focus);
}

.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--collapsible .tree-node__main{
  gap:12px;
}

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

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

.tree-node__title--child{
  font-size:.88rem;
  color:#d8dee7;
}

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

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

.tree-node__child-kicker{
  margin-bottom:4px;
  color:#7f95aa;
  font-size:9px;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.tree-node__empty{
  color:rgba(170,179,191,.72);
  font-size:11px;
}

.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__struct-item,
.tree-node__struct-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:22px;
  padding:3px 8px;
  border-radius:999px;
  border:1px solid rgba(157,226,255,.12);
  background:rgba(157,226,255,.06);
  color:#9de2ff;
  font-size:10px;
  font-weight:600;
  line-height:1;
  white-space:nowrap;
}

.tree-node__struct-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:10px;
  color:#7fd3f8;
  font-size:10px;
  line-height:1;
}

.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;
  min-height:0;
}

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

.tree-node__children-wrap{
  overflow:hidden;
  height:auto;
  opacity:1;
  transition:height .22s ease, opacity .18s ease;
}

.tree-node__children-inner{
  min-height:0;
}

.tree-node--collapsed .tree-node__children-wrap{
  height:0;
  opacity:0;
}

.tree-node__row--child{
  position:relative;
  margin-left:46px;
  padding-top:12px;
  padding-bottom:12px;
  padding-left:40px;
  background:rgba(255,255,255,.015);
}

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

@media (max-width: 980px){
  .app-shell{
    grid-template-columns:1fr;
    min-height:auto;
    transition:none;
  }

  .app-sidebar-left,
  .app-sidebar-right{
    position:static;
    max-height:none;
    overflow:visible;
  }

  .app-sidebar-toggle{
    display:none;
  }

  .app-shell--left-collapsed,
  .app-shell--right-collapsed{
    --app-left-width:240px;
    --app-right-width:380px;
  }

  .tree-page__hero{
    gap:10px;
  }

  .kpi-grid,
  .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 (prefers-reduced-motion: reduce){
  .app-shell,
  .app-sidebar-left,
  .app-sidebar-right,
  .app-sidebar-panel--global,
  .app-sidebar-toggle,
  .app-sidebar-toggle__icon,
  .app-shell--right-collapsed .app-sidebar-right > :not(.app-sidebar-toggle){
    transition:none;
  }
}

@media (max-width: 720px){
  .app-shell{
    padding:16px;
    gap:16px;
  }

  .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;
  }
}

@media (prefers-reduced-motion: reduce){
  .tree-node__toggle,
  .tree-node__toggle-icon,
  .tree-node__children-wrap{
    transition:none;
  }
}

/* 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:block;
  min-height:32px;
  padding:0 10px;
  margin-bottom:0;
  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:normal;
  line-height:normal;
}

.check-inline__content{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:100%;
  position:relative;
  top:0;
}

.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;
  position:relative;
  top:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  flex:0 0 13px;
  transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.check-inline__label{
  display:inline-block;
  line-height:normal;
}

.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;
}

.interview-container{
  max-width:1360px;
}

.interview-stages{
  padding:16px 18px 18px;
}

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

.interview-stage{
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  padding-top:10px;
  color:var(--muted);
  font-size:10px;
  letter-spacing:.16em;
  line-height:1.4;
  text-transform:uppercase;
}

.interview-stage::before{
  content:"";
  position:absolute;
  top:0;
  left:19px;
  right:-12px;
  height:1px;
  background:rgba(60,73,78,.28);
}

.interview-stage:last-child::before{
  right:0;
}

.interview-stage__marker{
  position:relative;
  z-index:1;
  width:9px;
  height:9px;
  flex:0 0 9px;
  border-radius:999px;
  border:1px solid rgba(157,226,255,.55);
  background:#101419;
}

.interview-stage:hover{
  color:var(--text);
}

.interview-section{
  scroll-margin-top:92px;
}

.interview-section + .interview-section,
.interview-stages + .interview-section{
  margin-top:16px;
}

.interview-container form > .actions{
  margin-top:16px;
}

.interview-competency__title{
  margin:0;
  color:var(--text);
  font-size:16px;
  font-weight:600;
  line-height:1.35;
}

.interview-competency__layout{
  display:grid;
  grid-template-columns:minmax(0, 1.45fr) minmax(280px, .85fr);
  gap:18px;
  align-items:start;
}

.interview-competency__guide,
.interview-competency__fields{
  display:grid;
  gap:12px;
}

.interview-competency__guide{
  padding-left:14px;
  border-left:1px solid rgba(157,226,255,.22);
}

.choice-segmented{
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:8px;
  margin-top:4px;
}

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

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

.choice-segmented__item{
  position:relative;
  display:flex;
  min-width:0;
  cursor:pointer;
}

.choice-segmented__item input[type="radio"]{
  position:absolute;
  opacity:0;
  inset:0;
  margin:0;
}

.choice-segmented__item span{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:40px;
  padding:8px 10px;
  border:1px solid rgba(255,255,255,.05);
  border-radius:12px;
  background:#0b0e14;
  color:var(--muted);
  font-size:11px;
  line-height:1.35;
  text-align:center;
  transition:border-color .15s ease, background .15s ease, color .15s ease, box-shadow .15s ease;
}

.choice-segmented__item:hover span{
  border-color:rgba(94,212,255,.24);
  color:var(--text);
}

.choice-segmented__item input[type="radio"]:checked + span{
  border-color:rgba(157,226,255,.52);
  background:rgba(157,226,255,.1);
  color:var(--text);
  box-shadow:0 0 0 3px rgba(94,212,255,.08);
}

.choice-segmented__item--success input[type="radio"]:checked + span{
  border-color:rgba(111,189,149,.3);
  background:rgba(111,189,149,.1);
  box-shadow:0 0 0 3px rgba(111,189,149,.08);
}

.choice-segmented__item--warn input[type="radio"]:checked + span{
  border-color:rgba(250,204,21,.28);
  background:rgba(250,204,21,.08);
  box-shadow:0 0 0 3px rgba(250,204,21,.08);
}

.choice-segmented__item--danger input[type="radio"]:checked + span{
  border-color:rgba(242,154,163,.32);
  background:rgba(242,154,163,.1);
  box-shadow:0 0 0 3px rgba(242,154,163,.08);
}

.choice-segmented__item input[type="radio"]:focus-visible + span{
  box-shadow:var(--focus);
}

.choice-segmented__item[data-tooltip]::after{
  min-width:180px;
  max-width:min(320px, 80vw);
  font-size:12px;
  line-height:1.5;
  letter-spacing:0;
  text-transform:none;
}

.interview-competency__comment textarea{
  min-height:112px;
}

.interview-history__item{
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.05);
  border-radius:12px;
  background:rgba(255,255,255,.02);
}

.history-accordion{
  margin:0;
}

.history-accordion__summary{
  list-style:none;
  cursor:pointer;
}

.history-accordion__summary::-webkit-details-marker{
  display:none;
}

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

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

.history-accordion__body{
  margin-top:14px;
  display:grid;
  gap:14px;
}

.history-accordion__group{
  display:grid;
  gap:10px;
}

.summary-token-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.summary-token{
  gap:8px;
  min-width:0;
  padding:6px 8px;
  border-color:rgba(255,255,255,.05);
  background:rgba(255,255,255,.02);
}

.summary-token__label{
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted);
  font-size:11px;
  line-height:1.3;
}

.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;
  display:grid;
  gap:4px;
  list-style:none;
}

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

.details-card summary::marker{
  content:"";
}

.ops-section{
  display:grid;
  gap:14px;
}

.ops-section__head-copy{
  display:grid;
  gap:7px;
}

.ops-section__description{
  max-width:72ch;
  text-wrap:pretty;
}

.ops-section__summary{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.ops-cards{
  display:grid;
  gap:12px;
}

.ops-service-card{
  display:grid;
  gap:14px;
  padding:18px;
}

.ops-service-card__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}

.ops-service-card__title-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:8px;
}

.ops-service-card__meta,
.ops-service-card__summary-line{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:13px;
}

.ops-service-card__summary-line strong{
  color:var(--text);
  font-weight:600;
}

.ops-service-card__actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}

.ops-service-card__details{
  margin:0;
  border-top:1px solid rgba(255,255,255,.06);
  padding-top:12px;
}

.ops-service-card__details summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  list-style:none;
  color:#dbe2ea;
}

.ops-service-card__details summary::-webkit-details-marker{
  display:none;
}

.ops-service-card__details summary::marker{
  content:"";
}

.ops-service-card__details-label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  font-weight:600;
  color:#dbe2ea;
}

.ops-service-card__details-label::before{
  content:"+";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.03);
  color:#9de2ff;
  font-size:15px;
  line-height:1;
}

.ops-service-card__details[open] .ops-service-card__details-label::before{
  content:"−";
}

.ops-service-card__details-note{
  color:var(--muted);
  font-size:12px;
}

.ops-service-card__details-body{
  margin-top:12px;
}

.ops-service-card__empty{
  display:grid;
  gap:6px;
}

.ops-service-card__empty .empty-copy{
  margin:0;
}

.ops-payment-row td:first-child{
  border-left:3px solid transparent;
}

.ops-payment-row--pendiente td:first-child{
  border-left-color:rgba(242,154,163,.42);
}

.ops-payment-row--parcial td:first-child{
  border-left-color:rgba(250,204,21,.34);
}

.ops-payment-row--pagado td:first-child{
  border-left-color:rgba(111,189,149,.34);
}

.ops-payment-row--anulado{
  opacity:.82;
}

.ops-payment-row--anulado td:first-child{
  border-left-color:rgba(170,179,191,.24);
}

.ops-sidebar-period{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  border:1px solid rgba(157,226,255,.16);
  background:rgba(157,226,255,.06);
  color:#9de2ff;
  font-size:12px;
}

.resource-card{
  gap:10px;
}

.resource-card .ops-service-card__meta{
  row-gap:6px;
}

.resource-card .ops-service-card__summary-line{
  color:var(--muted);
}

.resource-card .ops-service-card__summary-line .ui-record{
  color:var(--text-strong);
}

@media (max-width: 900px){
  .ops-service-card__top,
  .ops-service-card__details summary{
    flex-direction:column;
    align-items:flex-start;
  }

  .ops-service-card__actions{
    justify-content:flex-start;
  }
}

.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;
}

.registro-list{
  display:grid;
  gap:12px;
}

.registro-list__item{
  padding:16px;
  border-radius:14px;
  background:#101419;
  border:1px solid rgba(255,255,255,.04);
}

.registro-list__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}

.registro-list__title{
  display:inline-block;
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:1rem;
  line-height:1.2;
  letter-spacing:.01em;
}

.registro-list__title:hover{
  color:var(--accent);
}

.registro-list__meta,
.registro-meta-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:10px;
}

.registro-list__summary{
  margin-top:12px;
  font-size:14px;
  line-height:1.55;
}

.registro-layout{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
  align-items:start;
}

.registro-panel{
  min-width:0;
  padding:20px;
}

.registro-panel--context{
  max-width:none;
}

.registro-panel__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

.registro-copy-block{
  margin-top:18px;
}

.registro-copy-block p{
  margin:10px 0 0;
  line-height:1.6;
}

.registro-preview{
  overflow:hidden;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.05);
  background:#0f1419;
  min-height:720px;
}

.registro-preview__frame{
  width:100%;
  min-height:720px;
  border:0;
  display:block;
  background:#0b0f14;
}

.registro-actions{
  justify-content:flex-start;
}

.registro-richtext{
  line-height:1.65;
}

.registro-richtext > *:first-child{
  margin-top:0;
}

.registro-preview-warning{
  margin-top:14px;
}

.registro-version-stack{
  display:grid;
  gap:18px;
  margin-top:20px;
}

.registro-version-group{
  min-width:0;
}

.registro-version-group-list{
  display:grid;
  gap:12px;
  margin-top:12px;
}

.registro-changelog{
  display:grid;
  gap:12px;
  margin-top:12px;
}

.registro-changelog__item{
  position:relative;
  display:grid;
  grid-template-columns:16px minmax(0, 1fr);
  gap:12px;
  padding:0;
}

.registro-changelog__item::before{
  content:"";
  position:absolute;
  left:7px;
  top:18px;
  bottom:-12px;
  width:1px;
  background:rgba(255,255,255,.06);
}

.registro-changelog__item:last-child::before{
  display:none;
}

.registro-changelog__marker{
  position:relative;
  width:16px;
}

.registro-changelog__marker::after{
  content:"";
  position:absolute;
  top:8px;
  left:2px;
  width:10px;
  height:10px;
  border-radius:999px;
  background:#8fa0b1;
  box-shadow:0 0 0 4px rgba(143,160,177,.08);
}

.registro-changelog__item--current .registro-changelog__marker::after{
  background:var(--accent);
  box-shadow:0 0 0 4px rgba(157,226,255,.12);
}

.registro-changelog__body{
  padding:14px 16px 16px;
  border-radius:16px;
  background:#0f141a;
  border:1px solid rgba(255,255,255,.04);
}

.registro-changelog__item--current .registro-changelog__body{
  border-color:rgba(157,226,255,.12);
  background:#101820;
}

.registro-changelog__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}

.registro-changelog__title-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

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

.registro-changelog__meta{
  display:flex;
  align-items:center;
  gap:8px 12px;
  flex-wrap:wrap;
  margin-top:6px;
  color:var(--muted);
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  line-height:1.5;
}

.registro-changelog__note{
  margin:12px 0 0;
  color:#c8d1db;
  font-size:13px;
  line-height:1.6;
}

.registro-changelog__empty{
  margin-top:12px;
}

.registro-version-card{
  padding:14px 16px 16px;
  border-radius:16px;
  background:#0f141a;
  border:1px solid rgba(255,255,255,.04);
}

.registro-version-card--current{
  margin-top:12px;
  border-color:rgba(157,226,255,.12);
  background:#101820;
}

.registro-version-card__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

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

.registro-version-card__meta{
  margin-top:6px;
  color:var(--muted);
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  line-height:1.5;
}

.registro-file-list{
  display:grid;
  gap:10px;
}

.registro-file-item{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px;
  border-radius:14px;
  background:#101419;
  border:1px solid rgba(255,255,255,.04);
}

.registro-file-item--principal{
  border-color:rgba(157,226,255,.16);
  background:#111820;
}

.registro-file-item__body{
  min-width:0;
}

.registro-file-item__title{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:14px;
  line-height:1.3;
}

.registro-file-item__meta{
  margin-top:6px;
  color:var(--muted);
  font-size:12px;
  line-height:1.55;
}

.registro-file-item__note{
  margin-top:8px;
  color:#c8d1db;
  font-size:13px;
  line-height:1.6;
}

.wiki-hero{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0, 1.7fr) minmax(260px, .9fr);
  gap:18px;
  padding:28px;
  border-radius:24px;
  background:
    radial-gradient(circle at top left, rgba(157,226,255,.10), transparent 42%),
    linear-gradient(135deg, rgba(20,27,35,.96), rgba(14,18,24,.96));
  border:1px solid rgba(157,226,255,.10);
  box-shadow:0 24px 48px rgba(0,0,0,.22);
}

.wiki-hero__title{
  margin:0;
  font-family:var(--font-brand);
  font-size:clamp(2.5rem, 5vw, 4.3rem);
  font-weight:400;
  line-height:.96;
  letter-spacing:.04em;
  color:var(--text-strong);
}

.wiki-hero__copy{
  max-width:60ch;
  margin:16px 0 0;
  color:#c8d1db;
  font-size:1.02rem;
  line-height:1.7;
}

.wiki-hero__copy-lead{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 10px;
  color:#bfeaff;
  font-family:var(--font-heading);
  font-size:11px;
  font-weight:600;
  line-height:1;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.wiki-hero__copy-lead::before{
  content:"";
  width:26px;
  height:1px;
  background:rgba(157,226,255,.42);
}

.wiki-hero__copy-body{
  color:#c8d1db;
  font-size:.94rem;
  line-height:1.68;
}

.wiki-hero__actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:22px;
}

.wiki-hero__rail{
  display:grid;
  gap:12px;
  align-content:start;
}

.wiki-stat-card{
  padding:14px 16px 16px;
  border-radius:18px;
  background:rgba(9,14,19,.28);
  border:1px solid rgba(255,255,255,.03);
}

.wiki-stat-card__inline{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
}

.wiki-stat-card__value{
  color:#d9e0e8;
  font-family:var(--font-heading);
  font-size:1.2rem;
  line-height:1;
  letter-spacing:.01em;
}

.wiki-stat-card .muted{
  display:block;
  margin-top:4px;
  font-size:12px;
  line-height:1.55;
  color:#8f9aa7;
}

.wiki-home-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
  margin-top:20px;
  align-items:start;
}

.wiki-home-grid--tree{
  grid-template-columns:minmax(0, 1.1fr) minmax(320px, .9fr);
}

.wiki-panel{
  padding:20px;
}

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

.wiki-panel__head--hero{
  margin-bottom:14px;
}

.wiki-panel__title{
  margin:6px 0 0;
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:1.25rem;
  font-weight:400;
  line-height:1.1;
  letter-spacing:.01em;
}

.wiki-panel__actions{
  margin-top:16px;
}

.wiki-panel__actions--inline{
  margin-top:0;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.wiki-tree-panel__intro{
  margin:-2px 0 16px;
  font-size:13px;
  line-height:1.6;
}

.wiki-tree-panel__meta{
  margin-top:6px;
}

.wiki-compact-list{
  display:grid;
  gap:2px;
  padding:2px;
  border-radius:16px;
  background:rgba(255,255,255,.015);
  border:1px solid rgba(255,255,255,.035);
}

.wiki-compact-row{
  display:grid;
  gap:14px;
  align-items:center;
  min-height:42px;
  padding:7px 10px;
  border-radius:12px;
  background:transparent;
  border:1px solid transparent;
  transition:border-color .15s ease, background .15s ease;
}

.wiki-compact-row:hover{
  border-color:rgba(157,226,255,.12);
  background:rgba(157,226,255,.035);
}

.wiki-compact-identity{
  display:grid;
  gap:1px;
  min-width:0;
  font-size:.9rem;
}

.wiki-compact-identity:hover .doc-title{
  color:var(--accent);
}

.wiki-compact-list .doc-code{
  font-size:10px;
  letter-spacing:.1em;
}

.wiki-compact-list .doc-title{
  font-size:.92em;
}

.wiki-compact-info{
  display:grid;
  align-items:center;
  gap:10px;
  min-width:0;
  color:#8d99a6;
  font-size:11px;
  line-height:1.35;
  white-space:nowrap;
}

.wiki-compact-info__cell{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}

.wiki-tree{
  display:grid;
}

.wiki-tree-node{
  display:grid;
  gap:2px;
}

.wiki-tree-node__row{
  grid-template-columns:minmax(0, 1fr) minmax(390px, .95fr);
}

.wiki-tree-node__main{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
}

.wiki-tree-node__toggle{
  display:inline-grid;
  place-items:center;
  width:18px;
  height:22px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#8f9aa7;
  transition:color .15s ease, transform .15s ease;
  flex:0 0 18px;
}

.wiki-tree-node__toggle:hover{
  color:var(--accent);
  background:transparent;
  transform:translateY(-1px);
}

.wiki-tree-node__toggle-mark{
  font-family:var(--font-heading);
  font-size:1rem;
  line-height:1;
}

.wiki-tree-node__bullet{
  width:18px;
  height:22px;
  position:relative;
  flex:0 0 18px;
}

.wiki-tree-node__bullet::after{
  content:"";
  position:absolute;
  inset:9px;
  border-radius:999px;
  background:rgba(157,226,255,.28);
}

.wiki-tree-node__content{
  min-width:0;
  display:grid;
  gap:2px;
}

.wiki-tree-node__line{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  flex-wrap:wrap;
}

.wiki-tree-node__identity{
  /* Inherits sizing and hover behavior from .wiki-compact-identity. */
}

.wiki-tree-node__info{
  grid-template-columns:minmax(74px, .72fr) minmax(86px, .78fr) minmax(104px, .9fr) minmax(76px, .72fr);
}

.wiki-tree-node__info-cell--kind,
.wiki-tree-node__info-cell--version{
  display:flex;
  align-items:center;
}

.wiki-tree-node__info-cell--count{
  text-align:right;
}

.wiki-tree-node--branch > .wiki-tree-node__row{
  background:rgba(255,255,255,.01);
}

.wiki-tree-node--leaf .wiki-tree-node__row:hover{
  transform:none;
}

.wiki-tree-node--leaf .wiki-tree-node__content{
  gap:0;
}

.wiki-tree-node--leaf .wiki-tree-node__identity{
  font-size:.86rem;
}

.wiki-tree-node--leaf .wiki-tree-node__line{
  gap:7px;
}

.wiki-tree-node__children{
  display:grid;
  gap:2px;
  margin-left:11px;
  padding-left:13px;
  border-left:1px solid rgba(157,226,255,.08);
}

.wiki-tree-node__empty{
  padding:4px 0 4px 32px;
}

.wiki-index-nav{
  display:grid;
  gap:10px;
}

.wiki-index-nav__item{
  border-radius:16px;
  background:#101419;
  border:1px solid rgba(255,255,255,.04);
  transition:border-color .15s ease, background .15s ease;
}

.wiki-index-nav__item:hover{
  border-color:rgba(157,226,255,.16);
  background:#121820;
}

.wiki-index-nav__row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:14px;
  align-items:center;
  padding:12px 14px;
}

.wiki-index-nav__main{
  display:flex;
  align-items:center;
  min-width:0;
}

.wiki-index-nav__toggle{
  display:inline-grid;
  place-items:center;
  width:28px;
  height:28px;
  padding:0;
  border:1px solid rgba(255,255,255,.06);
  border-radius:10px;
  background:rgba(255,255,255,.02);
  color:#c8d2dc;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}

.wiki-index-nav__toggle:hover{
  border-color:rgba(157,226,255,.18);
  color:var(--accent);
  background:rgba(157,226,255,.04);
}

.wiki-index-nav__toggle-mark{
  font-family:var(--font-heading);
  font-size:1rem;
  line-height:1;
}

.wiki-index-nav__title{
  min-width:0;
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:.98rem;
  line-height:1.2;
}

.wiki-index-nav__title:hover{
  color:var(--accent);
}

.wiki-index-nav__meta{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px 10px;
  flex-wrap:wrap;
}

.wiki-index-nav__aside{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  min-width:0;
}

.wiki-index-nav__detail{
  padding:0 14px 14px 54px;
}

.wiki-index-nav__detail-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.3fr) minmax(220px, .8fr);
  gap:14px;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.05);
}

.wiki-index-nav__detail-main{
  min-width:0;
}

.wiki-index-nav__detail-side{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.wiki-index-nav__detail-side-meta{
  display:grid;
  gap:8px;
  justify-items:start;
  min-width:0;
}

.wiki-index-nav__detail-side-actions{
  display:flex;
  justify-content:flex-end;
  align-items:flex-start;
  flex:0 0 auto;
}

.wiki-index-nav__summary{
  margin:0;
  color:#c2cad4;
  font-size:13px;
  line-height:1.6;
}

.wiki-index-nav__summary--muted{
  color:#8f9aa7;
}

.wiki-list{
  display:grid;
  gap:12px;
}

.wiki-list--compact{
  gap:10px;
}

.wiki-list--hero{
  gap:6px;
}

.wiki-list__item{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:16px;
  padding:18px;
  border-radius:18px;
  background:#101419;
  border:1px solid rgba(255,255,255,.04);
  transition:border-color .15s ease, transform .15s ease, background .15s ease;
}

.wiki-list__item:hover{
  border-color:rgba(157,226,255,.18);
  background:#121820;
  transform:translateY(-1px);
}

.wiki-list__item--compact{
  grid-template-columns:1fr;
  gap:8px;
  padding:12px 14px;
  border-radius:16px;
}

.wiki-list__item--hero{
  gap:6px;
  padding:8px 10px;
  border-radius:12px;
}

.wiki-list__row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:16px;
}

.wiki-list__row--compact{
  grid-template-columns:minmax(0, 1.7fr) minmax(140px, .7fr) minmax(150px, .8fr) auto;
  align-items:start;
  gap:14px;
}

.wiki-list__row--hero{
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:8px;
}

.wiki-list__item--hero .wiki-list__title--compact{
  font-size:.84rem;
  line-height:1.16;
}

.wiki-list__item--hero .wiki-list__cell--meta{
  gap:6px;
}

.wiki-list__item--hero .pill--compact{
  font-size:10px;
  padding:2px 7px;
}

.wiki-list__meta{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.wiki-list__trail{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}

.wiki-list__cell{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

.wiki-list__cell--meta{
  flex-wrap:wrap;
}

.wiki-list__cell--context{
  justify-content:flex-start;
}

.wiki-list__cell--date{
  justify-content:flex-end;
  white-space:nowrap;
}

.wiki-list__title{
  display:inline-block;
  margin-top:10px;
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:1.1rem;
  line-height:1.2;
  letter-spacing:.01em;
}

.wiki-list__title:hover{
  color:var(--accent);
}

.wiki-list__title--compact{
  margin-top:0;
  font-size:1rem;
  line-height:1.25;
}

.wiki-list__summary{
  margin:10px 0 0;
  color:#c2cad4;
  font-size:14px;
  line-height:1.65;
}

.wiki-list__summary--compact{
  margin:0;
  color:#97a4b2;
  font-size:13px;
  line-height:1.45;
  display:-webkit-box;
  -webkit-line-clamp:1;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.wiki-list__aside{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:12px;
}

.wiki-list__metric{
  display:grid;
  justify-items:end;
  gap:6px;
}

.wiki-list__metric strong{
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:1rem;
  font-weight:400;
}

.wiki-sidebar{
  display:grid;
  gap:16px;
}

.wiki-note-list{
  display:grid;
  gap:10px;
  margin-top:14px;
}

.wiki-note-list__item{
  padding:12px 14px;
  border-radius:14px;
  background:#101419;
  border:1px solid rgba(255,255,255,.04);
  color:#c5ced8;
  font-size:14px;
  line-height:1.6;
}

.wiki-space-list{
  display:grid;
  gap:10px;
  margin-top:14px;
}

.wiki-space-list__item{
  display:grid;
  gap:6px;
  padding:14px;
  border-radius:16px;
  background:#101419;
  border:1px solid rgba(255,255,255,.04);
}

.wiki-space-list__item:hover{
  border-color:rgba(157,226,255,.18);
}

.wiki-space-list__title{
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:1rem;
  line-height:1.2;
}

.wiki-space-list__copy{
  color:var(--muted);
  font-size:13px;
  line-height:1.55;
}

.wiki-nav-list{
  display:grid;
  gap:10px;
  margin-top:12px;
}

.wiki-nav-list__item{
  display:grid;
  gap:8px;
  padding:14px;
  border-radius:16px;
  background:#101419;
  border:1px solid rgba(255,255,255,.04);
}

.wiki-nav-list__item:hover{
  border-color:rgba(157,226,255,.18);
}

.wiki-nav-list__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.wiki-nav-list__title{
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:1rem;
  line-height:1.2;
}

.wiki-nav-list__copy{
  color:var(--muted);
  font-size:13px;
  line-height:1.55;
}

.wiki-article-shell{
  display:grid;
  grid-template-columns:minmax(0, 1.5fr) minmax(280px, .8fr);
  gap:18px;
  align-items:start;
}

.wiki-breadcrumb{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:18px;
  color:var(--muted);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
}

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

.wiki-article-hero{
  margin-bottom:16px;
}

.wiki-article-hero__title{
  margin:8px 0 0;
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-size:clamp(2rem, 4vw, 3.4rem);
  font-weight:400;
  line-height:.98;
  letter-spacing:.01em;
}

.wiki-article-hero__meta{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}

.wiki-article-hero__summary{
  max-width:62ch;
  margin:18px 0 0;
  color:#c7d0da;
  font-size:1rem;
  line-height:1.7;
}

.wiki-article-hero__actions{
  margin-top:18px;
}

.wiki-article-card{
  padding:24px;
}

.wiki-article-body{
  color:#d8dee6;
  font-size:15px;
  line-height:1.78;
}

.wiki-article-body > *:first-child{
  margin-top:0;
}

.wiki-article-body h2,
.wiki-article-body h3,
.wiki-article-body h4{
  margin:1.8em 0 .6em;
  color:var(--text-strong);
  font-family:var(--font-heading);
  font-weight:400;
  line-height:1.1;
}

.wiki-article-body h2{
  font-size:1.55rem;
}

.wiki-article-body h3{
  font-size:1.2rem;
}

.wiki-article-body p,
.wiki-article-body ul,
.wiki-article-body ol,
.wiki-article-body blockquote{
  margin:0 0 1.05em;
}

.wiki-article-body ul,
.wiki-article-body ol{
  padding-left:1.35rem;
}

.wiki-article-body li + li{
  margin-top:.42em;
}

.wiki-article-body a{
  color:var(--accent);
  text-decoration:underline;
  text-decoration-color:rgba(157,226,255,.35);
  text-underline-offset:3px;
}

.wiki-article-body blockquote{
  padding:14px 16px;
  border-left:2px solid rgba(157,226,255,.32);
  background:#101419;
  border-radius:0 14px 14px 0;
  color:#c9d3dd;
}

.wiki-article-body table{
  width:100%;
  border-collapse:collapse;
  margin:1.2rem 0;
  overflow:hidden;
}

.wiki-article-body th,
.wiki-article-body td{
  padding:10px 12px;
  border-bottom:1px solid rgba(255,255,255,.06);
  text-align:left;
}

.wiki-article-body th{
  color:var(--muted);
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:400;
}

.wiki-article-sidebar{
  position:sticky;
  top:92px;
  display:grid;
  gap:16px;
}

.wiki-article-sidecard{
  padding:18px;
}

.wiki-article-facts{
  width:100%;
  margin-top:14px;
}

.wiki-article-facts th{
  width:110px;
}

.wiki-article-actions{
  display:grid;
  gap:10px;
  margin-top:14px;
}

.wiki-related-row{
  grid-template-columns:minmax(220px, 1fr) minmax(0, 1.45fr);
  min-height:44px;
}

.wiki-related-main{
  min-width:0;
}

.wiki-related-identity{
  /* Inherits sizing and hover behavior from .wiki-compact-identity. */
}

.wiki-related-info{
  grid-template-columns:minmax(58px, .55fr) minmax(92px, .78fr) minmax(78px, .62fr) auto;
  gap:8px;
}

.wiki-related-info__cell--action{
  display:flex;
  justify-content:flex-end;
  overflow:visible;
}

.wiki-related-open{
  width:26px;
  height:26px;
  margin-left:0;
  border-radius:999px;
  color:#c6d0db;
  background:rgba(255,255,255,.025);
  border:1px solid rgba(255,255,255,.06);
  transition:color .15s ease, border-color .15s ease, background .15s ease, transform .15s ease;
}

.wiki-related-open:hover{
  color:var(--accent);
  border-color:rgba(157,226,255,.18);
  background:rgba(157,226,255,.045);
  transform:translateY(-1px);
}

.wiki-related-open .icon-svg--img{
  width:15px;
  height:15px;
}

@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;
  }

  .interview-stages__nav{
    grid-template-columns:1fr;
    gap:8px;
  }

  .interview-stage{
    padding-top:0;
  }

  .interview-stage::before{
    left:4px;
    right:auto;
    top:14px;
    bottom:-10px;
    width:1px;
    height:auto;
  }

  .interview-competency__layout{
    grid-template-columns:1fr;
  }

  .interview-competency__guide{
    padding-left:12px;
  }

  .choice-segmented,
  .choice-segmented--qualitative{
    grid-template-columns:1fr 1fr;
  }

  .history-accordion__summary-grid{
    grid-template-columns:1fr;
  }

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

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

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

  .registro-list__head{
    flex-direction:column;
  }

  .registro-panel__top{
    flex-direction:column;
    align-items:flex-start;
  }

  .registro-file-item{
    flex-direction:column;
    align-items:flex-start;
  }

  .registro-changelog__head{
    flex-direction:column;
    align-items:flex-start;
  }

  .registro-preview,
  .registro-preview__frame{
    min-height:520px;
  }

  .wiki-hero,
  .wiki-home-grid,
  .wiki-article-shell{
    grid-template-columns:1fr;
  }

  .wiki-list__item{
    grid-template-columns:1fr;
  }

  .wiki-list__row{
    grid-template-columns:1fr;
    align-items:flex-start;
    gap:8px;
  }

  .wiki-list__row--compact{
    grid-template-columns:1fr;
  }

  .wiki-list__row--hero{
    grid-template-columns:1fr;
    gap:6px;
  }

  .wiki-list__trail{
    justify-content:flex-start;
  }

  .wiki-list__cell--date{
    justify-content:flex-start;
  }

  .wiki-list__aside{
    align-items:flex-start;
  }

  .wiki-list__metric{
    justify-items:start;
  }

  .wiki-panel__actions--inline{
    justify-content:flex-start;
  }

  .wiki-tree-node__row{
    grid-template-columns:1fr;
    gap:6px;
  }

  .wiki-tree-node__info{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:5px 10px;
    white-space:normal;
  }

  .wiki-tree-node__info-cell--count{
    text-align:left;
  }

  .wiki-related-row{
    grid-template-columns:1fr;
    gap:8px;
  }

  .wiki-related-info{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:6px 10px;
    white-space:normal;
  }

  .wiki-related-info__cell--action{
    justify-content:flex-start;
    grid-column:1 / -1;
  }

  .wiki-index-nav__row,
  .wiki-index-nav__detail-grid{
    grid-template-columns:1fr;
  }

  .wiki-index-nav__meta{
    justify-content:flex-start;
  }

  .wiki-index-nav__aside{
    justify-content:space-between;
    flex-wrap:wrap;
  }

  .wiki-index-nav__detail{
    padding:0 14px 14px;
  }

  .wiki-index-nav__detail-side{
    display:grid;
    gap:10px;
  }

  .wiki-index-nav__detail-side-actions{
    justify-content:flex-start;
  }

  .wiki-article-sidebar{
    position:static;
  }
}

@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;
  }
}
