/* ===================================================================
   Núcleo — herramienta de organización · estilo bento / liquid-glass
   Sistema de diseño (tokens, fondo, glass, botones) + UI de la app.
   =================================================================== */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

@font-face{
  font-family:"Hikasami";
  src:url("fonts/Hikasami-VF.woff2") format("woff2-variations"),
      url("fonts/Hikasami-VF.woff2") format("woff2");
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}

:root{
  --bg:#000000;
  --ink:#ffffff;
  --muted:rgba(255,255,255,.60);
  --faint:rgba(255,255,255,.40);
  --line:rgba(255,255,255,.10);
  --line-2:rgba(255,255,255,.16);
  --glass:rgba(255,255,255,.030);
  --glass-2:rgba(255,255,255,.055);
  --radius:26px;
  --radius-sm:14px;
  --ease:cubic-bezier(.22,1,.36,1);
  --font-display:"Unbounded","Arial Black","Segoe UI",sans-serif;
  --font-body:"Hikasami","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;

  --side-w:238px;
  --day-w:46px;

  /* color de resaltado — ajustable por cada usuario en Ajustes */
  --accent:#ffffff;
  --accent-ink:#000000;
  --chrome:rgba(0,0,0,.45);

  /* tintes genéricos (hover/fondos sutiles) — se invierten en modo claro */
  --tint-1:rgba(255,255,255,.02);
  --tint-2:rgba(255,255,255,.045);
  --tint-3:rgba(255,255,255,.07);
  --tint-4:rgba(255,255,255,.09);
  --tint-5:rgba(255,255,255,.12);
  --tint-6:rgba(255,255,255,.16);

  /* "sólido" — para elementos que deben destacar como una ficha opaca (barras, chips llenos) */
  --solid:#ffffff;
  --solid-ink:#000000;
  /* fondo opaco (para cabeceras/etiquetas fijas que no pueden ser translúcidas) */
  --opaque:rgba(9,9,11,.94);
  /* hilos del grafo de Neuronas */
  --thread:rgba(255,255,255,.34);
}
:root[data-theme="light"]{
  --chrome:rgba(255,255,255,.55);
  --tint-1:rgba(0,0,0,.025);
  --tint-2:rgba(0,0,0,.045);
  --tint-3:rgba(0,0,0,.06);
  --tint-4:rgba(0,0,0,.08);
  --tint-5:rgba(0,0,0,.10);
  --tint-6:rgba(0,0,0,.14);
  --solid:#17171b;
  --solid-ink:#ffffff;
  --opaque:rgba(246,246,248,.94);
  --thread:rgba(0,0,0,.28);
}

/* ---------- Tema claro ---------- */
:root[data-theme="light"]{
  --bg:#f1f1f3;
  --ink:#0b0b0d;
  --muted:rgba(0,0,0,.62);
  --faint:rgba(0,0,0,.42);
  --line:rgba(0,0,0,.10);
  --line-2:rgba(0,0,0,.16);
  --glass:rgba(255,255,255,.55);
  --glass-2:rgba(255,255,255,.78);
}
/* fondo en movimiento también en claro (mismo efecto, tonos claros) */
:root[data-theme="light"] .bg{opacity:1;background:#e7e8ec}
:root[data-theme="light"] .orb{mix-blend-mode:multiply;opacity:.7;filter:blur(80px)}
:root[data-theme="light"] .orb--1{background:radial-gradient(circle at 30% 30%,rgba(108,122,156,.32),transparent 62%)}
:root[data-theme="light"] .orb--2{background:radial-gradient(circle at 60% 40%,rgba(110,140,198,.32),transparent 60%)}
:root[data-theme="light"] .orb--3{background:radial-gradient(circle at 50% 50%,rgba(112,124,156,.26),transparent 60%)}
:root[data-theme="light"] .bg__waves .w{mix-blend-mode:multiply}
:root[data-theme="light"] .bg__waves .w1{background:radial-gradient(closest-side,rgba(140,152,180,.40),rgba(140,152,180,.14) 45%,transparent 74%)}
:root[data-theme="light"] .bg__waves .w2{background:radial-gradient(closest-side,rgba(134,150,182,.34),rgba(134,150,182,.12) 48%,transparent 78%)}
:root[data-theme="light"] .bg__waves .w3{background:radial-gradient(closest-side,rgba(146,158,184,.30),rgba(146,158,184,.10) 48%,transparent 80%)}
:root[data-theme="light"] .bg__vignette{background:radial-gradient(120% 90% at 50% 0%,transparent 50%,rgba(18,24,42,.12) 100%)}
:root[data-theme="light"] .bg__grain{opacity:.03}
:root[data-theme="light"] ::selection{background:rgba(0,0,0,.85);color:#fff}
:root[data-theme="light"] .authgate{background:var(--bg)}
:root[data-theme="light"] :focus-visible{outline-color:rgba(0,0,0,.55)}

html{-webkit-text-size-adjust:100%}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:14px;
  line-height:1.55;
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
  overflow:hidden;                 /* la app gestiona su propio scroll */
}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
button{font:inherit;color:inherit}
::selection{background:rgba(255,255,255,.85);color:#000}
:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:2px;border-radius:6px}

/* ---------- Fondo : liquid-glass ---------- */
.bg{position:fixed;inset:0;z-index:-1;overflow:hidden;background:#000}
.bg__orbs{position:absolute;inset:-20%;filter:url(#liquid)}
.orb{position:absolute;border-radius:50%;filter:blur(90px);opacity:.42;mix-blend-mode:screen}
.orb--1{width:60vw;height:60vw;left:-10vw;top:-15vw;
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.20),transparent 62%);
  animation:drift1 30s var(--ease) infinite alternate}
.orb--2{width:52vw;height:52vw;right:-12vw;top:18vh;
  background:radial-gradient(circle at 60% 40%,rgba(180,200,255,.14),transparent 60%);
  animation:drift2 38s var(--ease) infinite alternate}
.orb--3{width:46vw;height:46vw;left:22vw;bottom:-22vw;
  background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.12),transparent 60%);
  animation:drift3 34s var(--ease) infinite alternate}
@keyframes drift1{to{transform:translate3d(8vw,6vh,0) scale(1.15)}}
@keyframes drift2{to{transform:translate3d(-7vw,-5vh,0) scale(1.1)}}
@keyframes drift3{to{transform:translate3d(4vw,-8vh,0) scale(1.2)}}

.bg__waves{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.bg__waves .w{position:absolute;left:50%;width:190vw;height:72vh;border-radius:50%}
.bg__waves .w1{top:-12%;
  background:radial-gradient(closest-side,rgba(154,164,183,.34),rgba(154,164,183,.12) 45%,transparent 74%);
  filter:url(#liquidSoft) blur(24px);animation:wave1 44s ease-in-out infinite alternate}
.bg__waves .w2{top:26%;
  background:radial-gradient(closest-side,rgba(146,158,180,.28),rgba(146,158,180,.10) 48%,transparent 78%);
  filter:url(#liquidSoft) blur(30px);animation:wave2 58s ease-in-out infinite alternate}
.bg__waves .w3{top:56%;
  background:radial-gradient(closest-side,rgba(160,168,185,.24),rgba(160,168,185,.08) 48%,transparent 80%);
  filter:url(#liquidSoft) blur(26px);animation:wave3 72s ease-in-out infinite alternate}
@keyframes wave1{from{transform:translate(-66%,-9%) rotate(-9deg) scale(1)}to{transform:translate(-34%,7%) rotate(3deg) scale(1.18)}}
@keyframes wave2{from{transform:translate(-38%,7%) rotate(7deg) scale(1.12)}to{transform:translate(-66%,-7%) rotate(13deg) scale(1)}}
@keyframes wave3{from{transform:translate(-62%,-7%) rotate(-4deg) scale(1)}to{transform:translate(-32%,8%) rotate(-11deg) scale(1.2)}}

.bg__grain{position:absolute;inset:0;opacity:.045;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.bg__vignette{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 0%,transparent 45%,rgba(0,0,0,.5) 100%)}
.svg-defs{position:absolute}

/* ---------- Glass ---------- */
.glass{
  position:relative;background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);
  backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09),inset 0 -1px 0 rgba(0,0,0,.35),0 30px 70px -30px rgba(0,0,0,.75);
}

/* ---------- Botones ---------- */
.btn{
  --pad:9px 15px;display:inline-flex;align-items:center;justify-content:center;gap:.5ch;padding:var(--pad);
  font-family:var(--font-display);font-weight:500;font-size:12.5px;letter-spacing:.02em;
  border-radius:12px;border:1px solid var(--line-2);background:var(--glass-2);color:var(--ink);cursor:pointer;
  transition:transform .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease);
}
.btn:hover{transform:translateY(-1px);background:var(--line-2);border-color:var(--muted)}
.btn:active{transform:translateY(0)}
.btn--solid{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);box-shadow:0 10px 30px -12px rgba(255,255,255,.4)}
.btn--solid:hover{background:var(--accent);color:var(--accent-ink);filter:brightness(1.1)}
.btn--ghost{background:transparent}
.btn--icon{--pad:8px;width:32px;height:32px;border-radius:10px}
.btn--sm{--pad:6px 10px;font-size:11.5px}

/* ===================================================================
   Estructura de la app
   =================================================================== */
.app{display:flex;height:100vh;width:100vw;overflow:hidden}

.side{flex:0 0 auto;width:var(--side-w);overflow:hidden;
  transition:margin-left .42s cubic-bezier(.4,0,.2,1)}
.app.side-hidden .side{margin-left:calc(-1 * var(--side-w))}
.side__inner{
  width:var(--side-w);height:100%;
  display:flex;flex-direction:column;gap:6px;padding:20px 16px;
  border-right:1px solid var(--line);
  background:var(--tint-1);
  backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);
  overflow-y:auto;overflow-x:hidden;
}

#sideToggle{flex:none;align-self:center}
#sideToggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}
.app.side-hidden #sideToggle svg{transform:scaleX(-1)}
.side__brand{display:flex;align-items:center;gap:9px;font-family:var(--font-display);font-weight:600;font-size:15px;letter-spacing:.02em;padding:6px 8px 20px}
.side__dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 14px 2px var(--accent);flex:none}
.side__label{padding:16px 10px 6px;font-family:var(--font-display);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
.side__nav{display:flex;flex-direction:column;gap:3px}
.side__link{
  display:flex;align-items:center;gap:11px;width:100%;text-align:left;
  padding:10px 12px;border-radius:11px;border:1px solid transparent;background:transparent;
  color:var(--muted);font-family:var(--font-display);font-weight:400;font-size:13px;cursor:pointer;
  transition:background .22s,color .22s,border-color .22s;
}
.side__link[hidden]{display:none}
.side__link:hover{color:var(--ink);background:var(--tint-3)}
.side__link.is-active{color:var(--accent);background:var(--tint-4);border-color:var(--line-2)}
.side__link svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.side__badge{margin-left:auto;flex:none;min-width:17px;height:17px;padding:0 5px;border-radius:9px;
  background:var(--accent);color:var(--accent-ink);font-family:var(--font-display);font-weight:600;font-size:9.5px;
  display:inline-flex;align-items:center;justify-content:center;line-height:1;letter-spacing:0}
.side__badge[hidden]{display:none}
.side__foot{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding:8px}
.side__foot small{font-size:10.5px;color:var(--faint);letter-spacing:.02em}

.main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}
.topbar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px 26px;border-bottom:1px solid var(--line);
  background:var(--chrome);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);
  flex:none;
}
.topbar__l{display:flex;align-items:baseline;gap:14px;min-width:0}
.topbar__title{font-family:var(--font-display);font-weight:600;font-size:19px;letter-spacing:-.01em}
.topbar__hint{font-size:12px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar__actions{display:flex;gap:9px;align-items:center;flex:none}
.topbar__r{display:flex;align-items:center;gap:12px;flex:none}
#themeToggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
:root[data-theme="light"] #themeToggle svg circle{fill:currentColor}
:root[data-theme="light"] #themeToggle svg path{opacity:0}

#lockToggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#tm-mute svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#lockToggle .lock-shackle{transition:transform .2s var(--ease);transform-origin:12px 11px}
#lockToggle.is-on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
#lockToggle:not(.is-on) .lock-shackle{transform:translateX(3px) rotate(12deg)}
#lockToggle:not(.is-on) svg circle{opacity:0}

.ro-pill{align-self:center;font-family:var(--font-display);font-size:9px;letter-spacing:.16em;text-transform:uppercase;
  padding:4px 9px;border-radius:7px;border:1px solid var(--accent);color:var(--accent);white-space:nowrap;flex:none}

.ro-toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,14px);z-index:400;
  padding:10px 16px;border-radius:11px;background:var(--opaque);border:1px solid var(--line-2);
  color:var(--ink);font-size:12px;box-shadow:0 12px 40px rgba(0,0,0,.4);
  opacity:0;pointer-events:none;transition:opacity .18s,transform .18s}
.ro-toast.is-on{opacity:1;transform:translate(-50%,0)}

/* modo solo lectura: campos y arrastres se ven inertes */
html[data-readonly] .view input,html[data-readonly] .view textarea,html[data-readonly] .view select,
html[data-readonly] .sheet input,html[data-readonly] .sheet textarea,html[data-readonly] .sheet select,
html[data-readonly] .view [contenteditable],html[data-readonly] .sheet [contenteditable]{
  opacity:.5;cursor:not-allowed}
html[data-readonly] #crm-q,html[data-readonly] .tplsearch,html[data-readonly] input[type="search"]{opacity:1;cursor:text}
html[data-readonly] [draggable="true"]{cursor:default}
html[data-readonly] .sheet__foot .link-danger,html[data-readonly] .sheet__foot .btn--solid{opacity:.4;pointer-events:none}
/* botones de "crear" atenuados mientras el panel está bloqueado */
html[data-readonly] #viewActions .btn--solid,
html[data-readonly] .col__add,
html[data-readonly] .ideacard--ghost,
html[data-readonly] .cempty__acts,
html[data-readonly] .qa__btn,
html[data-readonly] .tplitem__add{opacity:.4;pointer-events:none}

.view{flex:1;min-width:0;min-height:0;overflow:auto;padding:22px 26px}
.view[hidden]{display:none}

/* barra de scroll discreta */
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:var(--tint-5);border-radius:20px;border:2px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-thumb:hover{background:var(--tint-6);background-clip:padding-box}
*::-webkit-scrollbar-track{background:transparent}

.empty{color:var(--faint);font-size:13px;padding:40px 4px;text-align:center}

/* ===================================================================
   Pipeline (kanban)
   =================================================================== */
.board{display:flex;gap:14px;align-items:flex-start;height:100%;padding-bottom:8px;user-select:none;-webkit-user-select:none}
.col{
  flex:0 0 286px;display:flex;flex-direction:column;max-height:100%;
  border-radius:20px;border:1px solid var(--line);background:var(--glass);
  backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);
  transition:border-color .2s,background .2s;
}
.col.is-drop{border-color:var(--accent);background:var(--glass-2)}
/* variante que reparte las columnas para llenar el ancho y el alto (Contenido) */
.board--fill{width:100%;align-items:stretch}
.board--fill .col{flex:1 1 0;min-width:220px;max-width:none}
.col__head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:15px 15px 10px}
.col__name{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:500;font-size:12.5px;letter-spacing:.01em}
.col__dot{width:7px;height:7px;border-radius:50%;background:var(--faint);flex:none}
.col__dot--win{background:var(--ink);box-shadow:0 0 10px rgba(255,255,255,.4)}
.col__dot--lost{background:transparent;border:1.5px solid var(--faint)}
.col__dot--later{background:transparent;border:1.5px dashed var(--muted)}
.col__meta{font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.col__list{display:flex;flex-direction:column;gap:9px;padding:4px 12px 10px;overflow-y:auto;flex:1;min-height:46px}
.col__add{margin:0 12px 12px;padding:9px;border-radius:11px;border:1px dashed var(--line-2);background:transparent;color:var(--muted);
  font-family:var(--font-display);font-size:11.5px;cursor:pointer;transition:background .2s,color .2s}
.col__add:hover{background:var(--tint-3);color:var(--ink)}

.deal{
  border-radius:13px;border:1px solid var(--line-2);background:var(--tint-2);
  padding:12px 13px;cursor:grab;transition:transform .16s,border-color .16s,background .16s;
}
.deal:hover{border-color:var(--line-2);background:var(--tint-3)}
.deal:active{cursor:grabbing}
.deal.is-dragging{opacity:.35}
.deal__title{font-size:13px;font-weight:500;line-height:1.4}
.deal__company{font-size:11px;color:var(--faint);margin-top:2px}
.deal__foot{display:flex;align-items:center;justify-content:space-between;margin-top:9px;gap:8px}
.deal__value{font-family:var(--font-display);font-size:12px;font-variant-numeric:tabular-nums}
.deal__age{font-size:10px;color:var(--faint)}

.inline-add{display:flex;flex-direction:column;gap:6px;margin:0 12px 12px}
.inline-add input{
  background:var(--tint-3);border:1px solid var(--line-2);border-radius:10px;
  padding:9px 11px;color:var(--ink);font:inherit;font-size:12.5px;
}
.inline-add input::placeholder{color:var(--faint)}

/* ===================================================================
   Proyectos (árbol de tareas / subtareas)
   =================================================================== */
.pm{display:grid;grid-template-columns:250px 1fr;gap:18px;align-items:start;height:100%}
.pm__aside{display:flex;flex-direction:column;gap:6px;padding:12px;height:100%;overflow-y:auto}
.pm__main{padding:6px 4px;height:100%;overflow-y:auto;min-width:0}

.proj{
  display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:11px;
  border:1px solid transparent;cursor:pointer;transition:background .2s,border-color .2s;
}
.proj:hover{background:var(--tint-3)}
.proj.is-active{background:var(--tint-4);border-color:var(--line-2)}
.proj__dot{width:9px;height:9px;border-radius:3px;background:var(--ink);flex:none;opacity:.85}
.proj__body{min-width:0;flex:1}
.proj__name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.proj__bar{margin-top:6px;height:3px;border-radius:2px;background:var(--tint-5);overflow:hidden}
.proj__bar i{display:block;height:100%;background:var(--accent);border-radius:2px;transition:width .4s var(--ease)}
.proj__pct{font-size:10px;color:var(--faint);font-variant-numeric:tabular-nums;flex:none}
.proj.is-done{opacity:.62}
.proj.is-done:hover,.proj.is-done.is-active{opacity:1}
.proj.is-done .proj__dot{opacity:.4}
.proj__done{margin-top:5px;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}

.proj-folder{display:flex;align-items:center;gap:8px;width:100%;margin-top:8px;padding:9px 11px;
  border-radius:11px;border:1px solid var(--line);background:var(--tint-2);cursor:pointer;
  font-family:var(--font-display);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
  transition:background .2s,border-color .2s}
.proj-folder:hover{border-color:var(--line-2);background:var(--tint-3)}
.proj-folder span{flex:1;text-align:left}
.proj-folder em{font-style:normal;color:var(--faint)}
.proj-folder__chev{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s;flex:none}
.proj-folder.is-open .proj-folder__chev{transform:rotate(-180deg)}
.proj-folder__list{display:flex;flex-direction:column;gap:6px;margin-top:6px;padding-left:6px;border-left:1px solid var(--line)}

.pm__tag{font-family:var(--font-display);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;
  vertical-align:middle;margin-left:8px;padding:3px 7px;border-radius:6px;background:var(--tint-4);color:var(--muted)}

.pm__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:0 6px}
.pm__title{font-family:var(--font-display);font-weight:500;font-size:16px}
.pm__sub{font-size:11.5px;color:var(--faint);margin-top:2px}

.tree{display:flex;flex-direction:column;gap:1px}
.node__row{
  display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:9px;
  transition:background .15s;
}
.node__row:hover{background:var(--tint-2)}
.node__row.is-dragover{background:var(--tint-4);box-shadow:inset 0 -2px 0 var(--accent)}
.node__toggle{
  width:16px;height:16px;flex:none;display:grid;place-items:center;border:0;background:transparent;
  color:var(--faint);cursor:pointer;border-radius:5px;transition:color .15s,background .15s;
}
.node__toggle:hover{color:var(--ink);background:var(--tint-4)}
.node__toggle svg{width:9px;height:9px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s var(--ease)}
.node__toggle.is-collapsed svg{transform:rotate(-90deg)}
.node__toggle.is-empty{visibility:hidden}

.check{
  width:16px;height:16px;flex:none;border-radius:5px;border:1.5px solid var(--line-2);
  background:transparent;cursor:pointer;display:grid;place-items:center;transition:background .15s,border-color .15s;
}
.check:hover{border-color:var(--muted)}
.check svg{width:10px;height:10px;fill:none;stroke:var(--accent-ink);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .12s}
.check.is-done{background:var(--accent);border-color:var(--accent)}
.check.is-done svg{opacity:1}

.node__title{
  flex:1;min-width:0;font-size:13px;line-height:1.4;cursor:text;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.node__title.is-done{color:var(--faint);text-decoration:line-through}
.node__title-input{
  flex:1;min-width:0;font:inherit;font-size:13px;color:var(--ink);
  background:var(--tint-3);border:1px solid var(--line-2);border-radius:7px;padding:3px 7px;
}
.node__dates{font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}
.node__actions{display:flex;gap:2px;opacity:0;transition:opacity .15s;flex:none}
.node__row:hover .node__actions{opacity:1}
.node__act{
  width:24px;height:24px;display:grid;place-items:center;border:0;background:transparent;color:var(--faint);
  border-radius:7px;cursor:pointer;transition:color .15s,background .15s;
}
.node__act:hover{color:var(--ink);background:var(--tint-4)}
.node__act svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.node__children{margin-left:23px;border-left:1px solid var(--line);padding-left:4px}

.node-add{display:flex;align-items:center;gap:8px;padding:6px 8px;margin-left:1px}
.node-add input{
  flex:1;font:inherit;font-size:12.5px;color:var(--ink);background:var(--tint-3);
  border:1px solid var(--line-2);border-radius:8px;padding:6px 10px;
}
.node-add input::placeholder{color:var(--faint)}

/* ===================================================================
   Calendario / línea de tiempo (arrastrar para reprogramar)
   =================================================================== */
.cal__bar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.cal__zoom{display:flex;gap:4px;align-items:center}

.unsched{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
.unsched:empty{display:none}
.chip{
  display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border-radius:11px;
  border:1px dashed var(--line-2);background:var(--tint-1);color:var(--muted);
  font-size:11.5px;cursor:pointer;transition:background .18s,color .18s,border-color .18s;
}
.chip:hover{background:var(--tint-4);color:var(--ink);border-color:var(--muted)}
.chip svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}

.tl{border:1px solid var(--line);border-radius:18px;background:var(--glass);
  backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);overflow:hidden}
.tl__scroll{overflow:auto;max-height:calc(100vh - 232px)}
.tl__inner{position:relative;min-width:max-content;user-select:none;-webkit-user-select:none}
.tl__row{display:flex;align-items:stretch;border-bottom:1px solid var(--line);min-height:42px}
.tl__row:last-child{border-bottom:0}
.tl__row--group{background:var(--tint-1);min-height:32px}
.tl__row--group .tl__label{font-family:var(--font-display);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.tl__label{
  position:sticky;left:0;z-index:3;flex:0 0 210px;display:flex;align-items:center;gap:8px;
  padding:6px 14px;font-size:12.5px;border-right:1px solid var(--line);
  background:var(--opaque);backdrop-filter:blur(6px);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.tl__label span{overflow:hidden;text-overflow:ellipsis}
.tl__track{position:relative;flex:1;
  background-image:repeating-linear-gradient(90deg,transparent 0,transparent calc(var(--day-w) - 1px),var(--line) calc(var(--day-w) - 1px),var(--line) var(--day-w));
}
.tl__head{position:sticky;top:0;z-index:5}
.tl__head .tl__label{z-index:6;background:var(--opaque)}
.tl__head .tl__track{background:var(--opaque)}
.tl__day{position:absolute;top:0;bottom:0;width:var(--day-w);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:1px;font-variant-numeric:tabular-nums;border-right:1px solid var(--line)}
.tl__day em{font-style:normal;font-size:9px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}
.tl__day b{font-weight:500;font-size:11px;color:var(--muted)}
.tl__day--we{background:var(--tint-2)}
.tl__day--today em,.tl__day--today b{color:var(--ink)}
.tl__today{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);z-index:4;pointer-events:none;box-shadow:0 0 12px rgba(255,255,255,.6)}

.bar{
  position:absolute;top:6px;height:30px;border-radius:9px;
  background:var(--solid);
  color:var(--solid-ink);display:flex;align-items:center;padding:0 11px;
  font-size:11px;font-weight:600;letter-spacing:.01em;white-space:nowrap;overflow:hidden;
  cursor:grab;user-select:none;touch-action:none;
  box-shadow:0 6px 18px -8px rgba(0,0,0,.7);
  transition:box-shadow .2s;
}
.bar:hover{box-shadow:0 10px 26px -10px rgba(0,0,0,.8)}
.bar.is-dragging{cursor:grabbing;box-shadow:0 16px 40px -10px rgba(0,0,0,.85);z-index:6}
.bar--done{opacity:.55}
.bar__label{overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.bar__h{position:absolute;top:0;bottom:0;width:10px;cursor:ew-resize}
.bar__h--l{left:0}
.bar__h--r{right:0}

/* ===================================================================
   Drawer lateral (editor de oportunidad / tarea)
   =================================================================== */
.scrim{position:fixed;inset:0;z-index:55;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .3s}
.scrim.is-open{opacity:1;pointer-events:auto}
.sheet{
  /* el drawer se queda siempre oscuro (su propia "isla" de tema), da igual el tema del resto de la app */
  --ink:#ffffff; --muted:rgba(255,255,255,.60); --faint:rgba(255,255,255,.40);
  --line:rgba(255,255,255,.10); --line-2:rgba(255,255,255,.16);
  --glass:rgba(255,255,255,.030); --glass-2:rgba(255,255,255,.055);
  --tint-1:rgba(255,255,255,.02); --tint-2:rgba(255,255,255,.045); --tint-3:rgba(255,255,255,.07);
  --tint-4:rgba(255,255,255,.09); --tint-5:rgba(255,255,255,.12); --tint-6:rgba(255,255,255,.16);
  position:fixed;top:0;right:0;height:100vh;width:370px;max-width:92vw;z-index:60;
  transform:translateX(100%);transition:transform .34s var(--ease);
  background:rgba(11,12,14,.97);border-left:1px solid var(--line-2);
  backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);
  display:flex;flex-direction:column;color:var(--ink);
}
.sheet.is-open{transform:none}
.sheet--wide{width:min(600px,96vw)}

/* "Ver como cliente": pantalla completa, para que los grids del portal (pensados a ancho real) no se aplasten dentro del drawer estrecho */
.cliprev{position:fixed;inset:0;z-index:70;background:var(--bg);display:none;flex-direction:column}
.cliprev.is-open{display:flex}
.cliprev__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 24px;border-bottom:1px solid var(--line);background:var(--glass-2);flex:none}
.cliprev__bar span{font-family:var(--font-display);font-weight:500;font-size:13px;color:var(--muted)}
.cliprev__body{flex:1;overflow-y:auto;padding:26px 32px 60px}
.cliprev__body .portal{max-width:1480px;gap:20px;margin:0 auto}
@media(max-width:700px){.cliprev__body{padding:14px 12px 30px}}
.field textarea.n-body{min-height:200px;line-height:1.65;font-size:13.5px}
.sheet__head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}
.sheet__head h3{font-family:var(--font-display);font-weight:500;font-size:14px}
.sheet__body{padding:18px 20px;display:flex;flex-direction:column;gap:14px;overflow-y:auto;flex:1}
.sheet__foot{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px}

.field{display:flex;flex-direction:column;gap:6px}
.field[hidden]{display:none}
.field label{font-family:var(--font-display);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.field input,.field textarea,.field select{
  width:100%;background:var(--tint-3);border:1px solid var(--line-2);border-radius:10px;
  padding:10px 12px;color:var(--ink);font:inherit;font-size:13px;transition:border-color .2s,background .2s;
}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--muted);background:var(--tint-4)}
.field textarea{min-height:88px;resize:vertical;line-height:1.5}
.field select option{background:#111}
.field--row{display:flex;flex-direction:row;gap:10px;align-items:flex-start}
/* rejilla de campos robusta (fichas laterales) */
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fgrid .field{min-width:0}
.fsec{margin-top:6px;padding-top:14px;border-top:1px solid var(--line);font-family:var(--font-display);font-size:9px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
.seg2{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.seg2 .pillbtn{width:100%;min-height:41px;padding:0 8px;text-align:center}
.field input[type="date"],.field input[type="time"],.field input[type="number"]{min-height:41px}
.field--row{flex-wrap:wrap}
.field--row .field{flex:1 1 150px}
.link-danger{background:transparent;border:0;color:var(--faint);font-size:12px;cursor:pointer;transition:color .2s}
.link-danger:hover{color:#ff6b6b}

/* ---------- Puerta de acceso ---------- */
.authgate{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;
  background:#000;padding:20px}
.authgate[hidden]{display:none}
.authgate__card{width:min(360px,100%);padding:30px;display:flex;flex-direction:column;gap:14px}
.authgate__brand{display:flex;align-items:center;gap:9px;font-family:var(--font-display);font-weight:600;font-size:17px}
.authgate__sub{font-size:12.5px;color:var(--muted);margin-top:-6px}
.authgate__err{font-size:12px;color:#ff7a7a;line-height:1.5;background:rgba(255,107,107,.08);
  border:1px solid rgba(255,107,107,.28);border-radius:9px;padding:9px 11px}
.authgate__toggle{background:transparent;border:0;color:var(--faint);font-size:12px;cursor:pointer;
  text-align:center;padding:2px;transition:color .2s}
.authgate__toggle:hover{color:var(--ink)}

.side__foot{display:flex;flex-direction:column;gap:6px}
.side__user{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side__signout{align-self:flex-start;background:transparent;border:0;color:var(--faint);font-size:10.5px;
  cursor:pointer;padding:0;transition:color .2s}
.side__signout:hover{color:var(--ink)}

/* ---------- Administración (solo propietario) ---------- */
.adminlist{display:flex;flex-direction:column;gap:8px;max-width:600px}

.arow{border-radius:14px;border:1px solid var(--line);background:var(--glass);overflow:hidden;
  transition:border-color .18s,background .18s}
.arow.is-open{border-color:var(--line-2);background:var(--glass-2)}
.arow.is-pending .arow__dot{background:transparent;border:1.5px solid #e8b877}
.arow__head{width:100%;display:flex;align-items:center;gap:12px;padding:13px 16px;
  background:none;border:0;color:inherit;text-align:left;cursor:pointer}
.arow__head:disabled{cursor:default}
.arow__dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--faint)}
.arow__dot--on{background:var(--ink)}
.arow__dot--owner{background:var(--accent)}
.arow__id{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.arow__email{font-size:13.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arow__meta{font-size:11px;color:var(--faint)}
.arow__chev{flex:none;font-size:9px;color:var(--faint)}
.arow__body{padding:4px 16px 16px;display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line)}
.arow__line{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);padding-top:10px}
.arow__line--col{flex-direction:column;align-items:stretch;gap:8px}
.arow__line em{color:#e8b877;font-style:normal}

.statline{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--muted)}
.statline:last-of-type{border-bottom:0}
.statline b{color:var(--ink);font-weight:500}
.statline b.is-warn{color:#e8b877}
.settings__ok{font-size:12px;color:#8fe3a0;margin-top:10px}

/* ---------- Home (dashboard) ---------- */
.home{display:flex;flex-direction:column;gap:18px}

.qa{border:1px solid var(--line);background:var(--glass);border-radius:20px;padding:18px 20px}
.qa__h{font-family:var(--font-display);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-bottom:14px}
.qa__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.qa__btn{display:flex;align-items:center;gap:11px;padding:13px 15px;border-radius:13px;
  border:1px solid var(--line-2);background:var(--tint-2);color:inherit;cursor:pointer;
  font-size:13px;font-weight:500;text-align:left;transition:border-color .16s,background .16s,transform .16s}
.qa__btn:hover{border-color:var(--accent);background:var(--glass-2);transform:translateY(-1px)}
.qa__ic{flex:none;width:20px;height:20px;color:var(--accent)}
.qa__ic svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.homegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;align-content:start}
.hc{display:flex;flex-direction:column;gap:12px;padding:18px 18px 16px;border-radius:18px;min-height:190px;text-align:left;
  border:1px solid var(--line);background:var(--glass);color:inherit;cursor:pointer;
  transition:border-color .18s,background .18s,transform .18s,box-shadow .18s}
.hc:hover{border-color:var(--line-2);background:var(--glass-2);transform:translateY(-2px);box-shadow:0 18px 38px -22px rgba(0,0,0,.6)}
.hc__top{display:flex;align-items:center;gap:9px}
.hc__ic{flex:none;width:20px;height:20px;color:var(--muted)}
.hc__ic svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.hc__name{flex:1;font-family:var(--font-display);font-weight:500;font-size:13.5px}
.hc__go{font-size:10.5px;color:var(--faint);opacity:0;transition:opacity .16s}
.hc:hover .hc__go{opacity:1}
.hc__stat{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.hc__num{font-family:var(--font-display);font-weight:600;font-size:24px;line-height:1;color:var(--ink)}
.hc__lbl{font-size:11.5px;color:var(--muted)}
.hc__fig{margin-top:auto;min-height:46px;display:flex;align-items:flex-end}
.hc__figrow{display:flex;align-items:center;gap:12px}
.hc__figtx{font-size:11.5px;color:var(--muted);line-height:1.4}
.hc__sub{font-size:11px;color:var(--faint);line-height:1.45}
.hc__empty{font-size:11.5px;color:var(--faint);align-self:center}

/* mini gráficas — marca monocroma (siempre legible en ambos temas) */
.mbars{display:flex;align-items:flex-end;gap:5px;width:100%;height:46px}
.mbars i{flex:1;min-width:0;background:var(--ink);opacity:.82;border-radius:3px 3px 0 0}
.mbars i.is-z{background:var(--line-2);opacity:1}
.mstrip{display:flex;gap:3px;width:100%}
.mstrip i{flex:1;height:24px;border-radius:3px;background:var(--tint-3)}
.mstrip i.on{background:var(--ink);opacity:.82}
.mstrip i.now{outline:1.5px solid var(--accent);outline-offset:1px}
.mstack{display:flex;gap:2px;width:100%;height:12px;border-radius:6px;overflow:hidden}
.mstack i{border-radius:2px}
.mring{width:52px;height:52px;flex:none}
.mring__t{fill:none;stroke:var(--line-2);stroke-width:5}
.mring__v{fill:none;stroke:var(--ink);stroke-width:5;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%}
.mring__x{fill:var(--ink);font-family:var(--font-display);font-size:12px;text-anchor:middle}
.mlist{list-style:none;display:flex;flex-direction:column;gap:6px;width:100%}
.mlist li{display:flex;justify-content:space-between;gap:10px;font-size:11.5px}
.mlist span{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mlist em{flex:none;color:var(--faint);font-style:normal;font-variant-numeric:tabular-nums}

/* ---------- Oportunidades estacionales ---------- */
.estab{border:1px solid var(--line);border-radius:16px;background:var(--glass);overflow:hidden;max-width:1100px}
.estab__head,.estarow{display:grid;grid-template-columns:104px minmax(150px,1.05fr) minmax(220px,1.8fr) 150px 28px;gap:16px;align-items:start}
.estab__head{padding:11px 16px;font-family:var(--font-display);font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--faint);border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--tint-1);z-index:2}
.estab__month{padding:12px 16px 6px;font-family:var(--font-display);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);background:var(--tint-1);border-bottom:1px solid var(--line)}
.estarow{padding:13px 16px;border-bottom:1px solid var(--line);position:relative;transition:background .15s}
.estarow:last-child{border-bottom:0}
.estarow:hover{background:var(--tint-1)}
.estarow.is-done{opacity:.62}
.estarow__when b{font-family:var(--font-display);font-size:11px;color:var(--muted);white-space:nowrap}
.estarow__ev b{font-size:13px;font-weight:500;line-height:1.35}
.estarow__tip{display:block;font-size:11px;color:var(--faint);margin-top:4px;line-height:1.5}
.estarow__plan{min-width:0}
.est-plan{width:100%;min-height:50px;resize:vertical;background:var(--tint-3);border:1px solid var(--line-2);
  border-radius:9px;padding:8px 10px;font:inherit;font-size:12px;line-height:1.5;color:var(--ink)}
.est-plan:focus{outline:none;border-color:var(--muted);background:var(--tint-4)}
.est-in{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line-2);padding:3px 0;
  font:inherit;font-size:12.5px;color:var(--ink)}
.est-in--name{font-weight:500;font-size:13px}
.est-in--tip{font-size:11px;color:var(--muted);margin-top:4px}
.est-in:focus{outline:none;border-color:var(--accent)}
.estarow__st{display:flex;flex-wrap:wrap;gap:4px}
.estarow__st .pillbtn{font-size:9.5px;padding:5px 8px}
.estarow__del{align-self:start;width:24px;height:24px;flex:none;border:0;background:transparent;color:var(--faint);
  cursor:pointer;opacity:0;display:grid;place-items:center;transition:opacity .15s,color .15s}
.estarow__del svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.estarow:hover .estarow__del{opacity:1}
.estarow__del:hover{color:#ff6b6b}
@media (max-width:820px){
  .estab__head{display:none}
  .estarow{grid-template-columns:1fr;gap:8px}
}

/* ---------- Ajustes ---------- */
.settings{display:flex;flex-direction:column;gap:20px;max-width:640px}
.settings__card{border:1px solid var(--line);border-radius:18px;background:var(--glass);
  backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);padding:22px}
.settings__h{font-family:var(--font-display);font-weight:500;font-size:14px;margin-bottom:4px}
.settings__sub{font-size:12px;color:var(--faint);margin-bottom:16px;line-height:1.5}
.avatarrow{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:1px solid var(--line-2);flex:none;background:var(--tint-3)}
.avatar--empty{display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:20px;color:var(--faint)}
.resetlist{display:flex;flex-direction:column;gap:8px}
.resetrow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;
  border-radius:12px;border:1px solid var(--line);background:var(--tint-1)}
.resetrow__name{font-size:13px;font-weight:500}
.resetrow__desc{font-size:11px;color:var(--faint);margin-top:2px}
.resetrow--all{border-color:rgba(255,107,107,.3);background:rgba(255,107,107,.06)}

.side__avatarrow{display:flex;align-items:center;gap:9px}
.side__avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;border:1px solid var(--line-2);flex:none;background:var(--tint-4)}
.side__avatar--empty{display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:11px;color:var(--faint)}
.side__usercol{min-width:0;display:flex;flex-direction:column;gap:5px}
#accent-custom{width:26px;height:26px;padding:0;border:2px solid var(--line-2);border-radius:8px;
  background:transparent;cursor:pointer;-webkit-appearance:none;appearance:none}
#accent-custom::-webkit-color-swatch-wrapper{padding:2px}
#accent-custom::-webkit-color-swatch{border:0;border-radius:5px}

/* ===================================================================
   Horario estructurado
   =================================================================== */
.sched{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;height:100%}
.sched__grid{position:relative;overflow-y:auto;border:1px solid var(--line);border-radius:18px;background:var(--glass);
  backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%)}
.sched__inner{display:flex;padding:22px 22px 34px 16px}
.sched__times{position:relative;flex:0 0 44px;border-right:1px solid var(--line)}
.sched__t{position:absolute;right:12px;transform:translateY(-50%);font-family:var(--font-display);
  font-size:10px;color:var(--faint);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.sched__track{position:relative;flex:1;min-width:0;margin-left:14px}
.hour{position:absolute;left:-14px;right:0;border-top:1px dashed var(--line)}

.block{position:absolute;left:0;right:2px;border-radius:12px;padding:9px 12px;overflow:hidden;cursor:grab;
  display:flex;flex-direction:column;gap:3px;user-select:none;-webkit-user-select:none;
  border:1px solid var(--line-2);background:var(--tint-2);
  transition:border-color .18s,box-shadow .18s,transform .18s}
.block:hover{border-color:var(--muted);box-shadow:0 14px 34px -18px rgba(0,0,0,.75)}
.block.is-dragging{cursor:grabbing;box-shadow:0 24px 48px -16px rgba(0,0,0,.85);z-index:20}
.block__h{position:absolute;left:0;right:0;height:10px;cursor:ns-resize;z-index:2}
.block__h--t{top:0}
.block__h--b{bottom:0}
.block__top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:14px}
.block__type{font-family:var(--font-display);font-size:8px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.block__name{font-size:12.5px;font-weight:500;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.block__time{font-size:10px;color:var(--faint);font-variant-numeric:tabular-nums;letter-spacing:.03em}
.block__inlinetime{color:var(--faint);font-weight:400;font-size:10px;font-variant-numeric:tabular-nums}
.block--tight{padding:5px 10px;gap:0;justify-content:center}
.block--tight .block__name{font-size:11px}
.block__mission{font-size:10.5px;color:var(--muted);line-height:1.4;margin-top:1px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.block__edit{flex:none;width:22px;height:22px;border-radius:7px;border:1px solid var(--line-2);
  background:rgba(0,0,0,.3);color:var(--muted);display:grid;place-items:center;cursor:pointer;
  opacity:0;transition:opacity .15s,color .15s,background .15s}
.block__edit svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.block:hover .block__edit{opacity:1}
.block__edit:hover{color:var(--ink);background:rgba(0,0,0,.45)}
.block--profundo{background:linear-gradient(180deg,var(--tint-4),var(--tint-2));border-color:var(--muted)}
.block--profundo .block__type{color:var(--ink)}
.block--administrativo{background:var(--tint-4)}
.block--activacion,.block--desactivacion{background:var(--tint-1);border-style:dashed}
.block--pausa{background:repeating-linear-gradient(45deg,var(--tint-3) 0 8px,var(--tint-1) 8px 16px)}
.block--recompensa{background:var(--tint-1);border-style:dotted;border-color:var(--muted)}
.sched__now{position:absolute;left:-14px;right:0;height:0;border-top:2px solid var(--accent);
  box-shadow:0 0 12px rgba(255,255,255,.7);z-index:15;pointer-events:none}
.sched__now span{position:absolute;left:-52px;top:-8px;font-family:var(--font-display);font-size:9px;
  color:var(--accent-ink);background:var(--accent);padding:1px 4px;border-radius:4px;font-variant-numeric:tabular-nums}
.sched__now::after{content:"";position:absolute;left:-4px;top:-4px;width:7px;height:7px;border-radius:50%;background:var(--accent)}

.sched__side{display:flex;flex-direction:column;gap:12px;overflow-y:auto;padding-right:2px}
.pilar{position:relative;display:flex;align-items:stretch;border-radius:14px;border:1px solid var(--line);background:var(--glass);
  transition:border-color .2s,background .2s}
.pilar:hover{border-color:var(--line-2);background:var(--glass-2)}
.pilar__body{flex:1;min-width:0;text-align:left;padding:14px 15px;background:none;border:0;cursor:pointer;color:inherit}
.pilar__k{font-family:var(--font-display);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
.pilar__n{font-size:13px;font-weight:500;margin-top:5px}
.pilar__m{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.5}
.pilar__m b{display:block;font-family:var(--font-display);font-weight:400;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:1px}
.pilar__del{flex:none;width:30px;margin:10px 10px 10px 0;border-radius:8px;border:1px solid transparent;background:transparent;
  color:var(--faint);display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .15s,color .15s,border-color .15s,background .15s}
.pilar__del svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.pilar:hover .pilar__del{opacity:1}
.pilar__del:hover{color:#ff6b6b;border-color:var(--line-2);background:rgba(255,107,107,.1)}
.sched__legend{padding:13px 15px;border-radius:14px;border:1px solid var(--line);background:var(--tint-1)}
.sched__legend b{font-family:var(--font-display);font-weight:400;color:var(--ink);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase}
.sched__legend p{font-size:11px;color:var(--muted);line-height:1.6;margin-top:5px}
.sched__empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  text-align:center;padding:20px;pointer-events:none}
.sched__empty>*{pointer-events:auto}
.sched__empty p{font-size:14px;color:var(--muted);margin:0}
.sched__empty span{font-size:11.5px;color:var(--faint)}

/* ===================================================================
   Contenido — ideas / plantillas / guiones / pipeline
   =================================================================== */
.content{display:flex;flex-direction:column;gap:14px;height:100%}
.cbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}
.cbar__r{display:flex;gap:8px;align-items:center}
.cflow{display:flex;align-items:stretch;gap:10px;flex:none;padding:6px;border-radius:18px;
  border:1px solid var(--line);background:var(--tint-1)}
.cflow__s{flex:1;display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;
  padding:14px 12px;border-radius:13px;border:1px solid transparent;background:transparent;color:inherit;cursor:pointer;
  transition:border-color .15s,background .15s}
.cflow__s:hover{background:var(--glass-2)}
.cflow__s.is-on{border-color:var(--accent);background:var(--glass)}
.cflow__s b{font-family:var(--font-display);font-weight:600;font-size:26px;line-height:1}
.cflow__s span{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.cflow__a{display:flex;align-items:center;color:var(--faint);font-size:16px}
.cbody{flex:1;min-height:0;overflow-y:auto;padding-right:4px;display:flex;flex-direction:column}
.cnote{font-size:12px;color:var(--muted);line-height:1.55;margin-bottom:12px;max-width:720px}

.ideagrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;align-content:start}
.ideacard{position:relative;display:flex;flex-direction:column;border-radius:16px;border:1px solid var(--line);
  background:var(--glass);overflow:hidden;cursor:pointer;transition:border-color .18s,background .18s,transform .18s}
.ideacard:hover{border-color:var(--line-2);background:var(--glass-2);transform:translateY(-2px)}
.ideacard__bar{height:3px;background:var(--accent);opacity:.5}
.ideacard__body{padding:16px 16px 10px;flex:1}
.ideacard__title{font-size:14px;font-weight:500;line-height:1.4}
.ideacard__note{font-size:11.5px;color:var(--muted);margin-top:8px;line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ideacard__note--empty{color:var(--faint);font-style:italic}
.ideacard__foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px 12px}
.ideacard__foot .pilar__del{flex:none;width:26px;height:26px;position:static;margin:0;opacity:0}
.ideacard:hover .ideacard__foot .pilar__del{opacity:1}
.ideacard--ghost{align-items:center;justify-content:center;gap:5px;min-height:160px;padding:20px;
  border-style:dashed;border-color:var(--line-2);background:transparent;text-align:center;
  font-size:12.5px;color:var(--muted)}
.ideacard--ghost:hover{transform:none;background:var(--glass);border-color:var(--accent)}
.ideacard__plus{font-family:var(--font-display);font-size:26px;line-height:1;color:var(--faint)}
.ideacard--ghost em{font-style:normal;font-size:10.5px;color:var(--faint);text-decoration:underline;text-underline-offset:2px}

.cempty{flex:1;min-height:320px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  padding:44px 32px;border:1px dashed var(--line-2);border-radius:22px;background:var(--glass)}
.cempty__ic{width:52px;height:52px;color:var(--faint);margin-bottom:10px}
.cempty__ic svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cempty h3{font-family:var(--font-display);font-weight:500;font-size:17px}
.cempty p{font-size:12.5px;color:var(--muted);line-height:1.65;max-width:420px}
.cempty__acts{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap;justify-content:center}

.tplwrap{max-width:860px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:12px}
.tplsearch{width:100%;background:var(--tint-3);border:1px solid var(--line-2);border-radius:11px;
  padding:10px 14px;font:inherit;font-size:13px;color:var(--ink)}
.tplsearch:focus{outline:none;border-color:var(--muted);background:var(--tint-4)}
.tpllist{display:flex;flex-direction:column;gap:6px}
.tplsec{font-family:var(--font-display);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);
  padding:16px 2px 6px;margin-top:6px;border-top:1px solid var(--line)}
.tpllist > .tplsec:first-child{border-top:0;margin-top:0;padding-top:2px}
.tplitem{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:11px;border:1px solid var(--line);
  background:var(--glass);color:inherit;cursor:pointer;text-align:left;
  transition:border-color .15s,background .15s,transform .1s}
.tplitem:hover{border-color:var(--line-2);background:var(--glass-2)}
.tplitem:active{transform:scale(.995)}
.tplitem.is-added{border-color:var(--accent)}
.tplitem__n{flex:none;width:30px;font-family:var(--font-display);font-size:11px;color:var(--faint);
  font-variant-numeric:tabular-nums;text-align:right}
.tplitem__tx{flex:1;min-width:0;font-size:12.5px;line-height:1.4}
.tplitem__add{flex:none;font-family:var(--font-display);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);border:1px solid var(--line-2);border-radius:7px;padding:4px 9px;
  opacity:0;transition:opacity .15s,color .15s,border-color .15s}
.tplitem:hover .tplitem__add,.tplitem.is-added .tplitem__add{opacity:1}
.tplitem.is-added .tplitem__add{color:var(--accent);border-color:var(--accent)}

.idealist{display:flex;flex-direction:column;gap:10px}
.idearow{position:relative;display:flex;align-items:center;gap:10px;padding:4px;border-radius:14px;
  border:1px solid var(--line);background:var(--glass);transition:border-color .2s,background .2s}
.idearow:hover{border-color:var(--line-2);background:var(--glass-2)}
.idearow__body{flex:1;min-width:0;text-align:left;padding:12px 6px 12px 12px;background:none;border:0;cursor:pointer;color:inherit}
.idearow__title{font-size:13.5px;font-weight:500}
.idearow__note{font-size:11.5px;color:var(--muted);margin-top:4px;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.idearow__acts{flex:none;display:flex;align-items:center;gap:6px;padding-right:6px}
.idearow:hover .pilar__del{opacity:1}

.piececard{display:flex;flex-direction:column;gap:2px;padding:18px;border-radius:16px;cursor:pointer}
.piececard__h{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.piececard__h h3{font-family:var(--font-display);font-size:14px;font-weight:500;color:var(--ink);line-height:1.35}
.piececard__h .pilar__del{margin:-4px -4px 0 0;flex:none;opacity:0}
.piececard:hover .piececard__h .pilar__del{opacity:1}
.piececard__meta{font-size:10.5px;color:var(--faint);margin-bottom:4px}
.piececard__script{font-size:11.5px;color:var(--muted);line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}
.piececard__script--empty{color:var(--faint);font-style:italic}

.checkrow,.bulletrow{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.checkrow input[type="checkbox"]{flex:none;width:16px;height:16px;padding:0;border:0;background:none;accent-color:var(--accent)}
.checkrow input[type="text"],.bulletrow input[type="text"]{flex:1;min-width:0}
.bulletrow__dot{flex:none;width:10px;text-align:center;color:var(--faint);font-size:16px;line-height:1}
.checkrow .pilar__del,.bulletrow .pilar__del{flex:none;width:26px;height:26px;opacity:0;position:static;margin:0}
.checkrow:hover .pilar__del,.bulletrow:hover .pilar__del{opacity:1}

/* ===================================================================
   Roadmap — tablero anual (recorrido) + objetivos
   =================================================================== */
.rmboard{display:flex;flex-direction:column;gap:18px;overflow-x:auto;padding:2px 2px 12px}

.rmgrid{position:relative;display:grid;grid-template-columns:60px repeat(3,minmax(150px,1fr));
  gap:78px 44px;min-width:620px;padding:6px 6px 14px}
.rmthread{position:absolute;left:0;top:0;pointer-events:none;overflow:visible;z-index:0}
.rmthread path{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;
  stroke-dasharray:2 6;opacity:.85}

.rmq{align-self:center;display:flex;flex-direction:column;gap:3px;padding:10px 8px;text-align:center;
  border-radius:14px;border:1px solid var(--line);background:var(--tint-1);color:var(--muted)}
.rmq b{font-family:var(--font-display);font-weight:600;font-size:15px;color:var(--ink)}
.rmq span{font-size:8.5px;letter-spacing:.06em;color:var(--faint)}

.rmcell{position:relative;z-index:1;display:flex;flex-direction:column;gap:3px;min-height:104px;
  padding:14px;border-radius:14px;border:1px solid var(--line);background:var(--glass);
  color:inherit;cursor:pointer;text-align:left;transition:border-color .2s,background .2s}
.rmcell:hover{border-color:var(--line-2);background:var(--glass-2)}
.rmcell.is-now{border-color:var(--accent);background:var(--glass-2)}
.rmcell__n{position:absolute;top:8px;right:10px;font-family:var(--font-display);font-size:10px;color:var(--faint)}
.rmcell__m{font-family:var(--font-display);font-weight:500;font-size:14px}
.rmcell__season{font-family:var(--font-display);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.rmcell__meta{font-size:11px;color:var(--muted);margin-top:auto;padding-top:8px}
.rmcell__add{color:var(--faint)}
.rmcell__you{margin-top:6px;align-self:flex-start;font-family:var(--font-display);font-size:8px;letter-spacing:.05em;
  background:var(--accent);color:var(--accent-ink);padding:2px 6px;border-radius:5px}

/* items dentro del drawer de una casilla */
.rmitem{display:flex;flex-direction:column;gap:8px;padding:12px;margin-bottom:10px;
  border:1px solid var(--line-2);border-radius:12px;background:var(--tint-1)}
.rmitem__top{display:flex;align-items:center;gap:8px}
.rmitem input,.rmitem textarea{
  width:100%;background:var(--tint-3);border:1px solid var(--line-2);border-radius:10px;
  padding:9px 11px;color:var(--ink);font:inherit;font-size:13px;transition:border-color .2s,background .2s}
.rmitem input:focus,.rmitem textarea:focus{outline:none;border-color:var(--muted);background:var(--tint-4)}
.rmitem__top input{flex:1;min-width:0}
.rmitem .pilar__del{flex:none;width:30px;height:30px;opacity:.5;position:static;margin:0}
.rmitem:hover .pilar__del{opacity:1}
.rmitem textarea{min-height:52px;resize:vertical;line-height:1.5}

/* objetivos */
.deal.is-done .deal__title{text-decoration:line-through;color:var(--faint)}
.rmgoal__check{font-family:var(--font-display);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;
  padding:4px 8px;border-radius:7px;border:1px solid var(--line-2);background:transparent;color:var(--muted);cursor:pointer;
  transition:border-color .15s,color .15s,background .15s}
.rmgoal__check:hover{border-color:var(--muted);color:var(--ink)}
.rmgoal__check.is-on{border-color:rgba(120,220,150,.5);color:#8fe3a0;background:rgba(120,220,150,.12)}
.rmdone{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);cursor:pointer;margin-top:4px}
.rmdone input{width:16px;height:16px;accent-color:var(--accent)}

/* selector de rango horario (arriba del horario) */
.daypick{display:flex;align-items:center;gap:6px}
.daypick__sel{font-family:var(--font-display);font-size:11px;padding:7px 26px 7px 10px;border-radius:9px;
  border:1px solid var(--line-2);color:var(--solid);cursor:pointer;
  -webkit-appearance:none;-moz-appearance:none;appearance:none;
  background:var(--solid-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23888' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 9px center}
.daypick__sel option{background:var(--solid-ink);color:var(--solid)}
.daypick__sep{color:var(--faint);font-size:11px}

/* pestañas de Horario: Mi horario / Plantillas */
.segmented{display:flex;gap:2px;padding:3px;border-radius:11px;border:1px solid var(--line);background:var(--tint-1)}
.segmented__btn{font-family:var(--font-display);font-size:11px;letter-spacing:.03em;padding:7px 13px;border-radius:8px;
  border:0;background:transparent;color:var(--muted);cursor:pointer;transition:background .16s,color .16s}
.segmented__btn:hover{color:var(--ink)}
.segmented__btn.is-on{background:var(--solid);color:var(--solid-ink)}

/* Plantillas de horario */
.tplgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;padding:2px}
.tplcard{display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:16px}
.tplcard__h{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.tplcard__h h3{font-family:var(--font-display);font-size:14px;font-weight:500;color:var(--ink)}
.tplcard__n{font-size:10px;color:var(--faint);white-space:nowrap}
.tplcard__desc{font-size:12px;color:var(--muted);line-height:1.5}
.tplcard__list{list-style:none;display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted);
  max-height:140px;overflow-y:auto;padding-right:2px}
.tplcard__list b{color:var(--faint);font-variant-numeric:tabular-nums;font-weight:500;margin-right:5px}
.tplcard .btn{margin-top:auto}

/* selector de chips reutilizable (tipo de bloque, tags) */
.chips{display:flex;flex-wrap:wrap;gap:6px}
.pillbtn{font-family:var(--font-display);font-size:11px;letter-spacing:.02em;padding:7px 11px;border-radius:9px;
  border:1px solid var(--line-2);background:var(--tint-3);color:var(--muted);cursor:pointer;
  transition:background .16s,border-color .16s,color .16s}
.pillbtn:hover{color:var(--ink);border-color:var(--muted)}
.pillbtn.is-on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.pillbtn.is-tag.is-on{background:rgba(63,224,208,.16);border-color:#3fe0d0;color:#3fe0d0}
.tagpick{display:flex;flex-wrap:wrap;gap:6px;min-height:20px}
.tagpick__empty{font-size:11px;color:var(--faint)}
.tagnew{display:flex;gap:8px;margin-top:8px}
.tagnew input{flex:1}
.field__hint{font-size:10.5px;color:var(--faint);line-height:1.5}
.mroom__row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.tagwrap{position:relative;display:inline-flex}
.tagwrap__del{position:absolute;top:-7px;right:-7px;width:17px;height:17px;border-radius:50%;
  background:#17181b;border:1px solid var(--line-2);display:none;place-items:center;cursor:pointer;padding:0}
.tagwrap:hover .tagwrap__del{display:grid}
.tagwrap__del svg{width:9px;height:9px;fill:none;stroke:#ff7a7a;stroke-width:2;stroke-linecap:round}
.pillbtn[style*="--g"].is-on{background:var(--g);border-color:var(--g);color:#0c0d0f}

/* ===================================================================
   Neuronas — grafo 3D de notas
   =================================================================== */
#view-neuronas{overflow:hidden}
.neuro{position:relative;height:calc(100vh - 168px);border:1px solid var(--line);border-radius:18px;overflow:hidden;
  background:radial-gradient(circle at 50% 42%,var(--tint-2),transparent 62%);perspective:1400px;
  touch-action:none;cursor:grab;
  user-select:none;-webkit-user-select:none}
.neuro.is-pan{cursor:grabbing}
.neuro__vp{position:absolute;inset:0;transform-origin:0 0;will-change:transform}
.neuro__threads{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.neuro__threads path{fill:none;stroke:var(--thread);stroke-width:1.3;
  transition:stroke .18s,stroke-width .18s,opacity .18s}
.neuro__threads path.hot{stroke:#3fe0d0;stroke-width:1.8;filter:drop-shadow(0 0 5px rgba(63,224,208,.55))}
.neuro__space{position:absolute;inset:0;transform-style:preserve-3d}
.nnode{position:absolute;transform:translate(-50%,-50%);will-change:left,top,transform,opacity;cursor:grab;
  transition:opacity .2s var(--ease),filter .2s var(--ease)}
.nnode.is-drag{cursor:grabbing;transition:none}
.nnode__dot{max-width:190px;padding:9px 13px;border-radius:13px;
  border:1px solid rgba(255,255,255,.24);color:#fff;
  background:rgba(16,17,20,.78);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),0 16px 38px -20px rgba(0,0,0,.85);
  transition:border-color .18s,color .18s,box-shadow .18s}
.nnode:hover .nnode__dot{border-color:rgba(255,255,255,.5)}
.nnode__t{font-size:12px;font-weight:500;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nnode__tags{margin-top:4px;font-size:9.5px;color:var(--faint);font-family:var(--font-display);letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .18s}
.nnode__net{margin-top:6px;padding-top:5px;border-top:1px solid rgba(255,255,255,.1);
  font-family:var(--font-display);font-size:8px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--net,#3fe0d0);display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nnode__net::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--net,#3fe0d0);flex:none;box-shadow:0 0 8px var(--net,#3fe0d0)}
.nnode--mother .nnode__dot{border-color:var(--net,rgba(255,255,255,.24));background:rgba(20,21,24,.86)}
.nnode.hot{opacity:1 !important;filter:none !important}
.nnode.hot .nnode__dot{border-color:var(--hot,#3fe0d0);color:var(--hot,#3fe0d0);box-shadow:0 0 24px var(--hot,#3fe0d0)}
.nnode.hot .nnode__tags{color:var(--hot,#3fe0d0);opacity:.75}
.neuro__foot{position:absolute;left:16px;bottom:12px;font-size:11px;color:var(--faint);pointer-events:none}
.swatch{width:26px;height:26px;border-radius:8px;border:2px solid transparent;background:var(--sw);cursor:pointer;padding:0;
  transition:transform .12s var(--ease),border-color .12s}
.swatch:hover{transform:scale(1.12)}
.swatch.is-on{border-color:var(--ink);box-shadow:0 0 0 1px var(--bg)}

/* ===================================================================
   CRM — clientes + gemas
   =================================================================== */
.crm{display:grid;grid-template-columns:330px 1fr;gap:22px;height:100%;align-items:start}
.crm__col{display:flex;flex-direction:column;gap:10px;height:100%;min-height:0}
.crm__search{width:100%;background:var(--tint-3);border:1px solid var(--line-2);border-radius:11px;
  padding:9px 12px;color:var(--ink);font:inherit;font-size:12.5px}
.crm__search::placeholder{color:var(--faint)}
.crm__estado{display:flex;align-items:center;gap:12px;margin:2px 0 4px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.crm__clearf{margin-left:auto;flex:none}
.crm__flabel{font-family:var(--font-display);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
.crm__seg{display:flex;border:1px solid var(--line-2);border-radius:9px;overflow:hidden}
.crm__seg button{padding:6px 12px;font-family:var(--font-display);font-size:10.5px;background:transparent;color:var(--muted);
  border:0;border-right:1px solid var(--line);cursor:pointer;transition:background .15s,color .15s}
.crm__seg button:last-child{border-right:0}
.crm__seg button:hover{color:var(--ink)}
.crm__seg button.is-on{background:var(--accent);color:var(--accent-ink)}
.crm__selects{display:flex;flex-direction:column;gap:6px}
.crm__selects select{width:100%;background:var(--tint-3);border:1px solid var(--line-2);border-radius:10px;
  color:var(--ink);font:inherit;font-size:12px;padding:8px 10px}
.crm__selects select option{background:var(--bg);color:var(--ink)}
.crm__ownco{display:flex;gap:6px}
.crm__ownco select{flex:1 1 0;width:auto;min-width:0}
.crm__ownco .btn{flex:none;padding:0 12px;font-size:11px}
.crm__list{display:flex;flex-direction:column;gap:8px;overflow-y:auto;flex:1;min-height:0;padding-right:4px}
.ccard__foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px}
.ccard__meta{font-size:10px;color:var(--faint);font-variant-numeric:tabular-nums}
.ccard.is-off{opacity:.5}
.ccard.is-off .ccard__name{text-decoration:line-through;text-decoration-color:var(--faint)}
.actbtn{font-family:var(--font-display);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;
  padding:3px 8px;border-radius:6px;border:1px solid var(--line-2);background:transparent;color:var(--faint);
  cursor:pointer;flex:none;transition:background .15s,color .15s,border-color .15s}
.actbtn:hover{border-color:var(--muted);color:var(--ink)}
.actbtn--on{border-color:rgba(120,220,150,.5);color:#8fe3a0;background:rgba(120,220,150,.12)}
.badge-off{font-family:var(--font-display);font-size:8px;letter-spacing:.1em;text-transform:uppercase;
  vertical-align:middle;padding:2px 6px;border-radius:5px;border:1px solid var(--line-2);color:var(--faint);margin-left:8px}
.cpanel__headr{display:flex;align-items:center;gap:8px;flex:none;flex-wrap:wrap;justify-content:flex-end}
.cpanel__headr{flex-wrap:nowrap}
/* menú discreto (⋯) con las acciones delicadas */
.cmenu{position:relative}
.cmenu__btn svg{width:16px;height:16px;fill:currentColor;stroke:none}
.cmenu__list{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:190px;padding:5px;
  display:flex;flex-direction:column;gap:2px;border-radius:12px;border:1px solid var(--line-2);
  background:var(--opaque);box-shadow:0 18px 40px -12px rgba(0,0,0,.55)}
.cmenu__list[hidden]{display:none}
.cmenu__it{text-align:left;padding:9px 11px;border:0;border-radius:8px;background:none;color:var(--muted);
  font-size:12.5px;cursor:pointer;transition:background .15s,color .15s}
.cmenu__it:hover{background:var(--tint-4);color:var(--ink)}
.cmenu__it--del{color:#e5686d}
.cmenu__it--del:hover{background:rgba(229,104,109,.12);color:#e5686d}
/* Progreso: bloque propio y destacado, separado del resto de acciones */
.cpanel__prog{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;margin-top:16px;
  padding:14px 16px;border-radius:14px;border:1px solid var(--accent);background:var(--glass-2);color:inherit;
  text-align:left;cursor:pointer;transition:background .15s,transform .15s}
.cpanel__prog:hover{background:var(--tint-4);transform:translateY(-1px)}
.cpanel__prog span{display:flex;flex-direction:column;gap:2px}
.cpanel__prog b{font-family:var(--font-display);font-weight:500;font-size:13.5px}
.cpanel__prog em{font-style:normal;font-size:11.5px;color:var(--faint)}
.cpanel__prog i{font-style:normal;font-size:18px;color:var(--accent)}

/* datos de contacto: dos fichas iguales, un toque copia */
.ccts{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-top:14px}
.cct{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;
  border:1px solid var(--line-2);background:var(--tint-2);color:inherit;text-align:left;cursor:pointer;min-width:0;
  transition:border-color .15s,background .15s}
.cct:hover{border-color:var(--muted);background:var(--tint-4)}
.cct__txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.cct__k{font-family:var(--font-display);font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
.cct__v{font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cct__tag{flex:none;font-family:var(--font-display);font-size:9.5px;letter-spacing:.04em;padding:4px 9px;border-radius:7px;
  border:1px solid var(--line-2);color:var(--muted);transition:background .15s,color .15s,border-color .15s}
.cct:hover .cct__tag{color:var(--ink);border-color:var(--muted)}
.cct.is-ok{border-color:rgba(120,220,150,.5)}
.cct.is-ok .cct__tag{background:rgba(120,220,150,.14);border-color:rgba(120,220,150,.5);color:#8fe3a0}
.ccard{text-align:left;padding:13px 14px;border-radius:13px;border:1px solid var(--line);background:var(--glass);
  cursor:pointer;transition:border-color .2s,background .2s;display:flex;flex-direction:column;gap:5px}
.ccard:hover{border-color:var(--line-2);background:var(--glass-2)}
.ccard.is-active{border-color:var(--accent);background:var(--glass-2)}
.ccard__top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ccard__name{font-size:13.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ccard__sub{font-size:11px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ccard__own{display:inline-block;font-family:var(--font-display);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;
  padding:1px 6px;border-radius:5px;border:1px solid var(--line-2);color:var(--muted);vertical-align:middle}
.gtag{font-family:var(--font-display);font-size:9px;letter-spacing:.1em;text-transform:uppercase;
  padding:3px 8px;border-radius:7px;background:var(--g,#888);color:#0c0d0f;white-space:nowrap;flex:none}
.gtag--none{background:transparent;border:1px solid var(--line-2);color:var(--faint)}

.crm__side{height:100%;overflow-y:auto}
.cpanel{border:1px solid var(--line);border-radius:18px;background:var(--glass);
  backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);padding:22px}
.cpanel__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.cpanel__name{font-family:var(--font-display);font-weight:500;font-size:18px}
.cpanel__sub{font-size:12.5px;color:var(--muted);margin-top:3px}
.cpanel__contact{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;color:var(--faint);margin-top:10px;font-variant-numeric:tabular-nums}
.cpanel__phone{display:inline-flex;align-items:center;gap:8px}
.cpanel__note{font-size:13px;color:var(--muted);line-height:1.6;margin-top:12px}
.cpanel__label{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin:22px 0 9px}
.cpanel__sublabel{font-family:var(--font-display);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);opacity:.8;margin:12px 0 6px}
.cpanel__hint{font-size:12px;color:var(--faint);margin-top:6px}
.linkrow--done{opacity:.6}
.linkrow--done:hover{opacity:1}
.minibtn{font-family:var(--font-display);font-size:9.5px;letter-spacing:.04em;padding:4px 9px;border-radius:7px;
  border:1px solid var(--line-2);background:var(--tint-4);color:var(--muted);cursor:pointer;transition:background .15s,color .15s}
.minibtn:hover{background:var(--tint-5);color:var(--ink)}
.minibtn.ok{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.linklist{display:flex;flex-direction:column;gap:4px}
.linkrow{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;
  padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:var(--tint-1);
  cursor:pointer;transition:border-color .15s,background .15s;font-size:12.5px}
.linkrow:hover{border-color:var(--line-2);background:var(--glass-2)}
.linkrow span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.linkrow em{font-style:normal;font-size:10.5px;color:var(--faint);white-space:nowrap;flex:none;font-variant-numeric:tabular-nums}

.play{margin-top:20px;border:1px solid var(--g,var(--line-2));border-radius:14px;overflow:hidden;
  background:linear-gradient(180deg,color-mix(in srgb,var(--g,#fff) 10%,transparent),transparent 60%)}
.play__h{font-family:var(--font-display);font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--g,#fff);padding:12px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:9px}
.play__dot{width:9px;height:9px;border-radius:50%;background:var(--g,#fff);box-shadow:0 0 10px var(--g,#fff)}
.play__row{display:grid;grid-template-columns:118px 1fr;gap:14px;padding:11px 16px;border-bottom:1px solid var(--line);font-size:12.5px;line-height:1.5}
.play__row:last-child{border-bottom:0}
.play__row b{font-family:var(--font-display);font-weight:400;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding-top:2px}
.play__row span{color:var(--muted)}

@media(max-width:1000px){.crm{grid-template-columns:1fr;height:auto}}

/* ===================================================================
   Calendario de reuniones (mes)
   =================================================================== */
.mcal{display:flex;flex-direction:column;gap:14px;height:100%}
.mcal__head{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.mcal__title{font-family:var(--font-display);font-weight:500;font-size:18px;text-transform:capitalize}
.mcal__sugg{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:11px;color:var(--faint)}
.mcal__sugg span{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;font-size:9px}
.mcal__wds{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:0 10px}
.mcal__wd{font-family:var(--font-display);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);text-align:center;padding:2px 0}
.mcal__grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(86px,1fr);gap:6px;
  border:1px solid var(--line);border-radius:16px;background:var(--glass);
  backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);padding:10px;overflow:auto}
.cday{border:1px solid var(--line);border-radius:10px;padding:6px 7px;display:flex;flex-direction:column;gap:4px;
  min-height:84px;background:var(--tint-1);cursor:pointer;transition:border-color .15s,background .15s}
.cday:hover{border-color:var(--line-2);background:var(--tint-3)}
.cday--out{border:0;background:transparent;cursor:default;pointer-events:none}
.cday--today{border-color:var(--muted)}
.cday--today .cday__n{color:var(--ink)}
.cday__n{font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums;font-family:var(--font-display)}
.cday__list{display:flex;flex-direction:column;gap:3px;overflow:hidden}
.mchip{text-align:left;font-size:10px;line-height:1.3;padding:3px 6px;border-radius:6px;cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid var(--g,var(--line-2))}
.mchip--presencial{background:var(--g,var(--solid));color:var(--gink,var(--solid-ink));border-color:transparent}
.mchip--remoto{background:transparent;color:var(--ink);border-color:var(--g,var(--line-2))}
.mchip--remoto .mchip__t{color:var(--g,var(--muted))}
.mchip__t{font-weight:600;font-variant-numeric:tabular-nums;opacity:.85}

/* proyecto: selector de cliente */
.pm__headr{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pm__clientpick{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.pm__clientpick select{background:var(--tint-3);border:1px solid var(--line-2);border-radius:9px;color:var(--ink);font:inherit;font-size:12px;padding:6px 9px;text-transform:none;letter-spacing:0}
.pm__clientpick select option{background:var(--bg);color:var(--ink)}

/* ===================================================================
   Presupuestos — documento editable + exportar PDF
   =================================================================== */
.bud{display:grid;grid-template-columns:250px 1fr;gap:16px;height:100%;min-height:0}
.bud__list{display:flex;flex-direction:column;gap:6px;padding:12px;overflow-y:auto;border-radius:16px}
.bud__row{display:flex;flex-direction:column;gap:4px;padding:11px 12px;border-radius:11px;border:1px solid transparent;
  background:none;text-align:left;cursor:pointer;color:inherit;transition:background .18s,border-color .18s}
.bud__row:hover{background:var(--tint-3)}
.bud__row.is-active{background:var(--tint-4);border-color:var(--line-2)}
.bud__rowtop{display:flex;justify-content:space-between;gap:10px;font-size:12.5px}
.bud__rowtop b{font-family:var(--font-display);font-weight:500}
.bud__rowtop em{font-style:normal;color:var(--muted);font-variant-numeric:tabular-nums}
.bud__rowsub{font-size:10.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.bud__stage{min-width:0;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding-right:4px}
.bdoc-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:none}
.bdoc-bar__sp{flex:1}
.bdoc-bar__font{background:var(--tint-3);border:1px solid var(--line-2);border-radius:9px;color:var(--ink);font:inherit;font-size:12px;padding:6px 9px}
.bdoc-bar__font option{background:var(--bg);color:var(--ink)}
.bdoc-bar__paper{flex:none}
.bdoc-bar__paper .segmented__btn{padding:5px 11px}
.bdoc-bar__acc{display:flex;gap:5px;align-items:center;flex:none}
.bacc{width:15px;height:15px;border-radius:50%;border:1px solid var(--line-2);background:var(--c,transparent);
  cursor:pointer;padding:0;transition:transform .12s,box-shadow .12s}
.bacc:hover{transform:scale(1.15)}
.bacc.is-on{box-shadow:0 0 0 2px var(--bg),0 0 0 3.5px var(--ink)}
.bacc--none{position:relative}
.bacc--none::after{content:"";position:absolute;left:2px;right:2px;top:50%;height:1px;background:var(--muted);transform:rotate(-45deg)}

/* ---- la "hoja": documento compacto, dos acabados (claro / oscuro), glow y color de resalte ---- */
.bdoc-wrap{position:relative;align-self:center;width:100%;max-width:760px;margin:0 auto 18px;isolation:isolate}
.bdoc-wrap::before{content:"";position:absolute;left:50%;top:-26px;width:70%;height:130px;
  transform:translateX(-50%);border-radius:50%;
  background:radial-gradient(closest-side,var(--bd-accent,var(--accent)),transparent);
  opacity:.16;filter:blur(40px);z-index:0;pointer-events:none}

.bdoc{
  position:relative;z-index:1;width:100%;border-radius:16px;overflow:hidden;
  padding:30px 34px 26px;font-size:12px;line-height:1.5;
  background:var(--bd-bg);color:var(--bd-ink);
  transition:background .3s var(--ease),color .3s var(--ease),box-shadow .3s var(--ease);
  -webkit-print-color-adjust:exact;print-color-adjust:exact;
}
.bdoc--light{
  --bd-bg:#ffffff; --bd-ink:#16181c; --bd-mut:#6b7280; --bd-faint:#9aa1ac;
  --bd-line:#edeef1; --bd-line-2:#d9dce1; --bd-field:#f5f6f8; --bd-rule:#16181c;
  box-shadow:0 1px 2px rgba(0,0,0,.05),0 40px 84px -38px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.7);
}
.bdoc--dark{
  --bd-bg:linear-gradient(180deg,#17191d 0%,#0f1013 100%);
  --bd-ink:#edeff3; --bd-mut:rgba(255,255,255,.56); --bd-faint:rgba(255,255,255,.38);
  --bd-line:rgba(255,255,255,.09); --bd-line-2:rgba(255,255,255,.17); --bd-field:rgba(255,255,255,.06); --bd-rule:rgba(255,255,255,.82);
  box-shadow:0 40px 92px -34px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.09),inset 0 -1px 0 rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.05);
}

.bdoc h4{font-family:var(--font-display);font-weight:600;font-size:7.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--bd-faint);margin-bottom:4px}
.bdoc input,.bdoc textarea,.bdoc select{width:100%;font:inherit;color:var(--bd-ink);background:transparent;border:0;
  border-bottom:1px solid var(--bd-line-2);padding:3px 2px;border-radius:0;transition:border-color .15s,background .15s}
.bdoc input::placeholder,.bdoc textarea::placeholder{color:var(--bd-faint)}
.bdoc input:focus,.bdoc textarea:focus,.bdoc select:focus{outline:none;border-bottom-color:var(--bd-accent,var(--bd-rule));background:var(--bd-field)}
.bdoc textarea{resize:none;line-height:1.45;border:1px solid var(--bd-line-2);border-radius:8px;padding:6px 9px;min-height:28px}
.bdoc select option{background:#16181c;color:#fff}

.bdoc__head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-bottom:12px;
  border-bottom:1.5px solid var(--bd-rule)}
.bdoc__logo{flex:none;width:138px;height:54px;border:1px dashed var(--bd-line-2);border-radius:9px;background:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;color:var(--bd-faint);font-size:9.5px;letter-spacing:.05em;overflow:hidden;padding:5px}
.bdoc__logo.has-img{border-style:solid;border-color:var(--bd-line)}
.bdoc__logo img{max-width:100%;max-height:100%;object-fit:contain}
.bdoc__meta{flex:1;max-width:238px;display:flex;flex-direction:column;gap:3px}
.bdoc .bdoc__title{font-family:var(--font-display);font-weight:600;font-size:14.5px;letter-spacing:.01em;text-align:right;border:0!important;background:none!important;padding-bottom:1px}
.bdoc__metarow{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:6px}
.bdoc__metarow label{font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--bd-faint);text-align:right}
.bdoc__metarow input{font-size:10.5px;text-align:right;font-variant-numeric:tabular-nums}

.bdoc__parties{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:16px 0}
.bdoc__party{display:flex;flex-direction:column;gap:4px}
.bdoc__party input{font-size:11px}
.bdoc__clientpick{margin-bottom:2px;border:1px solid var(--bd-line-2)!important;border-radius:7px;padding:5px 7px;font-size:10.5px;color:var(--bd-mut)}

.bdoc__block{margin:14px 0}
.bdoc__cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:16px}

.bdoc__items{width:100%;border-collapse:collapse;margin-top:4px;font-size:11px}
.bdoc__items th{font-family:var(--font-display);font-weight:600;font-size:7px;letter-spacing:.16em;text-transform:uppercase;color:var(--bd-faint);
  text-align:right;padding:0 5px 6px;border-bottom:1.5px solid var(--bd-rule)}
.bdoc__items th:first-child{text-align:left}
.bdoc__items td{padding:4px 5px;border-bottom:1px solid var(--bd-line);vertical-align:middle}
.bdoc__items td input{border-bottom-color:transparent;text-align:right;font-variant-numeric:tabular-nums}
.bdoc__items td:first-child input{text-align:left;font-variant-numeric:normal}
.bdoc__items td input:focus{border-bottom-color:var(--bd-accent,var(--bd-rule))}
.bitem__amt{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--bd-ink)}
.bitem__x{width:22px;text-align:center}
.bitem__del{border:0;background:none;color:var(--bd-faint);font-size:15px;line-height:1;cursor:pointer;padding:2px 4px;transition:color .15s}
.bitem__del:hover{color:#e5484d}
.bdoc__additem{margin-top:8px;border:1px dashed var(--bd-line-2);background:none;color:var(--bd-mut);border-radius:8px;
  padding:6px 10px;font-family:var(--font-display);font-size:9.5px;letter-spacing:.02em;cursor:pointer;transition:.15s}
.bdoc__additem:hover{border-color:var(--bd-rule);color:var(--bd-ink)}

.bdoc__totals{margin:16px 0 2px;margin-left:auto;width:min(292px,100%);display:flex;flex-direction:column;gap:5px}
.bdoc__trow{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px}
.bdoc__trow span{color:var(--bd-mut);display:flex;align-items:center;gap:4px}
.bdoc__trow input{width:38px!important;text-align:center;border:1px solid var(--bd-line-2);border-radius:5px;padding:1px 3px;font-size:10px}
.bdoc__trow b{font-variant-numeric:tabular-nums}
.bdoc__trow--total{border-top:1.5px solid var(--bd-rule);padding-top:7px;margin-top:2px;font-family:var(--font-display);font-size:12.5px}
.bdoc__trow--total span{color:var(--bd-ink)}
.bdoc__trow--total b{color:var(--bd-accent,var(--bd-ink))}
.bdoc__sign{margin-top:18px;padding-top:11px;border-top:1px solid var(--bd-line);font-size:9px;color:var(--bd-faint);line-height:1.6}

/* impresión: solo la hoja, en A4, respetando el acabado elegido */
@media print{
  body.is-printing-budget *{visibility:hidden!important}
  body.is-printing-budget #view-presupuestos,body.is-printing-budget #view-presupuestos *{visibility:visible!important}
  body.is-printing-budget .bud__list,body.is-printing-budget .bud__list *,
  body.is-printing-budget .bdoc-bar,body.is-printing-budget .bdoc-bar *,
  body.is-printing-budget .bdoc__additem,body.is-printing-budget .bitem__x,body.is-printing-budget .bitem__x *,
  body.is-printing-budget .bdoc__clientpick{visibility:hidden!important;display:none!important}
  body.is-printing-budget .app,body.is-printing-budget .main,body.is-printing-budget #view-presupuestos,
  body.is-printing-budget .bud,body.is-printing-budget .bud__stage{overflow:visible!important;height:auto!important;display:block!important}
  body.is-printing-budget #view-presupuestos{position:absolute;left:0;top:0;width:100%;padding:0;margin:0}
  body.is-printing-budget .bud__stage{padding:0}
  body.is-printing-budget .bdoc-wrap{margin:0;max-width:none}
  body.is-printing-budget .bdoc-wrap::before{display:none}
  body.is-printing-budget .bdoc{max-width:none;width:100%;box-shadow:none;border-radius:0;margin:0;padding:14mm 16mm}
  body.is-printing-budget .bdoc input,body.is-printing-budget .bdoc textarea{border-color:transparent!important;background:none!important}
  @page{size:A4;margin:0}
}

/* ===================================================================
   Equipo — conexiones + chat
   =================================================================== */
.team{display:grid;grid-template-columns:284px 1fr;gap:16px;height:100%;min-height:0}
.team__side{display:flex;flex-direction:column;gap:14px;padding:14px;overflow-y:auto;border-radius:16px}

.team__add{border:1px solid var(--line);border-radius:11px;background:var(--tint-1);overflow:hidden}
.team__addsum{list-style:none;cursor:pointer;padding:10px 12px;font-family:var(--font-display);font-size:11px;
  letter-spacing:.02em;color:var(--muted);display:flex;align-items:center;justify-content:space-between}
.team__addsum::-webkit-details-marker{display:none}
.team__addsum::after{content:"▾";font-size:10px;color:var(--faint);transition:transform .2s}
.team__add[open] .team__addsum::after{transform:rotate(180deg)}
.team__addsum:hover{color:var(--ink)}
.team__addbody{display:flex;flex-direction:column;gap:8px;padding:2px 12px 12px}
.team__addrow{display:flex;gap:8px}
.team__addrow input{flex:1;min-width:0;background:var(--tint-3);border:1px solid var(--line-2);border-radius:9px;
  color:var(--ink);font:inherit;font-size:12.5px;padding:8px 10px}
.team__addrow input:focus{outline:none;border-color:var(--muted);background:var(--tint-4)}
.team__note{font-size:11px;color:#e8b877;line-height:1.5}

.team__grp{display:flex;flex-direction:column;gap:5px}
.team__grp h4{font-family:var(--font-display);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:2px}
.team__req{display:flex;flex-direction:column;gap:7px;padding:10px;border-radius:11px;border:1px solid var(--line);background:var(--tint-1)}
.team__reqm{font-size:12px;color:var(--ink);word-break:break-all}
.team__reqacts{display:flex;gap:6px}

.team__peerrow{display:flex;align-items:center;gap:2px;border-radius:11px;border:1px solid transparent;transition:background .18s,border-color .18s}
.team__peerrow:hover{background:var(--tint-3)}
.team__peerrow.is-on{background:var(--tint-4);border-color:var(--line-2)}
.team__peer{flex:1;min-width:0;display:flex;align-items:center;gap:10px;text-align:left;padding:9px 10px;
  border:0;background:none;color:inherit;cursor:pointer}
.team__peerm{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.team__peerdel{flex:none;width:28px;height:28px;margin-right:5px;border:0;background:none;color:var(--faint);
  display:grid;place-items:center;border-radius:8px;cursor:pointer;opacity:.45;transition:opacity .15s,color .15s,background .15s}
.team__peerrow:hover .team__peerdel{opacity:1}
.team__peerdel:hover{color:#ff6b6b;background:rgba(255,107,107,.12)}
.team__peerdel svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.team__av{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;overflow:hidden;
  font-family:var(--font-display);font-size:11px;background:var(--accent);color:var(--accent-ink)}
.team__av img{width:100%;height:100%;object-fit:cover}
.team__av--sm{width:18px;height:18px;font-size:8.5px}
.team__av--all{background:var(--tint-5);color:var(--ink)}
.team__av--all svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

.tresp{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 14px;border-bottom:1px solid var(--line);flex:none}
.tresp__k{font-family:var(--font-display);font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.tresp__chip{font-size:10.5px;padding:3px 8px;border-radius:7px;border:1px solid var(--line-2);background:var(--tint-2);color:var(--muted);white-space:nowrap}
.tresp__chip--proj{color:var(--ink);border-color:var(--accent)}
.tresp__more{font-size:10px;color:var(--faint)}

.team__main{display:flex;flex-direction:column;min-width:0;border-radius:16px;overflow:hidden}
.team__chathead{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);flex:none}
.team__chid{min-width:0;display:flex;flex-direction:column;gap:1px;margin-right:auto}
.team__chid b{font-family:var(--font-display);font-weight:500;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.team__chid span{font-size:10.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.team__chibtn{width:28px;height:28px;flex:none}
.team__chibtn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

.team__msgs{flex:1;min-height:0;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}
.team__empty{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--faint);font-size:12.5px;padding:30px}
.tmsg{max-width:76%;align-self:flex-start;display:flex;flex-direction:column;gap:3px;
  padding:8px 11px;border-radius:14px;border:1px solid var(--line);background:var(--tint-2)}
.tmsg--me{align-self:flex-end;background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.tmsg__whorow{display:flex;align-items:center;gap:6px;margin-bottom:2px}
.tmsg__who{font-family:var(--font-display);font-size:9px;letter-spacing:.06em;text-transform:uppercase;opacity:.7}
.tmsg__b{font-size:12.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word}
.tmsg__t{font-size:9px;letter-spacing:.04em;opacity:.55;align-self:flex-end}
.tmsg--card{padding:8px}
/* la ficha de cliente es siempre una tarjeta blanca, da igual el lado de la burbuja */
.tcard{display:flex;flex-direction:column;gap:3px;background:#ffffff;color:#16181c;border:1px solid #e3e5ea;
  border-radius:11px;padding:11px 12px;min-width:196px}
.tmsg--me .tcard{background:#ffffff;color:#16181c}
.tcard__k{font-family:var(--font-display);font-size:8px;letter-spacing:.16em;text-transform:uppercase;color:#8a9099}
.tcard__name{font-family:var(--font-display);font-weight:500;font-size:13px;color:#16181c}
.tcard__meta{font-size:11px;color:#5b616b}
.tcard__row{font-size:11px;color:#5b616b;font-variant-numeric:tabular-nums}
.tcard .btn{margin-top:6px}
.tcard__sent{font-size:9.5px;color:#9aa1ac;margin-top:4px}
.tcard__ok{font-size:9.5px;font-weight:600;color:#2f9e6b;margin-top:5px}
.tcard__pend{font-size:9.5px;color:#b98a3c;margin-top:5px}
.tment__h{font-family:var(--font-display);font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);padding:6px 10px 3px}

.team__composewrap{position:relative;flex:none}
.team__mentions{position:absolute;left:14px;right:14px;bottom:100%;margin-bottom:6px;z-index:5;
  background:var(--opaque);border:1px solid var(--line-2);border-radius:11px;padding:5px;
  display:flex;flex-direction:column;gap:2px;max-height:210px;overflow-y:auto;box-shadow:0 -12px 40px rgba(0,0,0,.4)}
.team__mentions[hidden]{display:none}
.tment{display:flex;flex-direction:column;gap:1px;text-align:left;padding:8px 10px;border:0;border-radius:8px;
  background:none;color:var(--ink);cursor:pointer}
.tment:hover{background:var(--tint-4)}
.tment b{font-size:12px;font-weight:500}
.tment span{font-size:10.5px;color:var(--faint)}
.team__compose{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line)}
.team__compose input{flex:1;min-width:0;background:var(--tint-3);border:1px solid var(--line-2);border-radius:10px;
  color:var(--ink);font:inherit;font-size:13px;padding:9px 12px}
.team__compose input:focus{outline:none;border-color:var(--muted);background:var(--tint-4)}
.team__tabs{margin-bottom:2px}
.team__tabs .segmented__btn{flex:1}

/* panel de Videocalls */
.vcall{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:40px 30px}
.vcall__ic{width:46px;height:46px;color:var(--faint)}
.vcall__ic svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.vcall .team__av,.vcall__av{width:64px;height:64px;font-size:24px;margin-bottom:4px}
.vcall h3{font-family:var(--font-display);font-weight:500;font-size:16px}
.vcall p{font-size:12.5px;color:var(--muted);line-height:1.6;max-width:340px}
.vcall__call{margin-top:10px;gap:8px}
.vcall__call svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* ventana flotante de llamada */
.callwin{position:fixed;right:26px;bottom:26px;width:380px;max-width:92vw;z-index:200;border-radius:16px;overflow:hidden;
  display:flex;flex-direction:column;box-shadow:0 30px 80px -20px rgba(0,0,0,.7)}
.callwin--max{left:0!important;top:0!important;right:0!important;bottom:0!important;width:auto!important;max-width:none;
  height:100vh;border-radius:0;z-index:250}
.callwin__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 13px;
  border-bottom:1px solid var(--line);cursor:grab;background:var(--tint-1);flex:none}
.callwin--max .callwin__head{cursor:default}
.callwin__head:active{cursor:grabbing}
.callwin__peer{font-family:var(--font-display);font-weight:500;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.callwin__st{font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums;flex:none}
.callwin__stage{position:relative;aspect-ratio:4/3;background:#0a0b0d}
.callwin--max .callwin__stage{flex:1;aspect-ratio:auto;min-height:0}
.callwin__stage #callRemote{width:100%;height:100%;object-fit:cover;background:#0a0b0d}
.callwin--max .callwin__stage #callRemote{object-fit:contain}
.callwin__stage #callLocal{position:absolute;right:10px;bottom:10px;width:33%;max-width:120px;aspect-ratio:4/3;
  object-fit:cover;border-radius:9px;border:1px solid rgba(255,255,255,.25);background:#111;transform:scaleX(-1)}
.callwin--max .callwin__stage #callLocal{max-width:220px;width:22%}
/* la cámara propia se ve en espejo (natural); la pantalla compartida NO */
.callwin.is-sharing .callwin__stage #callLocal{transform:none}
.callwin__wait{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.8);font-size:13px;font-family:var(--font-display);letter-spacing:.04em}
.callwin__bar{display:flex;gap:8px;justify-content:center;padding:12px;background:var(--tint-1);border-top:1px solid var(--line);flex:none;flex-wrap:wrap}

.callbtn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line-2);background:var(--tint-3);color:var(--ink);
  display:grid;place-items:center;cursor:pointer;transition:background .15s,transform .1s}
.callbtn:hover{background:var(--tint-5)}
.callbtn:active{transform:scale(.94)}
.callbtn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.callbtn.is-off{background:var(--solid);color:var(--solid-ink);border-color:var(--solid)}
.callbtn.is-on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.callbtn--end{background:#e5484d;border-color:#e5484d;color:#fff}
.callbtn--end:hover{background:#d33f44}
.callbtn--end svg{fill:currentColor;stroke:none;transform:rotate(133deg)}
.callbtn--ok{background:#3fbf72;border-color:#3fbf72;color:#fff}
.callbtn--ok:hover{background:#37ab66}

.callring{position:fixed;inset:0;z-index:220;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5);backdrop-filter:blur(4px)}
.callring__card{width:300px;max-width:90vw;padding:26px 24px;border-radius:20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}
.callring__av{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-size:24px;
  background:var(--accent);color:var(--accent-ink);margin-bottom:6px}
.callring__who{font-family:var(--font-display);font-weight:500;font-size:16px}
.callring__sub{font-size:12px;color:var(--muted)}
.callring__acts{display:flex;gap:22px;margin-top:14px}
.callring__acts .callbtn{width:52px;height:52px}
.callring__acts .callbtn svg{width:22px;height:22px}

@media(max-width:820px){.team{grid-template-columns:1fr;height:auto}.team__main{min-height:60vh}
  .callwin{right:10px;left:10px;bottom:10px;width:auto}}

/* ===================================================================
   Recorte de foto de perfil
   =================================================================== */
.avcrop{position:fixed;inset:0;z-index:240;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.55);backdrop-filter:blur(4px)}
.avcrop__card{width:320px;max-width:92vw;padding:22px;border-radius:20px;display:flex;flex-direction:column;align-items:center;gap:14px}
.avcrop__h{font-family:var(--font-display);font-weight:500;font-size:14px;align-self:flex-start}
.avcrop__view{position:relative;overflow:hidden;border-radius:14px;background:#0a0b0d;touch-action:none;cursor:grab}
.avcrop__view:active{cursor:grabbing}
.avcrop__img{position:absolute;user-select:none;-webkit-user-drag:none;max-width:none}
.avcrop__ring{position:absolute;inset:0;border-radius:50%;pointer-events:none;
  box-shadow:0 0 0 9999px rgba(0,0,0,.5);outline:2px solid rgba(255,255,255,.85);outline-offset:-2px}
.avcrop__zoom{display:flex;align-items:center;gap:10px;width:100%;font-family:var(--font-display);font-size:10px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.avcrop__zoom input[type=range]{flex:1;accent-color:var(--accent)}
.avcrop__hint{font-size:11px;color:var(--muted);text-align:center;line-height:1.5}
.avcrop__acts{display:flex;gap:10px;width:100%}
.avcrop__acts .btn{flex:1}

/* ===================================================================
   Portal de clientes (vista del cliente + editor del propietario)
   =================================================================== */
/* en una cuenta de cliente no existe la barra de herramientas */
html[data-mode="client"] #lockToggle,
html[data-mode="client"] #roPill{display:none!important}

.portal{display:flex;flex-direction:column;gap:16px;max-width:860px;margin:0 auto;width:100%}
.pcard{border:1px solid var(--line);border-radius:20px;background:var(--glass);padding:22px 22px 20px}
.pcard__h{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--faint);margin-bottom:16px}
.pcard__empty{font-size:13px;color:var(--muted);line-height:1.6;text-align:center;padding:14px 6px}

.phero{padding:28px 26px 24px;background:linear-gradient(180deg,var(--glass-2),var(--glass))}
.phero__k{font-family:var(--font-display);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
.phero__t{font-family:var(--font-display);font-weight:600;font-size:26px;letter-spacing:-.01em;margin:8px 0 6px}
.phero__p{font-size:13.5px;color:var(--muted);line-height:1.65;max-width:620px;white-space:pre-line}
.phero__prog{display:flex;align-items:center;gap:14px;margin-top:20px}
.phero__prog span{font-family:var(--font-display);font-size:11px;color:var(--muted);white-space:nowrap}

.pbar{flex:1;height:5px;border-radius:4px;background:var(--tint-5);overflow:hidden}
.pbar i{display:block;height:100%;border-radius:4px;background:var(--accent);transition:width .5s var(--ease)}
.pbar--lg{height:8px}

.psvcs,.pcls,.pupds,.plinks{display:flex;flex-direction:column;gap:12px}
.psvc,.pcl{border:1px solid var(--line);border-radius:14px;background:var(--tint-1);padding:16px 16px 14px}
.psvc__top,.pcl__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.psvc__top b,.pcl__top b{font-family:var(--font-display);font-weight:500;font-size:14px}
.pcl__top span{font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}
.psvc__pct{font-size:11px;color:var(--faint);margin-top:6px}
.pstat{flex:none;font-family:var(--font-display);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;
  padding:4px 9px;border-radius:7px;border:1px solid var(--line-2);color:var(--muted)}
.pstat--progress{border-color:var(--accent);color:var(--accent)}
.pstat--done{border-color:rgba(120,220,150,.5);color:#8fe3a0;background:rgba(120,220,150,.1)}
.pstat--paused{border-color:rgba(232,184,119,.5);color:#e8b877}
.psteps{list-style:none;display:flex;flex-direction:column;gap:9px;margin-top:14px}
.psteps li,.pchk{display:flex;align-items:flex-start;gap:11px;font-size:13px;line-height:1.45;color:var(--muted)}
.psteps li.is-done,.pchk.is-done{color:var(--faint)}
.psteps li.is-done span:last-child,.pchk.is-done>span:last-child{text-decoration:line-through}
.pdot{flex:none;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--line-2);margin-top:1px;position:relative}
.is-done>.pdot{background:var(--accent);border-color:var(--accent)}
.is-done>.pdot::after{content:"";position:absolute;left:4.5px;top:2px;width:4px;height:8px;border:solid var(--accent-ink);
  border-width:0 2px 2px 0;transform:rotate(45deg)}
.psvc__note{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted);line-height:1.6;white-space:pre-line}
/* documentos dentro de cada proyecto */
.psvc__docs{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.psvc__docs .plinks{gap:8px}
.psvc__docs .plink{padding:10px 13px}

.pchk{cursor:pointer;padding:6px 0}
.pchk--ro{cursor:default}
.pchk input{flex:none;width:18px;height:18px;margin-top:1px;accent-color:var(--accent);cursor:pointer}
.pcl__hint{margin-top:10px;font-size:11px;color:var(--faint)}

.pupd{padding:2px 0 14px 16px;border-left:2px solid var(--line-2);position:relative}
.pupd::before{content:"";position:absolute;left:-5px;top:4px;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.pupd__d{font-size:10.5px;color:var(--faint);letter-spacing:.04em}
.pupd b{display:block;font-family:var(--font-display);font-weight:500;font-size:13.5px;margin:3px 0}
.pupd p{font-size:12.5px;color:var(--muted);line-height:1.6;white-space:pre-line}
.plink{display:flex;flex-direction:column;gap:2px;padding:13px 15px;border-radius:12px;border:1px solid var(--line);
  background:var(--tint-1);transition:border-color .15s,background .15s}
.plink:hover{border-color:var(--accent);background:var(--glass-2)}
.plink b{font-size:13px;font-weight:500}
.plink span{font-size:11.5px;color:var(--faint)}

.pcard__n{margin-left:8px;font-size:10.5px;letter-spacing:0;color:var(--faint);font-variant-numeric:tabular-nums}

/* roadmap del cliente: línea de fases */
.prm{display:flex;flex-direction:column}
.prm__it{display:flex;gap:14px;position:relative;padding-bottom:20px}
.prm__it:last-child{padding-bottom:0}
.prm__it::before{content:"";position:absolute;left:6px;top:16px;bottom:-2px;width:2px;background:var(--line-2)}
.prm__it:last-child::before{display:none}
.prm__dot{flex:none;width:14px;height:14px;border-radius:50%;border:2px solid var(--line-2);background:var(--bg);margin-top:3px;position:relative;z-index:1}
.prm__it.is-progress .prm__dot{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent)}
.prm__it.is-done .prm__dot{background:var(--accent);border-color:var(--accent)}
.prm__b{flex:1;min-width:0}
.prm__top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.prm__top b{font-family:var(--font-display);font-weight:500;font-size:13.5px}
.prm__when{font-size:11.5px;color:var(--faint);margin-top:2px}
.prm__b p{font-size:12.5px;color:var(--muted);line-height:1.6;margin-top:6px;white-space:pre-line}

/* contenido del cliente: pipeline de solo lectura */
.pboard{height:auto}
.pboard .col{background:var(--tint-1)}
.pboard .col__list{overflow:visible}
.pboard .deal{cursor:default}
.deal__note{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.45}

/* comunicación del cliente */
.ccchat__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.ccchat{display:flex;flex-direction:column;height:min(460px,64vh);border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--tint-1)}
.pmts{display:flex;flex-direction:column;gap:10px}
.pmt{display:flex;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--tint-1)}
.pmt.is-past{opacity:.55}
.pmt__d{flex:none;width:64px;display:flex;flex-direction:column;gap:2px;text-align:center;padding-right:12px;border-right:1px solid var(--line)}
.pmt__d b{font-family:var(--font-display);font-weight:500;font-size:13px}
.pmt__d span{font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}
.pmt__b{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.pmt__b b{font-size:13px;font-weight:500}
.pmt__b p{font-size:12px;color:var(--muted);line-height:1.5}

/* editor del propietario */
.cli{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}
.cli__list{display:flex;flex-direction:column;gap:6px}
.cli__note{font-size:11.5px;color:var(--faint);line-height:1.55;margin-bottom:6px}
.cli__row{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:12px;border:1px solid var(--line);
  background:var(--glass);color:inherit;cursor:pointer;text-align:left;transition:border-color .15s,background .15s}
.cli__row:hover{border-color:var(--line-2)}
.cli__row.is-on{border-color:var(--accent);background:var(--glass-2)}
.cli__mail{flex:1;min-width:0;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cli__row em{font-style:normal;font-size:10px;color:var(--faint)}
.cli__ed{display:flex;flex-direction:column;gap:14px;min-width:0}
.cli__head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--glass)}
.cli__who{font-family:var(--font-display);font-weight:500;font-size:14px;word-break:break-all}
.cli__st{font-size:11px;color:var(--faint);margin-top:2px}
.cli__acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cli__sec{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--glass)}
.cli__sec>.btn{align-self:flex-start}
/* editor del cliente: secciones plegables con icono y contador */
details.cli__sec{padding:0;gap:0;overflow:hidden}
.cli__sum{list-style:none;display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;user-select:none}
.cli__sum::-webkit-details-marker{display:none}
.cli__sum:hover{background:var(--tint-2)}
.cli__emo{flex:none;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;
  background:var(--tint-4);border:1px solid var(--line-2);color:var(--ink)}
.cli__emo svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cli__t{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.cli__t b{font-family:var(--font-display);font-weight:500;font-size:14px}
.cli__t em{font-style:normal;font-size:11px;color:var(--faint)}
.cli__n{flex:none;min-width:24px;padding:2px 8px;border-radius:999px;text-align:center;font-size:11px;font-variant-numeric:tabular-nums;
  border:1px solid var(--line-2);color:var(--muted)}
.cli__sum i{flex:none;font-style:normal;font-size:12px;color:var(--faint);transition:transform .2s}
details.cli__sec[open] .cli__sum i{transform:rotate(180deg)}
details.cli__sec[open] .cli__sum{border-bottom:1px solid var(--line)}
.cli__body{display:flex;flex-direction:column;gap:10px;padding:14px 16px 16px}
.cli__body>.btn{align-self:flex-start}
.cli__note2{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--faint);padding:2px 4px 8px}
.cli__note2 svg{flex:none;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
/* editor del cliente v2: pestañas + listas compactas */
.cli__tabs{display:flex;flex-wrap:wrap;gap:6px;padding:2px 2px 8px}
.cli__tab{flex:none;display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:11px;border:1px solid var(--line);
  background:var(--tint-1);color:var(--muted);font-family:var(--font-display);font-size:11.5px;cursor:pointer;
  transition:background .15s,color .15s,border-color .15s}
.cli__tab svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cli__tab:hover{color:var(--ink);border-color:var(--line-2)}
.cli__tab.is-on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.cli__tab em{font-style:normal;font-size:10px;min-width:20px;padding:1px 6px;border-radius:999px;text-align:center;
  background:var(--tint-5);font-variant-numeric:tabular-nums}
.cli__tab.is-on em{background:rgba(0,0,0,.16)}
.cli__pane{display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--glass)}
.cli__pane>.btn{align-self:flex-start}
.cli__hint{font-size:12px;color:var(--faint);line-height:1.5;margin-bottom:2px}
.ltools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ltools__q{flex:1 1 100%}
.ltools__add{border-style:dashed}
.lf .segmented__btn{display:inline-flex;align-items:center;gap:6px;padding:6px 11px}
.lf .segmented__btn em{font-style:normal;font-size:9.5px;opacity:.7;font-variant-numeric:tabular-nums}
.llist{display:flex;flex-direction:column;gap:6px}
.lrow{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--tint-1);
  cursor:pointer;transition:border-color .15s,background .15s}
.lrow:hover,.lrow:focus-visible{border-color:var(--line-2);background:var(--tint-3)}
.lrow__b{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.lrow__b b{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lrow__b em{font-style:normal;font-size:11px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lrow__sel{flex:none;background:var(--tint-3);border:1px solid var(--line-2);border-radius:8px;color:var(--ink);font:inherit;font-size:11.5px;padding:6px 8px;cursor:pointer}
.lrow__sel option{background:var(--bg);color:var(--ink)}
.lrow__go{flex:none;font-style:normal;font-size:18px;color:var(--faint)}
.lmore{align-self:center;margin-top:6px}
.lempty{font-size:12.5px;color:var(--faint);padding:14px 4px;text-align:center}
/* listas del cliente escalables (contenido, informes…) */
.cvbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.cvq{flex:1 1 180px;min-width:0;padding:9px 14px;border-radius:999px;border:1px solid var(--line-2);background:var(--tint-3);color:var(--ink);font:inherit;font-size:13px}
.cvq:focus{outline:none;border-color:var(--muted);background:var(--tint-4)}
.cvtabs .segmented__btn{display:inline-flex;align-items:center;gap:7px}
.cvtabs em{font-style:normal;font-size:10px;padding:1px 7px;border-radius:999px;background:var(--tint-5);font-variant-numeric:tabular-nums}
.cvtabs .is-on em{background:rgba(0,0,0,.16)}
.cvlist,.cvgrp{display:flex;flex-direction:column;gap:6px}
.cvgrp{margin-top:14px}
.cvgrp:first-child{margin-top:2px}
.cvgrp__h{font-family:var(--font-display);font-size:9.5px;letter-spacing:.16em;text-transform:capitalize;color:var(--faint);padding:2px 2px 4px}
.cvrow{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid var(--line);border-radius:12px;background:var(--tint-1)}
.cvrow__b{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cvrow__b b{font-size:13px;font-weight:500}
.cvrow__b em{font-style:normal;font-size:11px;color:var(--faint)}
.cvrow__b p{font-size:11.5px;color:var(--muted);line-height:1.5;margin-top:3px}
.cvmore{align-self:center;margin:14px auto 2px;display:flex}
.cvsum{display:flex;gap:10px}
.cvsum div{flex:1;text-align:center;padding:14px 8px;border:1px solid var(--line);border-radius:12px;background:var(--tint-1)}
.cvsum b{display:block;font-family:var(--font-display);font-size:22px;font-weight:600}
.cvsum span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
/* pieza con idea y bullet points (desplegable) */
details.cvrow--d{display:block;padding:0}
details.cvrow--d>summary{list-style:none;display:flex;align-items:center;gap:12px;padding:11px 14px;cursor:pointer}
details.cvrow--d>summary::-webkit-details-marker{display:none}
details.cvrow--d>summary i{flex:none;font-style:normal;font-size:12px;color:var(--faint);transition:transform .2s}
details.cvrow--d[open]>summary i{transform:rotate(180deg)}
details.cvrow--d[open]>summary{border-bottom:1px solid var(--line)}
.cvrow__x{padding:12px 14px 14px}
.cvx__k{font-family:var(--font-display);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin:2px 0 6px}
.cvrow__x p{font-size:12.5px;color:var(--muted);line-height:1.65;white-space:pre-line;margin-bottom:12px}
.cvrow__x ul{list-style:none;display:flex;flex-direction:column;gap:7px}
.cvrow__x li{position:relative;padding-left:16px;font-size:12.5px;color:var(--muted);line-height:1.55}
.cvrow__x li::before{content:"";position:absolute;left:2px;top:.6em;width:5px;height:5px;border-radius:50%;background:var(--accent)}
/* plataformas de cada pieza */
.cvpls{display:flex;flex-wrap:wrap;gap:5px;margin:3px 0 1px}
.cvpl{font-family:var(--font-display);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;
  border:1px solid var(--line-2);color:var(--muted);background:var(--tint-2)}
.cvpl--o{border-color:var(--accent);color:var(--accent)}
/* pieza de contenido clicable + ficha */
.cvrow--btn{cursor:pointer;transition:border-color .15s,background .15s}
.cvrow--btn:hover,.cvrow--btn:focus-visible{border-color:var(--accent);background:var(--tint-3)}
.cvrow__go{flex:none;font-style:normal;font-size:20px;color:var(--faint)}
.pdet{gap:14px}
.pdet__top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.pdet__d{font-size:11.5px;color:var(--faint)}
.pdet__t{font-family:var(--font-display);font-weight:600;font-size:21px;line-height:1.25}
.pdet__p{font-size:13px;color:var(--muted);line-height:1.7;white-space:pre-line}
.pdet__p--muted{color:var(--faint)}
.pdet__ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.pdet__ul li{position:relative;padding-left:17px;font-size:13px;color:var(--muted);line-height:1.6}
.pdet__ul li::before{content:"";position:absolute;left:3px;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.pdet__go{align-self:flex-start;margin-top:6px}
/* calendario de reuniones del cliente */
.pmt2{display:grid;grid-template-columns:minmax(0,460px) minmax(0,1fr);gap:16px;align-items:start}
.pmt2__r{display:flex;flex-direction:column;gap:16px;min-width:0}
.pcal__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.pcal__title{font-family:var(--font-display);font-weight:500;font-size:16px;text-transform:capitalize}
.pcal__nav{display:flex;gap:6px;align-items:center}
.pcal__wds{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px}
.pcal__wds span{text-align:center;font-family:var(--font-display);font-size:9px;letter-spacing:.14em;color:var(--faint)}
.pcal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.pcal__d{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:11px;border:1px solid transparent;
  background:var(--tint-1);color:var(--muted);font:inherit;font-size:12.5px;cursor:default;position:relative}
.pcal__d--out{background:none}
/* día con reunión: relleno de color y brillo, imposible no verlo */
.pcal__d.has{cursor:pointer;background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600;
  box-shadow:0 8px 20px -8px var(--accent);transition:transform .15s,box-shadow .15s}
.pcal__d.has:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 12px 26px -8px var(--accent)}
.pcal__d.has.is-past{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);border:1.5px solid color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:none}
.pcal__d.is-next{animation:calnext 2s ease-in-out infinite}
@keyframes calnext{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 50%,transparent),0 8px 20px -8px var(--accent)}
  50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 0%,transparent),0 8px 24px -6px var(--accent)}}
.pcal__d.is-today:not(.has) span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--accent);color:var(--ink);font-weight:600}
.pcal__d.is-today.has span{text-decoration:underline;text-underline-offset:3px}
.pcal__d.is-sel{outline:2px solid var(--ink);outline-offset:2px}
.pcal__t{font-style:normal;font-family:var(--font-body);font-size:9px;font-weight:500;line-height:1;opacity:.9;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px}
.pcal__legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;font-size:11px;color:var(--faint)}
.pcal__legend span{display:inline-flex;align-items:center;gap:7px}
.lg{width:12px;height:12px;border-radius:4px;display:inline-block}
.lg--next{background:var(--accent)}
.lg--past{border:1.5px solid color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent)}
.lg--today{border-radius:50%;border:2px solid var(--accent)}
.pcal__hint{margin-top:14px;font-size:12px;color:var(--faint);text-align:center}
.pcal__sel{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.pcal__selh{font-family:var(--font-display);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:10px}
/* ===== Inicio del cliente: KPIs + feed ===== */
.pkpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.pkpi{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--glass);color:inherit;
  text-align:left;cursor:pointer;transition:border-color .15s,transform .15s,background .15s}
button.pkpi:hover{border-color:var(--accent);background:var(--glass-2);transform:translateY(-1px)}
.pkpi__ic{flex:none;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--tint-4);border:1px solid var(--line-2)}
.pkpi__ic svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.pkpi__b{display:flex;flex-direction:column;gap:1px;min-width:0}
.pkpi__b b{font-family:var(--font-display);font-weight:600;font-size:22px;line-height:1.1}
.pkpi__b span{font-size:11.5px;color:var(--muted)}
.pkpi__b em{font-style:normal;font-size:10.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pfeed{display:flex;flex-direction:column}
.pfeed__day{font-family:var(--font-display);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin:16px 0 8px}
.pfeed__day:first-child{margin-top:0}
.pfeed__it{display:flex;align-items:flex-start;gap:12px;padding:8px 0;position:relative}
.pfeed__it:not(:last-child)::after{content:"";position:absolute;left:14px;top:38px;bottom:-6px;width:1px;background:var(--line)}
.pfeed__ic{flex:none;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:var(--tint-4);border:1px solid var(--line-2);position:relative;z-index:1}
.pfeed__ic svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pfeed__tx{font-size:13px;line-height:1.5;color:var(--ink);padding-top:4px}
.pfeed__it--check .pfeed__ic{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}

/* ===== Roadmap visual ===== */
.rmhero{display:flex;align-items:center;gap:26px;flex-wrap:wrap;background:linear-gradient(180deg,var(--glass-2),var(--glass))}
.rmhero__l{display:flex;flex-direction:column;gap:2px}
.rmhero__pct{font-family:var(--font-display);font-weight:600;font-size:54px;line-height:1;letter-spacing:-.02em}
.rmhero__pct small{font-size:24px;color:var(--muted);margin-left:2px}
.rmhero__l span{font-size:11.5px;color:var(--muted)}
.rmhero__r{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:12px}
.rmhero__meta{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.rmhero__meta b{color:var(--ink);font-weight:500}
.rmj-wrap{overflow-x:auto;padding:6px 2px 10px;margin:0 -2px}
.rmj{display:flex;min-width:100%;width:max-content}
.rmj__n{position:relative;flex:1 0 148px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:0 8px}
.rmj__n::before{content:"";position:absolute;top:19px;right:50%;width:100%;height:3px;border-radius:2px;background:var(--line-2)}
.rmj__n:first-child::before{display:none}
.rmj__n.is-done::before,.rmj__n.is-progress::before{background:var(--accent)}
.rmj__dot{position:relative;z-index:1;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  background:var(--bg);border:2px dashed var(--line-2);color:var(--faint);font-family:var(--font-display);font-size:13px}
.rmj__dot b{font-weight:500}
.rmj__dot svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.rmj__n.is-done .rmj__dot{background:var(--accent);border:2px solid var(--accent);color:var(--accent-ink)}
.rmj__n.is-progress .rmj__dot{border:2px solid var(--accent);color:var(--accent);background:var(--bg);
  box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 20%,transparent),0 0 24px color-mix(in srgb,var(--accent) 45%,transparent);
  animation:rmglow 2.2s ease-in-out infinite}
.rmj__n.is-paused .rmj__dot{border-style:solid;border-color:#e8b877;color:#e8b877}
@keyframes rmglow{0%,100%{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 16%,transparent),0 0 16px color-mix(in srgb,var(--accent) 30%,transparent)}
  50%{box-shadow:0 0 0 9px color-mix(in srgb,var(--accent) 8%,transparent),0 0 30px color-mix(in srgb,var(--accent) 55%,transparent)}}
.rmj__t{margin-top:8px;font-family:var(--font-display);font-weight:500;font-size:12.5px;line-height:1.3}
.rmj__n.is-pending .rmj__t{color:var(--muted)}
.rmj__w{font-style:normal;font-size:11px;color:var(--faint)}
.rmj__here{margin-top:4px;font-family:var(--font-display);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;padding:3px 9px;
  border-radius:999px;background:var(--accent);color:var(--accent-ink)}
.rmnow{border-color:var(--accent);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 12%,transparent),var(--glass))}
.rmnow__k{font-family:var(--font-display);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.rmnow h3{font-family:var(--font-display);font-weight:600;font-size:22px;margin:6px 0 2px}
.rmnow__w{font-size:12.5px;color:var(--muted)}
.rmnow p{font-size:13px;color:var(--muted);line-height:1.65;margin-top:10px;white-space:pre-line;max-width:620px}
.rmd{display:flex;flex-direction:column;gap:8px}
.rmd__c{display:flex;gap:14px;padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:var(--tint-1)}
.rmd__c.is-done{opacity:.72}
.rmd__c.is-progress{border-color:var(--accent);background:var(--glass-2)}
.rmd__n{flex:none;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-family:var(--font-display);font-size:11px;background:var(--tint-4);color:var(--muted)}
.rmd__c.is-progress .rmd__n{background:var(--accent);color:var(--accent-ink)}
.rmd__b{flex:1;min-width:0}
.rmd__top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rmd__top b{font-family:var(--font-display);font-weight:500;font-size:13.5px}
.rmd__w{font-size:11.5px;color:var(--faint);margin-top:2px}
.rmd__b p{font-size:12.5px;color:var(--muted);line-height:1.6;margin-top:6px;white-space:pre-line}
.cli__sub2{font-family:var(--font-display);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin:10px 0 2px}
/* bullet points: un campo por punto */
.bl{display:flex;flex-direction:column;gap:6px}
.bl__row{display:flex;align-items:center;gap:9px}
.bl__dot{flex:none;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:4px}
.bl__in,.bl__add{flex:1;min-width:0;padding:10px 12px;border-radius:10px;border:1px solid var(--line-2);background:var(--tint-3);color:var(--ink);font:inherit;font-size:13px}
.bl__add{width:100%;margin-top:6px;border-style:dashed;background:transparent}
.bl__in:focus,.bl__add:focus{outline:none;border-color:var(--muted);background:var(--tint-4)}
.cled{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--tint-1)}
.cled__row{display:flex;align-items:center;gap:8px}
.cled__in,.cled__sel,.cled__ta{background:var(--tint-3);border:1px solid var(--line-2);border-radius:9px;color:var(--ink);
  font:inherit;font-size:12.5px;padding:8px 10px;min-width:0}
.cled__in{flex:1;width:100%}
.cled__in--b{font-weight:500}
.cled__in--date{flex:none;width:150px}
.cled__sel{flex:none}
.cled__sel option{background:var(--bg);color:var(--ink)}
.cled__ta{width:100%;min-height:60px;resize:vertical;line-height:1.5}
.cled__in:focus,.cled__sel:focus,.cled__ta:focus{outline:none;border-color:var(--muted);background:var(--tint-4)}
.cled__sub{font-family:var(--font-display);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.cled__chk{flex:none;width:17px;height:17px;accent-color:var(--accent)}
.cled__opt{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.cled__opt input{accent-color:var(--accent)}
.cled__by{flex:none;font-size:10px;color:#8fe3a0;white-space:nowrap}
.cled .btn--sm{align-self:flex-start}

/* feed de reuniones (calendario) */
.mcalx{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;height:100%;min-height:0}
.mcalx>.mcal{min-width:0;min-height:0}
.mfeed{display:flex;flex-direction:column;gap:6px;overflow-y:auto;min-height:0;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--glass)}
.mfeed__h{font-family:var(--font-display);font-weight:500;font-size:13.5px;margin-bottom:2px}
.mfeed__sec{font-family:var(--font-display);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin:12px 2px 4px}
.mfeed__empty{font-size:12px;color:var(--faint);padding:4px 2px}
.mfi{display:flex;align-items:center;gap:11px;width:100%;padding:10px 11px;border-radius:12px;border:1px solid var(--line);
  background:var(--tint-1);color:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
.mfi:hover{border-color:var(--line-2);background:var(--tint-4)}
.mfi.is-past{opacity:.85}
.mfi__d{flex:none;width:38px;display:flex;flex-direction:column;align-items:center;line-height:1.1;padding-right:10px;border-right:1px solid var(--line)}
.mfi__d b{font-family:var(--font-display);font-weight:500;font-size:15px}
.mfi__d em{font-style:normal;font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.mfi__b{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.mfi__b b{font-size:12.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mfi__b em{font-style:normal;font-size:10.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mfi__tag{flex:none;font-family:var(--font-display);font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;
  border-radius:7px;border:1px solid var(--line-2);color:var(--faint)}
.mfi__tag.is-ok{border-color:rgba(120,220,150,.5);color:#8fe3a0;background:rgba(120,220,150,.1)}
.mfi__tag.is-warn{border-color:rgba(232,184,119,.5);color:#e8b877}
/* aviso en lugar del botón "Hecho": todo se guarda solo */
.sheet__auto{font-size:11.5px;color:var(--faint);align-self:center;margin-left:auto}

/* ===================================================================
   Reuniones con acta · Informes · chat del cliente · llamada mejorada
   =================================================================== */
/* reuniones + acta */
.pmt{display:flex;flex-direction:column;gap:12px;padding:14px 16px}
.pmt__top{display:flex;gap:14px;align-items:flex-start}
.pacta{border-top:1px dashed var(--line-2);padding-top:11px;font-size:12px}
.pacta summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-family:var(--font-display);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.pacta summary::-webkit-details-marker{display:none}
.pacta summary:hover{color:var(--ink)}
.pacta summary i{font-style:normal;font-size:12px;color:var(--faint);transition:transform .2s}
.pacta[open] summary i{transform:rotate(180deg)}
.pacta__b{margin-top:10px;padding:12px 14px;border-radius:11px;background:var(--tint-2);border:1px solid var(--line);
  font-size:12.5px;color:var(--muted);line-height:1.7;white-space:pre-line}
.pacta--empty{display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-family:var(--font-display);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.pacta--empty em{font-style:normal;letter-spacing:.02em;text-transform:none;font-family:var(--font-body);font-size:11.5px}
.cled__ta--acta{min-height:110px}

/* informes */
.prep{display:flex;flex-direction:column;gap:12px}
.prep__it{display:flex;gap:14px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--tint-1)}
.prep__ic{flex:none;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--tint-4);color:var(--accent)}
.prep__ic svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.prep__b{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.prep__d{font-size:10.5px;color:var(--faint);letter-spacing:.04em}
.prep__b b{font-family:var(--font-display);font-weight:500;font-size:14px}
.prep__b p{font-size:12.5px;color:var(--muted);line-height:1.65;white-space:pre-line}
.prep__b .btn{margin-top:6px}

/* chat del cliente */
.ccwrap{padding:0;display:flex;flex-direction:column;height:min(640px,calc(100vh - 140px));overflow:hidden}
.cchead{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);flex:none}
.cchead__av{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);
  font-weight:600;font-size:15px;background:var(--accent);color:var(--accent-ink)}
.cchead__who{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.cchead__who b{font-family:var(--font-display);font-weight:500;font-size:14px}
.cchead__who span{font-size:11.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cchead__call{gap:8px}
.cchead__call svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ccbody{flex:1;min-height:0;overflow-y:auto;padding:18px 16px;display:flex;flex-direction:column;gap:3px;
  background:radial-gradient(120% 80% at 50% 0%,var(--tint-2),transparent 70%)}
.ccday{align-self:center;margin:12px 0 8px}
.ccday span{font-size:10.5px;letter-spacing:.06em;color:var(--faint);padding:4px 11px;border-radius:999px;background:var(--tint-3)}
.ccm{display:flex;flex-direction:column;align-items:flex-start;max-width:78%;align-self:flex-start}
.ccm--me{align-self:flex-end;align-items:flex-end}
.ccm.is-first{margin-top:9px}
.ccm__b{padding:9px 14px;border-radius:18px;background:var(--tint-4);border:1px solid var(--line);font-size:13.5px;line-height:1.5;
  white-space:pre-wrap;word-break:break-word}
.ccm:not(.is-first) .ccm__b{border-top-left-radius:6px}
.ccm:not(.is-last) .ccm__b{border-bottom-left-radius:6px}
.ccm--me .ccm__b{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.ccm--me:not(.is-first) .ccm__b{border-top-left-radius:18px;border-top-right-radius:6px}
.ccm--me:not(.is-last) .ccm__b{border-bottom-left-radius:18px;border-bottom-right-radius:6px}
.ccm__t{font-size:10px;color:var(--faint);margin:3px 6px 0}
.ccempty{margin:auto;max-width:320px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;padding:30px 20px}
.ccempty b{font-family:var(--font-display);font-weight:500;font-size:14px}
.ccempty span{font-size:12.5px;color:var(--muted);line-height:1.6}
.ccempty__ic{width:44px;height:44px;color:var(--faint);margin-bottom:6px}
.ccempty__ic svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ccform{display:flex;align-items:flex-end;gap:10px;padding:12px 14px;border-top:1px solid var(--line);flex:none;background:var(--tint-1)}
.ccform textarea{flex:1;min-width:0;resize:none;max-height:130px;padding:11px 16px;border-radius:22px;border:1px solid var(--line-2);
  background:var(--tint-3);color:var(--ink);font:inherit;font-size:13.5px;line-height:1.45}
.ccform textarea:focus{outline:none;border-color:var(--muted);background:var(--tint-4)}
.ccsend{flex:none;width:42px;height:42px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;
  background:var(--accent);color:var(--accent-ink);transition:transform .15s,filter .15s}
.ccsend:hover{filter:brightness(1.1);transform:scale(1.05)}
.ccsend svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

/* chat de Comunicación (propietario): burbujas y barra más cuidadas */
.tmsg{border-radius:18px 18px 18px 6px;padding:9px 13px}
.tmsg--me{border-radius:18px 18px 6px 18px}
.tmsg--card{border-radius:16px}
.team__compose{gap:10px;align-items:center;padding:12px 14px}
.team__compose input{border-radius:999px;padding:11px 18px}
.team__compose .btn{border-radius:999px;padding:10px 20px}

/* videollamada: ventana oscura, avatar, controles flotantes */
.callwin{--ink:#fff;--muted:rgba(255,255,255,.66);--faint:rgba(255,255,255,.44);--line:rgba(255,255,255,.10);--line-2:rgba(255,255,255,.16);
  --tint-1:rgba(255,255,255,.03);--tint-3:rgba(255,255,255,.08);--tint-5:rgba(255,255,255,.14);
  color:#fff;background:#0d0e11;border:1px solid rgba(255,255,255,.14);border-radius:22px;
  box-shadow:0 34px 90px -22px rgba(0,0,0,.85),0 0 0 1px rgba(0,0,0,.4)}
.callwin__head{gap:11px;padding:11px 14px;background:transparent;border-bottom:1px solid var(--line)}
.callwin__av{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);
  font-weight:600;font-size:13px;background:var(--accent);color:var(--accent-ink)}
.callwin__who{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.callwin__st{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}
.callwin__st::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:#e8b877}
.callwin.is-live .callwin__st::before{background:#3fbf72;box-shadow:0 0 8px #3fbf72}
.callwin__stage{position:relative;aspect-ratio:4/3;background:radial-gradient(120% 90% at 50% 0%,#1a1c22,#0a0b0d)}
.callwin__stage #callLocal{top:12px;right:12px;bottom:auto;border-radius:12px;box-shadow:0 8px 24px -8px rgba(0,0,0,.7)}
.callwin__wait{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  font-family:var(--font-display);font-size:12.5px;letter-spacing:.04em;color:rgba(255,255,255,.8);pointer-events:none}
.callwin__bigav{position:relative;width:86px;height:86px;border-radius:50%;display:grid;place-items:center;
  font-family:var(--font-display);font-weight:600;font-size:34px;background:var(--accent);color:var(--accent-ink)}
.callwin.is-ringing .callwin__bigav::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:2px solid var(--accent);
  animation:callpulse 1.7s ease-out infinite}
@keyframes callpulse{from{transform:scale(.86);opacity:.7}to{transform:scale(1.4);opacity:0}}
.callwin__bar{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:3;display:flex;gap:8px;flex-wrap:wrap;
  max-width:calc(100% - 20px);padding:8px 10px;border-radius:20px;background:rgba(10,11,14,.78);border:1px solid rgba(255,255,255,.14)}
.callbtn{width:40px;height:40px}
.calltxbtn{height:40px;padding:0 14px 0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.66);display:inline-flex;align-items:center;gap:7px;font-family:var(--font-display);font-size:11.5px;
  font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}
.calltxbtn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.calltxbtn:hover{color:#fff;border-color:rgba(255,255,255,.3)}
.calltxbtn.is-on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.callring__card{border-radius:24px;padding:30px 28px 26px;background:#0f1013;border:1px solid rgba(255,255,255,.14);color:#fff}
.callring__av{position:relative;width:78px;height:78px;font-size:30px}
.callring__av::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:2px solid var(--accent);animation:callpulse 1.7s ease-out infinite}
.callring__sub{color:rgba(255,255,255,.62)}
.callring__acts{gap:34px;margin-top:20px}
.callring__act{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:11px;color:rgba(255,255,255,.62)}

/* ===================================================================
   PANEL DEL CLIENTE · rediseño (cx*)
   =================================================================== */
html[data-mode="client"] .view{padding:26px 32px 44px}
html[data-mode="client"] .portal{max-width:1480px;gap:20px}
.cxcard{border:1px solid var(--line);border-radius:20px;background:var(--glass);padding:24px 26px;min-width:0}
.cxcard__h{font-family:var(--font-display);font-weight:500;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:16px}
/* título de cada sección en la vista completa apilada ("Ver como cliente") */
.cxpv{display:flex;flex-direction:column;gap:16px}
.cxpv + .cxpv{padding-top:28px;border-top:1px solid var(--line)}
.cxpv__h{font-family:var(--font-display);font-weight:600;font-size:22px;letter-spacing:-.01em}
.cxh__s{font-size:12.5px;color:var(--faint);margin-top:2px}
.cx2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
.cx2--rm{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.cx2--mt{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.cxcol{display:flex;flex-direction:column;gap:20px;min-width:0}
.cxbar{flex:1;height:8px;border-radius:6px;background:var(--tint-5);overflow:hidden}
.cxbar i{display:block;height:100%;border-radius:6px;background:var(--accent);transition:width .5s var(--ease)}
.cxbar--sm{height:5px}.cxbar--lg{height:12px}
.cxdot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent);display:inline-block}
.cxring{flex:none}
.cxring__t{fill:none;stroke:var(--tint-5)}
.cxring__v{fill:none;stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .6s var(--ease)}
.cxring__x{fill:var(--ink);font-family:var(--font-display);font-weight:600;font-size:20px}

/* --- Inicio --- */
.cxhero{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:20px}
.cxhero__l{padding:34px 36px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(160deg,var(--glass-2),var(--glass))}
.cxhero__k{font-family:var(--font-display);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
.cxhero__t{font-family:var(--font-display);font-weight:600;font-size:36px;letter-spacing:-.01em;margin:10px 0 8px}
.cxhero__p{font-size:15px;color:var(--muted);line-height:1.7;max-width:640px;white-space:pre-line}
.cxhero__prog{display:flex;align-items:center;gap:14px;margin-top:26px;max-width:640px}
.cxhero__prog b{font-family:var(--font-display);font-size:20px;min-width:52px;text-align:right}
.cxhero__now{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:13.5px;color:var(--muted)}
.cxhero__now b{color:var(--ink);font-weight:500}
.cxstep{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:30px 30px;border:1px solid var(--line-2);border-radius:24px;background:var(--glass)}
.cxstep.is-todo{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);box-shadow:0 22px 50px -24px var(--accent)}
.cxstep__k{font-family:var(--font-display);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;opacity:.65}
.cxstep__b{font-family:var(--font-display);font-weight:600;font-size:26px;line-height:1.2}
.cxstep__s{font-size:13.5px;line-height:1.6;opacity:.8}
.cxstep .btn{align-self:flex-start;margin-top:8px}
.cxstep.is-todo .btn--solid{background:var(--accent-ink);color:var(--accent);border-color:var(--accent-ink)}
.cxstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.cxstat{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:18px 20px;border:1px solid var(--line);border-radius:18px;background:var(--glass);
  color:inherit;text-align:left;cursor:pointer;transition:border-color .15s,transform .15s}
.cxstat:hover{border-color:var(--accent);transform:translateY(-1px)}
.cxstat b{font-family:var(--font-display);font-weight:600;font-size:26px;line-height:1.1}
.cxstat span{font-size:12px;color:var(--muted)}

/* --- lista + detalle (Proyectos, Actas, Informes) --- */
.cxmd{display:grid;grid-template-columns:330px minmax(0,1fr);gap:20px;align-items:start}
.cxmd__l{display:flex;flex-direction:column;gap:8px;min-width:0}
.cxmd__l--scroll{max-height:620px;overflow-y:auto;padding-right:4px}
.cxli{display:flex;flex-direction:column;gap:8px;text-align:left;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--glass);
  color:inherit;cursor:pointer;transition:border-color .15s,background .15s}
.cxli:hover{border-color:var(--line-2)}
.cxli.is-on{border-color:var(--accent);background:var(--glass-2);box-shadow:inset 3px 0 0 var(--accent)}
.cxli__top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cxli__top b{font-family:var(--font-display);font-weight:500;font-size:14px}
.cxli em{font-style:normal;font-size:11.5px;color:var(--faint)}
.cxli--acta{flex-direction:row;align-items:center;gap:12px;padding:11px 13px}
.cxli__d{flex:none;width:42px;display:flex;flex-direction:column;align-items:center;line-height:1.1;padding-right:10px;border-right:1px solid var(--line)}
.cxli__d b{font-family:var(--font-display);font-weight:600;font-size:17px}
.cxli__d i{font-style:normal;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.cxli__b{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.cxli__b b{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cxbadge{flex:none;font-family:var(--font-display);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border-radius:7px;border:1px solid var(--line-2);color:var(--faint)}
.cxbadge.is-ok{border-color:rgba(120,220,150,.5);color:#8fe3a0;background:rgba(120,220,150,.1)}
.cxdet{border:1px solid var(--line);border-radius:22px;background:var(--glass);padding:30px 32px}
.cxdet__head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:6px}
.cxdet__k{font-family:var(--font-display);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-bottom:6px}
.cxdet__t{font-family:var(--font-display);font-weight:600;font-size:28px;line-height:1.2;margin-bottom:10px}
.cxdet__note{font-size:14px;color:var(--muted);line-height:1.7;margin:14px 0 26px;padding:14px 16px;border-left:3px solid var(--accent);background:var(--tint-2);border-radius:0 12px 12px 0;white-space:pre-line}
.cxsteps{list-style:none;display:flex;flex-direction:column}
.cxsteps li{position:relative;display:flex;align-items:center;gap:14px;padding:11px 0;color:var(--muted);font-size:14.5px}
.cxsteps li:not(:last-child)::after{content:"";position:absolute;left:15px;top:44px;bottom:-8px;width:2px;background:var(--line-2)}
.cxsteps li.is-done:not(:last-child)::after{background:var(--accent)}
.cxsteps__n{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--line-2);background:var(--bg);font-family:var(--font-display);font-size:12px;color:var(--faint);position:relative;z-index:1}
.cxsteps__n svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.cxsteps li.is-done{color:var(--faint)}
.cxsteps li.is-done .cxsteps__t{text-decoration:line-through}
.cxsteps li.is-done .cxsteps__n{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.cxsteps li.is-cur{color:var(--ink);font-weight:500}
.cxsteps li.is-cur .cxsteps__n{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 20%,transparent)}
.cxsteps__t{flex:1}
.cxsteps li em{font-style:normal;font-family:var(--font-display);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:var(--accent);color:var(--accent-ink)}
.cxdocs{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.cxdoc{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:var(--tint-1);transition:border-color .15s}
.cxdoc:hover{border-color:var(--accent)}
.cxdoc__ic{flex:none;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--tint-4);color:var(--accent)}
.cxdoc__ic svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cxdoc__b{flex:1;min-width:0;display:flex;flex-direction:column}
.cxdoc__b b{font-size:13.5px;font-weight:500}
.cxdoc__b em{font-style:normal;font-size:11.5px;color:var(--faint)}
.cxdoc i{font-style:normal;color:var(--faint)}

/* --- Roadmap --- */
.rmtop__h{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px}
.rmtop__pct{font-family:var(--font-display);font-weight:600;font-size:46px;line-height:1}
.rmtop__pct small{font-size:20px;color:var(--muted)}
button.rmj__n{background:none;border:0;color:inherit;font:inherit;cursor:pointer}
.rmj__n.is-sel .rmj__t{color:var(--ink)}
.rmj__n.is-sel::after{content:"";position:absolute;left:12%;right:12%;bottom:-6px;height:3px;border-radius:3px;background:var(--accent)}
.rmj-wrap{margin-top:22px;overflow-x:auto;padding:4px 2px 14px}
.rmsel{position:sticky;top:12px}
.rmsel__k{display:flex;align-items:center;gap:12px;font-family:var(--font-display);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
.rmsel__t{font-family:var(--font-display);font-weight:600;font-size:28px;line-height:1.2;margin:12px 0 4px}
.rmsel__w{font-size:13.5px;color:var(--accent)}
.rmsel__p{font-size:14.5px;color:var(--muted);line-height:1.75;margin-top:16px;white-space:pre-line}
.rmsel__p--muted{color:var(--faint)}
.rmsel__nav{display:flex;justify-content:space-between;gap:10px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
.rmsel.is-progress{border-color:var(--accent);box-shadow:0 18px 44px -26px var(--accent)}
.rmlist{display:flex;flex-direction:column;gap:6px}
.rmlist__it{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid transparent;border-radius:12px;background:none;color:inherit;text-align:left;cursor:pointer}
.rmlist__it:hover{background:var(--tint-3)}
.rmlist__it.is-on{background:var(--tint-4);border-color:var(--line-2)}
.rmlist__n{flex:none;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:var(--tint-4);font-family:var(--font-display);font-size:11px;color:var(--muted)}
.rmlist__n svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.rmlist__it.is-done .rmlist__n{background:var(--accent);color:var(--accent-ink)}
.rmlist__it.is-progress .rmlist__n{background:none;border:2px solid var(--accent);color:var(--accent)}
.rmlist__b{flex:1;min-width:0;display:flex;flex-direction:column}
.rmlist__b b{font-size:13.5px;font-weight:500}
.rmlist__b em{font-style:normal;font-size:11.5px;color:var(--faint)}

/* --- Checklist --- */
.cxsum{display:flex;align-items:center;justify-content:center;gap:28px;text-align:left}
.cxsum__b{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.cxsum__b b{font-family:var(--font-display);font-weight:600;font-size:30px;line-height:1.1}
.cxsum__b span{font-size:13px;color:var(--muted)}
.cxsum__b em{font-style:normal;font-size:13px;color:var(--ink);margin-top:6px}
.cxcks{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}
.cxck{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--tint-1);cursor:pointer;transition:border-color .15s,background .15s}
.cxck:not(.is-ro):hover{border-color:var(--accent);background:var(--tint-3)}
.cxck input{flex:none;width:22px;height:22px;accent-color:var(--accent);cursor:pointer}
.cxck__st{flex:none;width:22px;height:22px;border-radius:7px;border:2px solid var(--line-2);display:grid;place-items:center}
.cxck__st svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.cxck.is-done .cxck__st{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.cxck__t{flex:1;font-size:14.5px;line-height:1.4}
.cxck.is-done .cxck__t{color:var(--faint);text-decoration:line-through}
.cxck.is-ro{cursor:default}
.cxck__l{flex:none;max-width:38%;font-style:normal;font-size:11px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* --- Contenido --- */
.cvtop{display:flex;flex-direction:column;gap:16px}
.cvsts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.cvst{display:flex;align-items:baseline;gap:14px;padding:18px 22px;border:1px solid var(--line);border-radius:18px;background:var(--glass);color:inherit;text-align:left;cursor:pointer;
  transition:border-color .15s,background .15s}
.cvst:hover{border-color:var(--line-2)}
.cvst.is-on{border-color:var(--accent);background:var(--glass-2);box-shadow:inset 4px 0 0 var(--accent)}
.cvst b{font-family:var(--font-display);font-weight:600;font-size:32px;line-height:1;min-width:64px}
.cvst span{font-size:13.5px;color:var(--muted)}
.cvchart{display:flex;flex-direction:column}
.cvchart__bars{flex:1;display:flex;align-items:flex-end;gap:10px;min-height:150px;margin-top:8px}
.cvchart__c{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.cvchart__b{width:100%;flex:1;display:flex;align-items:flex-end;min-height:90px}
.cvchart__b i{display:block;width:100%;border-radius:8px 8px 3px 3px;background:var(--accent);opacity:.9;min-height:0}
.cvchart__n{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;height:14px}
.cvchart__c em{font-style:normal;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.cvlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:10px}
.cvgrp{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.cvgrp:first-child{margin-top:4px}
.cvgrp__h{font-family:var(--font-display);font-size:11px;letter-spacing:.14em;text-transform:capitalize;color:var(--muted)}
.cvgrp__h span{color:var(--faint);margin-left:6px}

/* --- Reuniones / Actas / Informes --- */
.cxnext{display:flex;flex-direction:column;gap:16px}
.cxnext__k{font-family:var(--font-display);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
.cxnext__row{display:flex;gap:22px;align-items:center}
.cxnext__d{flex:none;width:96px;padding:16px 0;border-radius:20px;background:var(--accent);color:var(--accent-ink);display:flex;flex-direction:column;align-items:center;line-height:1;box-shadow:0 18px 40px -20px var(--accent)}
.cxnext__d b{font-family:var(--font-display);font-weight:600;font-size:40px}
.cxnext__d span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin-top:6px;font-weight:600}
.cxnext__b h3{font-family:var(--font-display);font-weight:600;font-size:22px;line-height:1.25}
.cxnext__b p{font-size:13.5px;color:var(--muted);margin:6px 0 14px}
.cxnext--none{min-height:120px}
.cxnext__none{font-size:14px;color:var(--muted)}
.cxnext__more{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:8px}
.cxnext__o{display:flex;align-items:center;gap:12px;font-size:13px}
.cxnext__o b{flex:none;min-width:58px;font-family:var(--font-display);font-weight:500}
.cxnext__o span{flex:1;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cxnext__o em{font-style:normal;color:var(--faint);font-size:12px}
.cxactas__h{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.cxactas__h .cvq{flex:0 1 300px}
.cxmd--acta{grid-template-columns:320px minmax(0,1fr);gap:0;align-items:stretch;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--tint-1)}
.cxmd--acta .cxmd__l{padding:12px;border-right:1px solid var(--line);max-height:640px}
.cxmd--acta .cxli{background:transparent}
.cxmd--acta .cxli.is-on{background:var(--tint-4)}
.cxreader{padding:32px 38px;min-width:0}
.cxreader__k{font-family:var(--font-display);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
.cxreader__t{font-family:var(--font-display);font-weight:600;font-size:26px;line-height:1.25;margin:10px 0 6px}
.cxreader__m{font-size:13px;color:var(--faint);margin-bottom:22px}
.cxreader__b{font-size:15.5px;line-height:1.85;color:var(--ink);white-space:pre-line;max-width:72ch;opacity:.92}
.cxreader__b--empty{color:var(--faint);font-style:italic}
.cxreader__go{margin-top:26px}

/* --- Comunicación: el chat ocupa exactamente lo visible --- */
#view-portal.view--chat{display:flex;flex-direction:column;overflow:hidden}
#view-portal.view--chat .portal{flex:1;min-height:0;display:flex;flex-direction:column}
#view-portal.view--chat .ccwrap{flex:1;height:auto;min-height:0}

@media(max-width:1100px){
  .cxhero,.cx2,.cx2--rm,.cx2--mt,.cxmd,.cxmd--acta{grid-template-columns:1fr}
  .cxstats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cxmd--acta .cxmd__l{border-right:0;border-bottom:1px solid var(--line);max-height:300px}
  .rmsel{position:static}
}
@media(max-width:700px){
  html[data-mode="client"] .view{padding:14px 12px 30px}
  .cxcard{padding:18px 16px;border-radius:16px}
  .cxhero__l{padding:24px 20px}.cxhero__t{font-size:28px}.cxstep{padding:22px 20px}
  .cxdet{padding:22px 18px}.cxdet__t{font-size:22px}
  .cxreader{padding:22px 18px}.cxreader__t{font-size:21px}
  .cxnext__row{gap:14px}.cxnext__d{width:76px}.cxnext__d b{font-size:32px}
  .cxsum{gap:16px}.cvlist{grid-template-columns:1fr}.cvsts{grid-template-columns:1fr}
  .cxck__l{display:none}
  .rmtop__pct{font-size:36px}
}

/* ===================================================================
   MÓVIL — reescritura completa de la versión ≤900px.
   No se toca ninguna regla de escritorio (>900px queda intacto).
   Objetivos: (1) que no se caliente el móvil ni se quede sin cargar
   → fuera el fondo animado y todos los desenfoques;
   (2) layout en una sola columna, orden y menús correctos.
   =================================================================== */
@media(max-width:900px){

  /* ---------- 1 · RENDIMIENTO ----------
     El fondo liquid-glass (2 filtros SVG feTurbulence animados en bucle
     + varios blur(90px) + backdrop-filter en cada panel) satura la GPU
     de un móvil. En móvil se sustituye por un degradado estático. */
  .bg__orbs,.bg__waves,.bg__grain,.bg__vignette{display:none!important}
  .svg-defs{display:none!important}                     /* corta la animación SMIL de los filtros */
  .bg{background:radial-gradient(135% 78% at 50% 0%,#141519 0%,#000 72%)}
  :root[data-theme="light"] .bg{background:radial-gradient(135% 78% at 50% 0%,#eef0f4 0%,#e2e4ea 72%)}
  .orb{animation:none!important;filter:none!important}
  *,*::before,*::after{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

  /* como ya no hay desenfoque detrás, los paneles necesitan algo más de cuerpo */
  :root{--glass:rgba(20,21,25,.86);--glass-2:rgba(33,35,41,.92)}
  :root[data-theme="light"]{--glass:rgba(255,255,255,.94);--glass-2:#ffffff}

  /* ---------- 2 · ESTRUCTURA GENERAL ---------- */
  html{-webkit-text-size-adjust:100%}
  /* clave contra el "todo se ve más pequeño": si algo se sale de ancho,
     iOS reduce (zoom-out) toda la página. Recortamos el desbordamiento
     horizontal en la raíz; lo ancho de verdad ya scrollea en su caja. */
  html,body{overflow-x:hidden;max-width:100%}
  body{overflow-y:auto;font-size:14.5px;-webkit-tap-highlight-color:transparent}
  button,a,.btn,.side__link,.segmented__btn{touch-action:manipulation}
  .app{flex-direction:column;height:auto;min-height:100vh;min-height:100dvh;width:100%;
    max-width:100vw;overflow:visible}
  .main{flex:1 1 auto;min-width:0;min-height:0;max-width:100vw}
  .view{padding:14px 12px;overflow:visible;height:auto}

  /* inputs a 16px → evita el zoom automático de iOS al enfocar un campo */
  input,textarea,select,
  .field input,.field textarea,.field select,
  .crm__search,.tplsearch,.est-plan,.est-in,
  .bdoc input,.bdoc textarea,.bdoc select,
  .team__addrow input,.team__compose input{font-size:16px}

  /* ---------- 3 · NAVEGACIÓN — barra superior + menú desplegable ----------
     El botón de la barra superior (o tocar el logo) despliega/oculta
     la lista vertical. Cerrado ocupa una sola franja. */
  .side{position:sticky;top:0;z-index:40;width:100%;flex:none;overflow:visible;transition:none;
    border-bottom:1px solid var(--line);background:var(--opaque)}
  .app.side-hidden .side{margin-left:0}                 /* el candado lateral no aplica en móvil */
  .side__inner{width:100%;height:auto;flex-direction:column;gap:0;padding:0;
    border-right:0;border-bottom:0;background:none}
  .side__brand{display:flex;align-items:center;gap:9px;padding:13px 16px;font-size:13.5px;
    cursor:pointer;user-select:none}
  .side__brand::after{content:"";margin-left:auto;width:8px;height:8px;flex:none;
    border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);
    transform:rotate(45deg) translateY(-2px);transition:transform .25s var(--ease)}
  .app.nav-open .side__brand::after{transform:rotate(-135deg) translateY(2px)}
  .side__label{display:none}
  .side__nav{flex-direction:column;gap:0;max-height:0;overflow:hidden;padding:0 8px;
    transition:max-height .3s var(--ease)}
  .app.nav-open .side__nav{max-height:76vh;overflow-y:auto;padding:4px 8px 8px;
    border-top:1px solid var(--line);-webkit-overflow-scrolling:touch}
  .side__link{flex-direction:row;justify-content:flex-start;width:100%;min-width:0;gap:13px;
    padding:13px 12px;border:0;border-radius:10px;font-size:13.5px;white-space:nowrap}
  .side__link svg{width:18px;height:18px}
  .side__link span:not(.side__badge){display:block;font-size:13.5px;letter-spacing:0;max-width:none}
  .side__badge{margin-left:auto}
  .side__foot{display:flex;margin:2px 4px 10px;padding:12px 10px 0;border-top:1px solid var(--line)}
  .app:not(.nav-open) .side__foot{display:none}

  /* ---------- 4 · BARRA SUPERIOR ---------- */
  .topbar{padding:9px 12px;gap:8px;flex-wrap:wrap;background:var(--opaque)}
  .topbar__l{gap:8px;flex:1 1 auto;min-width:0}
  .topbar__title{font-size:15px}
  .topbar__hint{display:none}
  .topbar__r{gap:6px}
  .topbar__actions{flex-wrap:wrap;justify-content:flex-end}
  .btn--icon{width:36px;height:36px}
  .btn{font-size:12px}

  /* ---------- 5 · TIPOGRAFÍA COHERENTE ----------
     Nivela los títulos display que quedan enormes en una columna
     estrecha y sube las micro-etiquetas ilegibles (<9px). */
  .pm__title,.mcal__title,.cpanel__name,.cempty h3,.vcall h3,.settings__h,
  .sched__empty p{font-size:15px}
  .hc__num{font-size:20px}
  .cflow__s b{font-size:18px}
  .rmq b{font-size:13px}
  .rmcell__m{font-size:13px}
  .bdoc h4,.bdoc__items th,.estab__head,.tresp__k,.tmsg__who,.block__type,
  .play__row b,.pilar__m b,.pilar__k,.qa__h{font-size:9px}
  .bdoc{font-size:12.5px}

  /* ---------- 6 · REJILLAS QUE EN ESCRITORIO SON DE 2+ COLUMNAS ---------- */
  .pm,.crm,.team,.bud,.sched{grid-template-columns:1fr;height:auto;min-height:0}
  .pm__aside,.pm__main,.crm__col,.crm__side,.team__side,.team__main,
  .bud__list,.bud__stage,.sched__side{height:auto;max-height:none;overflow:visible}
  .crm__list,.bud__list{max-height:60vh;overflow-y:auto}
  .team__main{min-height:70vh}
  .team__msgs{max-height:56vh}
  .sched__grid{height:74vh}
  .qa__grid{grid-template-columns:1fr 1fr}
  .homegrid,.ideagrid,.tplgrid{grid-template-columns:1fr}
  .estab{overflow-x:auto}
  .mcal__grid{grid-auto-rows:minmax(56px,auto)}

  /* barras de herramientas y cabeceras: que envuelvan, no que desborden */
  .segmented,.cbar,.cbar__r,.cflow,.cal__bar,.mcal__head,.cpanel__headr,
  .crm__estado,.pm__headr,.pm__head,.bdoc-bar,.rmboard>*{flex-wrap:wrap}
  .cflow{overflow-x:auto;flex-wrap:nowrap}
  .cflow__s{flex:0 0 auto;min-width:58px}

  /* kanban / pipeline de contenido: una columna por pantalla con "peek" */
  .board{flex-wrap:nowrap;overflow-x:auto;height:auto;-webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity;padding-bottom:14px}
  .board .col,.board--fill .col{flex:0 0 82vw;min-width:0;max-width:none;max-height:none;
    scroll-snap-align:start}
  .deal{cursor:default}
  .deal--ghost{box-shadow:0 22px 54px -12px rgba(0,0,0,.7);border-color:var(--accent)!important;
    transform-origin:top left}

  /* timeline / roadmap: scroll horizontal contenido, etiqueta más estrecha */
  .tl__scroll{max-height:none}
  .tl__label{flex-basis:128px}
  .rmboard{overflow-x:auto}
  .rmgrid{gap:34px 18px;min-width:520px}

  /* ---------- 7 · DRAWER DE EDICIÓN (pantalla casi completa) ---------- */
  .scrim{z-index:55}
  .sheet{width:100vw;max-width:100vw;height:100vh;height:100dvh}
  .sheet--wide{width:100vw}

  /* ---------- 8 · PRESUPUESTOS ---------- */
  .bdoc{padding:20px 15px}
  .bdoc__head{flex-direction:column;align-items:stretch;gap:12px}
  .bdoc .bdoc__title{text-align:left}
  .bdoc__meta{max-width:none}
  .bdoc__metarow label,.bdoc__metarow input{text-align:left}
  .bdoc__parties,.bdoc__cols{grid-template-columns:1fr;gap:12px}

  /* ---------- 9 · NEURONAS ---------- */
  #view-neuronas{overflow:visible}
  .neuro{height:66vh}

  /* ---------- 9b · PORTAL DE CLIENTES ---------- */
  .cli{grid-template-columns:1fr}
  .pcard{padding:18px 16px 16px;border-radius:16px}
  .phero{padding:22px 18px 18px}
  .phero__t{font-size:22px}
  .mcalx{grid-template-columns:1fr;height:auto}
  .mcal{height:auto}
  .mfeed{max-height:none;overflow:visible}
  .ccwrap{height:calc(100vh - 200px);height:calc(100dvh - 200px);min-height:420px}
  .ccm{max-width:88%}
  .cchead__call span{display:none}
  .pmt__top{gap:12px}
  .prep__it{padding:14px}
  .pmt2{grid-template-columns:1fr}
  .cled__row:has(.cled__in--b){flex-wrap:wrap}
  .cled__in--date{width:100%}
  .cled__in--b{flex-basis:100%}

  /* ---------- 10 · VIDEOLLAMADA ---------- */
  .callwin{left:8px;right:8px;bottom:8px;width:auto;max-width:none}
  .callwin__bar{padding:10px}
  .callbtn{width:38px;height:38px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .orb,.bg__waves .w{animation:none}
}

/* arranque: la app no se ve hasta saber qué cuenta es (sin parpadeos del menú equivocado) */
html.is-booting .app{visibility:hidden}
html.is-booting body::before{content:"";position:fixed;left:50%;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;
  background:var(--accent);box-shadow:0 0 18px 4px var(--accent);z-index:500;animation:bootpulse 1s ease-in-out infinite}
@keyframes bootpulse{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.25)}}
