:root{
  --bg:#0c0c0c;--s1:#141414;--s2:#1c1c1c;--s3:#262626;
  --biz:#e8593a;--biz2:rgba(232,89,58,.13);
  --con:#00c8d4;--con2:rgba(0,200,212,.11);
  --gold:#f0a500;--gold2:rgba(240,165,0,.13);
  --text:#ede9e3;--muted:#666;--dim:#333;--border:#222;
  --ok:#4caf7d;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;min-height:100vh;font-size:14px}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--s3);border-radius:4px}

/* HEADER */
.hdr{padding:13px 28px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:rgba(12,12,12,.97);backdrop-filter:blur(12px);z-index:300}
.brand{display:flex;align-items:center;gap:16px}
.b-dojo{font-size:15px;font-weight:900;letter-spacing:.1em;display:flex;align-items:center;gap:7px}
.b-icon{color:var(--biz)}
.b-sep{width:1px;height:18px;background:var(--border)}
.b-hugo{font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--con);opacity:.7}
.tabs{display:flex;background:var(--s1);border-radius:8px;padding:3px;gap:3px}
.tab{padding:6px 16px;border-radius:6px;border:none;background:transparent;color:var(--muted);font-size:12px;font-weight:600;cursor:pointer;transition:.15s;font-family:inherit}
.tab.on{background:var(--s2);color:var(--text)}

/* LAYOUT */
main{padding:20px 28px 60px;max-width:1600px;margin:0 auto}
.panel{display:none}.panel.on{display:block}

/* ── ESTRELLA POLAR DUAL PANEL ── */
@keyframes warmFlow{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}
@keyframes coolFlow{
  0%{background-position:100% 50%}
  50%{background-position:0% 50%}
  100%{background-position:100% 50%}
}
@keyframes warmGlow{
  from{box-shadow:0 0 20px rgba(232,89,58,.1),inset 0 0 40px rgba(232,89,58,.04)}
  to{box-shadow:0 0 40px rgba(232,89,58,.22),inset 0 0 60px rgba(232,89,58,.09)}
}
@keyframes coolGlow{
  from{box-shadow:0 0 20px rgba(0,200,212,.08),inset 0 0 40px rgba(0,200,212,.03)}
  to{box-shadow:0 0 40px rgba(0,200,212,.2),inset 0 0 60px rgba(0,200,212,.08)}
}
.ep-wrap{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
/* DOJO panel — animated warm gradient */
.ep-dojo{
  background:linear-gradient(-45deg,#0a0200,#2d0800,#0f0300,#3d1000,#1c0500,#0a0200);
  background-size:400% 400%;
  border:1px solid rgba(232,89,58,.3);
  border-radius:16px;overflow:hidden;
  animation:warmFlow 12s ease infinite,warmGlow 4s ease-in-out infinite alternate;
}
.ep-panel-bar{display:flex;align-items:center;justify-content:space-between;padding:11px 20px;border-bottom:1px solid rgba(255,255,255,.05)}
.ep-panel-logo{font-size:13px;font-weight:900;letter-spacing:.1em;display:flex;align-items:center;gap:7px}
.ep-panel-tag{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
/* hero number area */
.ep-hero-area{padding:22px 22px 16px;border-bottom:1px solid rgba(255,255,255,.05)}
.ep-hero-lbl{font-size:9px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}
.ep-hero-num{font-size:68px;font-weight:900;line-height:.9;letter-spacing:-.04em;color:#fff;margin-bottom:6px}
.ep-hero-mrr{font-size:20px;font-weight:700;letter-spacing:-.01em;margin-bottom:5px}
.ep-hero-mrr.b{color:var(--biz)}
.ep-hero-desc{font-size:11px;color:var(--muted);line-height:1.5;margin-bottom:10px}
/* dojo stats row */
.ep-dojo-stats{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid rgba(255,255,255,.05)}
.ep-ds{padding:14px 20px;border-right:1px solid rgba(255,255,255,.05)}
.ep-ds:last-child{border-right:none}
.ep-ds-lbl{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px}
.ep-ds-n{font-size:26px;font-weight:900;letter-spacing:-.02em;line-height:1;margin-bottom:3px}
.ep-ds-n.b{color:var(--biz)}.ep-ds-n.g{color:var(--gold)}
.ep-ds-d{font-size:10px;color:var(--muted)}
/* image cards row */
.ep-cards{display:grid;grid-template-columns:repeat(3,1fr)}
.ep-card{position:relative;height:130px;overflow:hidden;cursor:pointer;border-right:1px solid rgba(255,255,255,.05)}
.ep-card:last-child{border-right:none}
.ep-card-bg{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.ep-card:hover .ep-card-bg{transform:scale(1.04)}
.ep-card-empty{width:100%;height:100%;background:linear-gradient(160deg,#1a1208,#110f0d);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--dim);font-size:10px}
.ep-card-empty-icon{font-size:20px;opacity:.35}
.ep-card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.9) 0%,rgba(0,0,0,.05) 65%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:11px 13px}
.ep-card-title{font-size:12px;font-weight:700;line-height:1.2;margin-bottom:2px;outline:none}
.ep-card-title:focus{border-bottom:1px solid rgba(255,255,255,.3)}
.ep-card-sub{font-size:9px;color:rgba(255,255,255,.5);outline:none}
.ep-card-sub:focus{border-bottom:1px solid rgba(255,255,255,.2)}
.ep-upload-hint{position:absolute;top:7px;right:7px;background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.12);border-radius:4px;padding:2px 7px;font-size:9px;color:rgba(255,255,255,.45);opacity:0;transition:.2s;pointer-events:none}
.ep-card:hover .ep-upload-hint{opacity:1}
/* vision toggles */
.ep-vis-btn{font-size:10px;color:var(--dim);cursor:pointer;border:none;background:transparent;font-family:inherit;padding:0;text-decoration:underline;text-underline-offset:2px;margin-top:6px;display:inline-block}
.ep-vis-btn:hover{color:var(--muted)}
.ep-vis-box{display:none;margin-top:6px}
.ep-vis-box.on{display:block}
.ep-vis-box textarea{width:100%;background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:6px;padding:7px 9px;color:var(--text);font-size:11px;font-family:inherit;resize:vertical;outline:none;min-height:50px}
.ep-vis-box textarea:focus{border-color:var(--gold)}
/* HUGO panel — animated cool gradient */
.ep-hugo{
  background:linear-gradient(-45deg,#000810,#001a35,#000d20,#002a45,#001020,#000608);
  background-size:400% 400%;
  border:1px solid rgba(0,200,212,.2);
  border-radius:16px;overflow:hidden;display:flex;flex-direction:column;
  animation:coolFlow 12s ease infinite,coolGlow 4s ease-in-out infinite alternate;
}
.ep-hugo-body{display:grid;grid-template-columns:1fr 1fr;flex:1}
.ep-hugo-platform{padding:22px 20px;border-right:1px solid rgba(0,200,212,.07);display:flex;flex-direction:column}
.ep-hugo-platform:last-child{border-right:none}
.ep-hp-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--con);margin-bottom:14px}
.ep-hp-badge-dot{width:7px;height:7px;border-radius:50%;background:var(--con);box-shadow:0 0 8px var(--con)}
.ep-hp-lbl{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:6px}
.ep-hp-num{font-size:56px;font-weight:900;line-height:.88;letter-spacing:-.04em;color:#fff;margin-bottom:8px}
.ep-hp-cadence{font-size:16px;font-weight:700;color:var(--con);margin-bottom:16px}
.ep-hp-cadence span{font-weight:400;font-size:13px;color:var(--muted)}
/* image upload area inside hugo panel */
.ep-hp-img-area{flex:1;border-radius:10px;overflow:hidden;cursor:pointer;position:relative;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);min-height:100px;display:flex;align-items:center;justify-content:center}
.ep-hp-img-area:hover{border-color:rgba(0,200,212,.25)}
.ep-hp-img{width:100%;height:100%;object-fit:cover;display:block}
.ep-hp-empty{display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--dim);font-size:10px}
.ep-hp-empty-icon{font-size:22px;opacity:.3}
.ep-hp-img-hint{position:absolute;bottom:8px;right:8px;background:rgba(0,0,0,.65);border:1px solid rgba(0,200,212,.2);border-radius:4px;padding:2px 7px;font-size:9px;color:rgba(0,200,212,.6);opacity:0;transition:.2s;pointer-events:none}
.ep-hp-img-area:hover .ep-hp-img-hint{opacity:1}

/* ── OBJETIVO SECTION (below EP) ── */
.obj-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.obj-box{background:var(--s1);border:1px solid var(--border);border-radius:14px;padding:18px 22px}
.obj-box-hd{font-size:9px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.obj-box-hd.b{color:var(--biz)}.obj-box-hd.c{color:var(--con)}
.obj-metrics{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.obj-met{position:relative}
.obj-lbl{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px}
/* The big target number */
.obj-tgt-num{font-size:36px;font-weight:900;line-height:1;letter-spacing:-.03em;margin-bottom:3px}
.obj-tgt-num.b{color:var(--biz)}.obj-tgt-num.c{color:var(--con)}
.obj-tgt-unit{font-size:11px;color:var(--muted);margin-bottom:8px}
/* milestone selector — subtle top-right arrow */
.obj-ms-row{display:flex;align-items:center;gap:4px;margin-bottom:8px;justify-content:flex-end}
.obj-ms-row select{background:transparent;border:none;color:var(--dim);font-size:10px;font-family:inherit;outline:none;cursor:pointer;padding:0;appearance:none;-webkit-appearance:none;width:12px}
.obj-ms-arrow{font-size:10px;color:var(--dim);cursor:pointer;user-select:none}
.obj-ms-row:hover .obj-ms-arrow{color:var(--muted)}
.obj-add-ms{width:16px;height:16px;border:1px solid var(--dim);border-radius:3px;background:transparent;color:var(--dim);cursor:pointer;font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.15s;margin-left:2px}
.obj-add-ms:hover{border-color:var(--muted);color:var(--text)}
/* hidden native select overlaid on the arrow */
.obj-ms-select-wrap{position:relative;display:flex;align-items:center}
.obj-ms-select-wrap select{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.obj-ms-select-wrap .obj-ms-arrow{padding:2px 4px;border-radius:3px;background:var(--s2);border:1px solid var(--border);transition:.15s}
.obj-ms-select-wrap:hover .obj-ms-arrow{border-color:var(--muted);color:var(--text)}
/* progress toward target */
.obj-cur{display:flex;align-items:baseline;gap:5px;margin-bottom:4px}
.obj-cur-n{font-size:14px;font-weight:700;color:var(--text)}
.obj-cur-sep{font-size:11px;color:var(--muted)}
.obj-cur-tgt{font-size:11px;color:var(--muted)}
.bar{background:var(--s3);border-radius:3px;height:4px;overflow:hidden}
.bar-fill{height:100%;border-radius:3px;transition:width .6s}
.bar-fill.b{background:linear-gradient(90deg,var(--biz),var(--gold))}
.bar-fill.c{background:linear-gradient(90deg,var(--con),#7de8f0)}
.bar-pct{font-size:10px;color:var(--muted);text-align:right;margin-top:3px}
/* permashift llamadas sub-metric */
.obj-sub{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
.obj-sub-lbl{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}
.obj-sub-chain{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-wrap:wrap}
.sub-pill{background:var(--s2);border-radius:6px;padding:3px 9px;font-size:11px;font-weight:700;color:var(--biz)}
.sub-pill.need{color:var(--gold);background:var(--gold2)}
.sub-sep{font-size:11px;color:var(--dim)}
.obj-sub-input{display:flex;align-items:center;gap:6px;margin-top:6px}
.obj-sub-input input{width:70px;background:var(--s2);border:1px solid var(--border);border-radius:6px;padding:4px 8px;color:var(--text);font-size:12px;outline:none;font-family:inherit}
.obj-sub-input input:focus{border-color:var(--biz)}
.obj-sub-input span{font-size:11px;color:var(--muted)}
.obj-sub-save{padding:4px 10px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--muted);font-size:11px;cursor:pointer;font-family:inherit;transition:.15s}
.obj-sub-save:hover{border-color:var(--biz);color:var(--biz)}

/* SEC HEADER */
.sec-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.sec-title{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}

/* TIME SECTIONS (semana/mes) */
.time-section{margin-bottom:18px}
.time-col{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-items:start}

/* FULL CARD */
.hcard{background:var(--s1);border:1px solid var(--border);border-radius:10px;padding:13px 15px}
.hcard.biz{border-left:2.5px solid var(--biz)}
.hcard.con{border-left:2.5px solid var(--con)}
.hcard.done-card{opacity:.4}
.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;margin-bottom:8px}
.card-badges{display:flex;gap:4px}
.badge{font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:2px 6px;border-radius:3px;font-weight:700}
.badge.dojo{background:var(--biz2);color:var(--biz)}
.badge.permashift{background:var(--gold2);color:var(--gold)}
.badge.youtube{background:rgba(255,80,80,.12);color:#ff8080}
.badge.instagram{background:rgba(200,80,200,.12);color:#d07ed0}
.badge.coach{background:var(--con2);color:var(--con)}
.badge.hipnosis{background:rgba(200,80,200,.12);color:#d07ed0}

/* Rol closing: no debe ver facturación (ticket/cobrado/pendiente/comisiones/
   plan de pago) dentro de Clientes Permashift, solo el resto del CRM. */
body.role-closing .role-hide-billing{display:none!important}

/* Saldar comisiones es exclusivo del owner: el resto del equipo ve su deuda
   pero no puede tocar los pagos. */
body.not-owner .owner-only{display:none!important}

/* ── Setters/Closers · lista de sugerencias, en Equipo ── */
.person-chip-list{display:flex;flex-wrap:wrap;gap:8px}
.person-chip{
  display:inline-flex;align-items:center;gap:7px;
  background:var(--s2);border:1px solid var(--border);border-radius:20px;
  padding:6px 8px 6px 13px;font-size:12px;font-weight:600;color:var(--text)
}
.person-chip button{
  background:none;border:none;cursor:pointer;color:var(--dim);
  font-size:10px;padding:3px 5px;border-radius:50%;line-height:1
}
.person-chip button:hover{color:#e85d3a;background:rgba(232,93,58,.12)}

/* ═══════════ Metas de la semana ═══════════ */
.ms-semana{font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.ms-add{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.ms-add input{
  flex:1;min-width:180px;max-width:280px;background:var(--s2);border:1px solid var(--border);
  border-radius:8px;color:var(--text);font-family:inherit;font-size:12px;padding:8px 11px;
  outline:none;transition:border-color .15s;
}
.ms-add input::placeholder{color:#555}
.ms-add input:focus{border-color:var(--gold)}
.ms-empty{font-size:12px;color:var(--muted);padding:22px;text-align:center;
  border:1px dashed var(--border);border-radius:10px}
.ms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(282px,1fr));gap:12px}

/* La caja: ámbar, plana y con jerarquía clara */
.ms-card{
  background:var(--s1);border:1px solid rgba(240,165,0,.34);border-radius:12px;
  display:flex;flex-direction:column;min-width:0;overflow:hidden;transition:border-color .15s;
}
.ms-card:hover{border-color:rgba(240,165,0,.6)}
.ms-card-hd{
  display:flex;align-items:center;gap:9px;padding:11px 13px;
  background:linear-gradient(180deg,rgba(240,165,0,.13),transparent);
  border-bottom:1px solid rgba(240,165,0,.2);
}
.ms-persona{
  flex:1;min-width:0;background:none;border:none;border-bottom:1px solid transparent;
  color:var(--gold);font-family:inherit;font-size:12px;font-weight:800;
  text-transform:uppercase;letter-spacing:.07em;padding:2px 0;outline:none;transition:border-color .15s;
}
.ms-persona:hover{border-bottom-color:rgba(240,165,0,.3)}
.ms-persona:focus{border-bottom-color:var(--gold)}
.ms-logro{
  flex-shrink:0;font-size:10px;font-weight:800;font-variant-numeric:tabular-nums;
  background:var(--s3);color:#8a8a8a;border-radius:20px;padding:3px 9px;
}
.ms-logro.is-full{background:rgba(76,175,125,.18);color:var(--ok)}
.ms-card .row-del{opacity:0;transition:opacity .15s}
.ms-card:hover .row-del{opacity:1}

.ms-items{display:flex;flex-direction:column;padding:4px 13px 0}
.ms-sin{font-size:11px;color:var(--muted);padding:12px 0}
.ms-item{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.045)}
.ms-item:last-child{border-bottom:none}
.ms-item-top{display:flex;align-items:center;gap:7px;margin-bottom:6px}
.ms-metrica{
  flex:1;min-width:0;background:none;border:1px solid transparent;border-radius:6px;
  color:var(--text);font-family:inherit;font-size:12px;font-weight:600;
  padding:3px 5px;margin-left:-5px;outline:none;transition:.15s;
}
.ms-metrica:hover{border-color:var(--border);background:var(--s2)}
.ms-metrica:focus{border-color:var(--gold);background:var(--s2)}
.ms-pct{
  flex-shrink:0;font-size:10px;font-weight:800;color:var(--muted);
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
.ms-item.is-ok .ms-pct{color:var(--ok)}

/* La cifra manda: grande la actual, discreto el objetivo */
.ms-item-cifras{display:flex;align-items:baseline;gap:5px;margin-bottom:8px}
.ms-num,.ms-obj{
  background:none;border:1px solid transparent;border-radius:6px;color:var(--text);
  font-family:inherit;text-align:center;outline:none;transition:.15s;
  font-variant-numeric:tabular-nums;-moz-appearance:textfield;padding:1px 4px;
}
.ms-num::-webkit-outer-spin-button,.ms-num::-webkit-inner-spin-button,
.ms-obj::-webkit-outer-spin-button,.ms-obj::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ms-num{width:62px;font-size:23px;font-weight:800;letter-spacing:-.02em;text-align:left;padding-left:0}
.ms-obj{width:52px;font-size:13px;font-weight:700;color:var(--muted);text-align:left;padding-left:0}
.ms-num:hover,.ms-obj:hover{border-color:var(--border);background:var(--s2)}
.ms-num:focus,.ms-obj:focus{border-color:var(--gold);background:var(--s2)}
.ms-sep{color:var(--dim);font-size:15px;font-weight:400}
.ms-item.is-ok .ms-num{color:var(--ok)}

.ms-barra{height:5px;background:var(--s3);border-radius:5px;overflow:hidden}
.ms-barra span{display:block;height:100%;border-radius:5px;background:var(--gold);
  transition:width .5s cubic-bezier(.16,1,.3,1)}
.ms-item.is-ok .ms-barra span{background:var(--ok)}

.ms-item-add{display:flex;gap:5px;padding:11px 13px 13px;margin-top:2px;
  border-top:1px solid rgba(240,165,0,.16)}
.ms-item-add input{
  background:var(--s2);border:1px solid var(--border);border-radius:6px;color:var(--text);
  font-family:inherit;font-size:11px;padding:7px 9px;outline:none;min-width:0;transition:border-color .15s;
}
.ms-item-add input:first-child{flex:1}
.ms-item-add input:nth-child(2){width:56px;text-align:right}
.ms-item-add input::placeholder{color:#555}
.ms-item-add input:focus{border-color:var(--gold)}
.ms-add-btn{
  flex-shrink:0;width:30px;background:var(--gold2);border:1px solid rgba(240,165,0,.35);
  border-radius:6px;color:var(--gold);cursor:pointer;font-family:inherit;font-size:15px;
  line-height:1;padding:0;transition:.15s;
}
.ms-add-btn:hover{background:var(--gold);color:#0c0c0c}

/* ── Tarjetas de comisiones del equipo ── */
.comm-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.comm-card{
  text-align:left;cursor:pointer;font-family:inherit;
  background:linear-gradient(135deg,rgba(240,165,0,.16),rgba(232,89,58,.10));
  border:1px solid rgba(240,165,0,.42);border-radius:11px;padding:12px 14px;
  transition:.15s;color:var(--text)
}
.comm-card:hover{border-color:var(--gold);transform:translateY(-2px)}
/* Sin deuda pendiente: se apaga para que destaquen solo los que hay que pagar */
.comm-card.is-clear{background:var(--s2);border-color:var(--border);opacity:.62}
.comm-card.is-clear .comm-card-debt{color:var(--muted)}
.comm-card-name{font-size:12px;font-weight:700;letter-spacing:.02em;margin-bottom:4px}
.comm-card-debt{font-size:22px;font-weight:900;color:var(--gold);letter-spacing:-.02em;line-height:1.1}
.comm-card-sub{font-size:9.5px;color:var(--muted);margin-top:4px}

/* Listado de líneas dentro del modal de comisiones */
.comm-list{max-height:190px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;padding:6px 8px;background:var(--s2)}
.comm-row{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:11.5px;border-bottom:1px solid rgba(255,255,255,.04)}
.comm-row:last-child{border-bottom:none}
.comm-row-c{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.comm-row-d{color:var(--muted);font-size:10px;white-space:nowrap}
.comm-row-a{font-weight:700;white-space:nowrap;min-width:64px;text-align:right}
/* Tick por línea: marca ese pago concreto como ya abonado (solo owner) */
.comm-tick{width:14px;height:14px;flex-shrink:0;cursor:pointer;accent-color:var(--ok);margin-right:2px}
.comm-row.is-ticked .comm-row-c{color:var(--muted);text-decoration:line-through}
.comm-row.is-ticked .comm-row-a{color:var(--ok)}

.card-btns{display:flex;gap:3px;flex-shrink:0}
.ic{width:20px;height:20px;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:10px;transition:.15s}
.ic:hover{color:var(--text);border-color:var(--muted)}
.card-title{font-size:13px;font-weight:600;margin-bottom:7px;line-height:1.3}
.card-meta{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:7px}
.mpill{font-size:9px;background:var(--s2);border-radius:20px;padding:2px 7px;color:var(--muted)}
.task-rows{display:flex;flex-direction:column}
.trow{display:flex;align-items:center;gap:7px;padding:4px 0;border-bottom:1px solid var(--border);font-size:12px}
.trow:last-child{border-bottom:none}
.chk{width:13px;height:13px;border:1.5px solid var(--dim);border-radius:3px;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:8px;transition:.15s}
.chk.on{background:var(--ok);border-color:var(--ok);color:#fff}
.ttxt{flex:1;line-height:1.3;cursor:text}
.ttxt.done{text-decoration:line-through;color:var(--muted)}
.ttxt[contenteditable="true"]{outline:none;background:rgba(255,255,255,.04);border-radius:3px;padding:1px 3px}
.sh-wrap{margin-top:8px;border-top:1px solid var(--border);padding-top:7px}
.sh-lbl{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--dim);margin-bottom:4px}
.sh-row{display:flex;align-items:center;gap:6px;padding:2px 0;font-size:11px;color:var(--muted)}
.cnote{font-size:11px;color:var(--muted);line-height:1.5;margin-top:7px;border-top:1px solid var(--border);padding-top:6px}
.card-img{margin-top:8px;border-radius:6px;overflow:hidden;max-height:120px}
.card-img img{width:100%;object-fit:cover;display:block}
.cbtn{margin-top:8px;width:100%;padding:5px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--muted);font-size:11px;cursor:pointer;transition:.15s;font-family:inherit}
.cbtn:hover{border-color:var(--ok);color:var(--ok)}
.cbtn.ok{border-color:var(--ok);color:var(--ok);background:rgba(76,175,125,.07)}

/* CAT GRID — Roadmap El Dojo, 2 columnas (multi-column, no grid: así el orden
   de arrastre no depende de en qué columna visual cae cada tarjeta) */
.cat-grid{column-count:2;column-gap:14px}
.cat-sec{}
.cat-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding-bottom:8px;border-bottom:2px solid}
.cat-hd.dojo{border-color:var(--biz)}
.cat-hd.permashift{border-color:var(--gold)}
.cat-hd.youtube{border-color:#ff8080}
.cat-hd.instagram{border-color:#d07ed0}
.cat-name{font-size:11px;font-weight:700;letter-spacing:.08em}
.cat-name.dojo{color:var(--biz)}
.cat-name.permashift{color:var(--gold)}
.cat-name.youtube{color:#ff8080}
.cat-name.instagram{color:#d07ed0}
/* flat ordered list */
.cat-cards{display:flex;flex-direction:column;gap:7px;min-height:30px}
/* SMALL HITO CARD */
.htog{background:var(--s1);border:1px solid var(--border);border-radius:8px;padding:9px 11px;cursor:grab;user-select:none;transition:box-shadow .15s,opacity .15s;position:relative}
.htog:active{cursor:grabbing}
.htog.biz{border-left:2px solid var(--biz)}
.htog.con{border-left:2px solid var(--con)}
.htog.done-card{opacity:.38}
.htog.drag-over{box-shadow:0 -2px 0 var(--gold)}
.htog.dragging{opacity:.3}
.htog-drag{position:absolute;left:5px;top:50%;transform:translateY(-50%);color:var(--dim);font-size:10px;cursor:grab}
.htog-inner{padding-left:12px}
.htog-name{font-size:11px;font-weight:600;line-height:1.3;margin-bottom:4px}
.htog-name.done{text-decoration:line-through;color:var(--muted)}
.htog-meta{display:flex;gap:4px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.htog-pills{display:flex;gap:4px;flex-wrap:wrap;flex:1}
.sm-pill{font-size:9px;color:var(--dim);background:var(--s2);border-radius:20px;padding:1px 7px}
.sm-pill.trigger{color:var(--gold);background:var(--gold2)}
.htog-actions{display:flex;gap:3px;flex-shrink:0}
.htog-edit{font-size:9px;color:var(--dim);cursor:pointer;background:transparent;border:1px solid var(--border);border-radius:4px;padding:2px 6px;font-family:inherit;transition:.15s}
.htog-edit:hover{color:var(--muted);border-color:var(--muted)}
.htog-ok{font-size:9px;color:var(--dim);cursor:pointer;background:transparent;border:1px solid var(--border);border-radius:4px;padding:2px 6px;font-family:inherit;transition:.15s}
.htog-ok.done-state{color:var(--ok);border-color:var(--ok)}
.htog-ok:hover{color:var(--ok);border-color:var(--ok)}

/* Roadmap El Dojo: tarjetas naranja/ámbar con el número de prioridad en grande */
.htog.htog-dojo{
  display:flex;align-items:center;gap:10px;break-inside:avoid;margin-bottom:10px;
  background:linear-gradient(135deg,rgba(240,165,0,.12),rgba(240,165,0,.03));
  border:1px solid rgba(240,165,0,.35);border-left:3px solid var(--gold);
}
.htog.htog-dojo.done-card{opacity:.4}
.htog-rank{font-size:26px;font-weight:900;color:var(--gold);min-width:32px;text-align:center;flex-shrink:0;line-height:1;font-variant-numeric:tabular-nums}
.htog-dojo .htog-inner{padding-left:0;flex:1;min-width:0}

/* ADD BUTTONS */
.add-btn{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;padding:9px;border:1.5px dashed var(--border);border-radius:8px;background:transparent;color:var(--dim);cursor:pointer;font-size:11px;font-family:inherit;transition:.15s;margin-top:6px}
.add-btn:hover{border-color:var(--muted);color:var(--muted)}
.add-btn-sm{width:100%;padding:5px;border:1px dashed var(--dim);border-radius:5px;background:transparent;color:var(--dim);cursor:pointer;font-size:10px;font-family:inherit;transition:.15s;margin-top:5px;display:flex;align-items:center;justify-content:center;gap:4px}
.add-btn-sm:hover{border-color:var(--muted);color:var(--muted)}

/* MÉTRICAS */
.met-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.met-hd h2{font-size:15px;font-weight:700}
.met-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.met-card{background:var(--s1);border:1px solid var(--border);border-radius:12px;padding:16px}
.met-tag{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.met-val{font-size:30px;font-weight:900;line-height:1;letter-spacing:-.03em}
.met-val.b{color:var(--biz)}.met-val.c{color:var(--con)}
.met-sub{font-size:10px;color:var(--muted);margin-top:3px}
.met-link{display:inline-block;margin-top:8px;font-size:11px;color:var(--dim);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.met-link:hover{color:var(--muted)}
.kpi-section{background:var(--s1);border:1px solid var(--border);border-radius:12px;padding:16px 18px;margin-bottom:18px}
.kpi-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.kpi-hd h3{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
/* Subpestañas Llamadas/Clientes dentro de una misma kpi-section */
.sales-subtabs{display:flex;gap:6px}
.sales-subtab{background:none;border:1px solid var(--border);border-radius:7px;color:var(--muted);cursor:pointer;
  font-family:inherit;font-size:11px;font-weight:700;padding:6px 14px}
.sales-subtab.on{background:var(--gold2);border-color:var(--gold);color:var(--gold)}
/* Clientes Permashift es solo para admin: setters/closing no ven ni el botón ni el panel */
body.no-perma-clients .pc-only{display:none!important}
.kpi-row{display:flex;align-items:center;gap:0;padding:8px 0;border-bottom:1px solid var(--border)}
.kpi-row:last-child{border-bottom:none}
.kpi-icon{font-size:13px;margin-right:8px;flex-shrink:0}
.kpi-lbl{font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--muted);min-width:150px;flex-shrink:0}
.kpi-chain{display:flex;align-items:center;gap:6px;flex:1;flex-wrap:wrap}
.kpi-pill{background:var(--s2);border:1px solid var(--border);border-radius:6px;padding:3px 9px;display:flex;align-items:center;gap:4px}
.kpi-n{font-size:13px;font-weight:700;color:var(--con)}
.kpi-u{font-size:10px;color:var(--muted)}
.kpi-arr{color:var(--dim);font-size:11px}
.kpi-result{font-size:12px;font-weight:700;color:var(--gold);background:var(--gold2);border-radius:6px;padding:3px 10px}
/* FUNNEL (pills tipo KPI + barritas) */
.funnel-empty{text-align:center;color:var(--dim);font-size:12px;padding:20px}
.funnel-bottleneck{background:rgba(232,93,58,.08);border:1px solid rgba(232,93,58,.3);border-radius:8px;padding:8px 12px;margin-bottom:14px;font-size:12px}
.funnel-bottleneck b{color:#e85d3a}
.funnel-flow{display:flex;align-items:flex-start;flex-wrap:wrap;gap:5px}
.funnel-pill{background:var(--s2);border:1px solid var(--border);border-radius:7px;padding:7px 11px;min-width:92px}
.funnel-pill.total{background:var(--s3);border-color:var(--muted)}
.funnel-pill.bottleneck{border-color:#e85d3a;background:rgba(232,93,58,.06)}
.funnel-pill-top{display:flex;align-items:baseline;gap:5px;margin-bottom:6px;white-space:nowrap}
.funnel-pill-n{font-size:16px;font-weight:800;color:var(--con);letter-spacing:-.02em}
.funnel-pill-n.src{color:var(--biz)}
.funnel-pill-u{font-size:10px;color:var(--muted)}
.funnel-pill-bar{height:4px;background:rgba(255,255,255,.06);border-radius:3px;overflow:hidden}
.funnel-pill-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--con),#7de8f0);transition:width .5s}
.funnel-pill-fill.src{background:linear-gradient(90deg,var(--biz),var(--gold))}
.funnel-conv{display:flex;align-items:center;gap:4px;align-self:center;padding:0 1px}
.funnel-conv b{font-size:12px;font-weight:800;color:var(--gold)}
.funnel-conv b.bad{color:#e85d3a}
.funnel-conv b.good{color:var(--ok)}
.funnel-conv .ar{color:var(--dim);font-size:12px}
.funnel-plus{font-size:15px;color:var(--dim);align-self:center;padding:0 2px}
.hist-box{background:var(--s1);border:1px solid var(--border);border-radius:12px;padding:16px 18px}
.hist-box h3{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:10px}
table{width:100%;border-collapse:collapse}
th{font-size:9px;color:var(--dim);text-transform:uppercase;letter-spacing:.1em;text-align:left;padding:6px 10px;border-bottom:1px solid var(--border)}
td{padding:7px 10px;font-size:12px;border-bottom:1px solid var(--border)}
tr:last-child td{border-bottom:none}

/* SALES CALLS */
.calls-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.calls-stat{background:var(--s2);border:1px solid var(--border);border-radius:8px;padding:10px 12px}
.calls-stat-lbl{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:4px}
.calls-stat-val{font-size:20px;font-weight:800;letter-spacing:-.02em}
.calls-stat-val.b{color:var(--biz)}.calls-stat-val.g{color:var(--gold)}.calls-stat-val.ok{color:var(--ok)}
.calls-table-wrap{overflow-x:auto}
.calls-table{width:100%;border-collapse:collapse}
.calls-table th{font-size:9px;color:var(--dim);text-transform:uppercase;letter-spacing:.08em;text-align:left;padding:7px 9px;border-bottom:1px solid var(--border);white-space:nowrap}
.calls-table td{padding:8px 9px;font-size:12px;border-bottom:1px solid var(--border);vertical-align:middle}
.calls-table tr:last-child td{border-bottom:none}
.pc-sort-th{background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:3px}
.pc-sort-th:hover{color:var(--text)}
.pill-person{font-size:10px;font-weight:600;padding:2px 8px;border-radius:20px;background:var(--s3)}
.pill-person.hugo{background:rgba(232,89,58,.15);color:var(--biz)}
.pill-person.bianca{background:rgba(0,200,212,.15);color:var(--con)}
.pill-status{font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px}
.pill-status.closed{background:rgba(76,175,125,.16);color:var(--ok)}
.pill-status.open{background:rgba(255,255,255,.06);color:var(--muted)}
.pill-status.standby{background:rgba(240,165,0,.16);color:var(--gold)}
.pill-status.pending{background:rgba(141,141,240,.16);color:#8d8df0}
.pill-pay{font-size:10px;color:var(--muted)}
.call-del{background:none;border:none;color:var(--dim);cursor:pointer;font-size:13px;padding:2px 5px;border-radius:4px}
.call-del:hover{color:#e85d3a;background:rgba(232,93,58,.1)}
.call-info-cell{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.calls-empty{text-align:center;color:var(--dim);font-size:12px;padding:18px}
/* radio group in modal */
.radio-row{display:flex;gap:8px}
.radio-opt{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;background:var(--s2);border:1px solid var(--border);border-radius:7px;cursor:pointer;font-size:12px;transition:.15s;user-select:none}
.radio-opt:hover{border-color:var(--muted)}
.radio-opt.sel{border-color:var(--biz);background:rgba(232,89,58,.08);color:var(--text)}
.radio-opt.sel.con-sel{border-color:var(--con);background:rgba(0,200,212,.08)}
.radio-opt.sel.ok-sel{border-color:var(--ok);background:rgba(76,175,125,.08)}

/* BUTTONS */
.btn{padding:7px 14px;border-radius:7px;border:none;cursor:pointer;font-size:12px;font-weight:600;transition:.15s;font-family:inherit}
.btn:hover{opacity:.82}
.btn-p{background:var(--biz);color:#fff}
.btn-s{background:var(--s2);color:var(--text);border:1px solid var(--border)}
.btn-del{background:none;border:none;color:#e85d3a;font-size:12px;text-decoration:underline;cursor:pointer;font-family:inherit;margin-right:auto}

/* MODAL */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.82);display:none;align-items:center;justify-content:center;z-index:600}
.overlay.on{display:flex}
.modal{background:var(--s1);border:1px solid var(--border);border-radius:16px;padding:22px 24px;width:500px;max-width:94vw;max-height:88vh;overflow-y:auto}
.modal h3{font-size:15px;font-weight:700;margin-bottom:16px}
.field{margin-bottom:11px}
.field label{display:block;font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px}
.field input,.field select,.field textarea{width:100%;background:var(--s2);border:1px solid var(--border);border-radius:7px;padding:7px 10px;color:var(--text);font-size:13px;outline:none;font-family:inherit}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--biz)}
.field textarea{resize:vertical}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.modal-foot{display:flex;align-items:center;gap:8px;margin-top:14px;border-top:1px solid var(--border);padding-top:12px}
.mfr{margin-left:auto;display:flex;gap:8px}
.divider{height:1px;background:var(--border);margin:10px 0}
.modal-task-list{display:flex;flex-direction:column;gap:5px;margin-bottom:6px}
.modal-task-row{display:flex;align-items:center;gap:7px}
.modal-task-row input[type=checkbox]{width:14px;height:14px;flex-shrink:0;cursor:pointer;accent-color:var(--ok)}
.modal-task-row input[type=text]{flex:1;background:var(--s2);border:1px solid var(--border);border-radius:6px;padding:5px 8px;color:var(--text);font-size:12px;outline:none;font-family:inherit}
.modal-task-row input[type=text]:focus{border-color:var(--biz)}
.del-task{width:18px;height:18px;border:none;background:transparent;color:var(--dim);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:3px}
.del-task:hover{color:#e85d3a}

/* ── VISION OVERLAY ── */
.ep-vis-section{padding:0 20px;margin-bottom:0}
/* Vision toggle — pure CSS, no JS click issues */
.ep-vis-chk{display:none}
.ep-vis-toggle-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:20px;font-size:11px;color:rgba(255,255,255,.5);cursor:pointer;transition:.2s;margin:8px 0;user-select:none}
.ep-vis-toggle-btn:hover{background:rgba(255,255,255,.1);color:rgba(255,255,255,.8)}
.ep-vis-toggle-btn.con-style{border-color:rgba(0,200,212,.25);color:rgba(0,200,212,.5)}
.ep-vis-toggle-btn.con-style:hover{background:rgba(0,200,212,.08);color:rgba(0,200,212,.8)}
.ep-vision-rect{display:none;margin:0 20px 14px;background:rgba(0,0,0,.65);border:1px solid rgba(255,255,255,.08);border-radius:10px;overflow:hidden}
.ep-vis-chk:checked~.ep-vision-rect{display:block}
.ep-vis-chk:checked+.ep-vis-toggle-btn .ep-vis-icon::after{content:'▴'}
.ep-vis-icon::after{content:'▾'}
.ep-vision-rect textarea{width:100%;background:transparent;border:none;padding:14px 16px;color:rgba(255,255,255,.75);font-size:13px;font-family:inherit;resize:vertical;outline:none;min-height:90px;line-height:1.6}
.ep-vision-rect textarea::placeholder{color:rgba(255,255,255,.2)}

/* ── EL PLAN ── */
.plan-wrap{max-width:760px;margin:0 auto;padding-top:8px}
.plan-header{margin-bottom:24px}
.plan-title{font-size:22px;font-weight:800;letter-spacing:-.01em;margin-bottom:4px}
.plan-sub{font-size:12px;color:var(--muted)}
.plan-body{background:var(--s1);border:1px solid var(--border);border-radius:14px;padding:28px 32px;min-height:500px;font-size:14px;line-height:1.75;color:var(--text);outline:none;white-space:pre-wrap}
.plan-body:focus{border-color:var(--dim)}
.plan-body:empty::before{content:attr(data-placeholder);color:var(--dim);pointer-events:none;white-space:pre-wrap}

/* ── GRÁFICAS ── */
.graficas-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.graficas-hd h2{font-size:15px;font-weight:700}
.graficas-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.grafica-card{background:var(--s1);border:1px solid var(--border);border-radius:12px;padding:18px 20px}
.grafica-lbl{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.grafica-empty{text-align:center;padding:40px 0;font-size:12px;color:var(--dim)}

/* ── NUEVOS AJUSTES DE CONTABILIDAD Y PRESUPUESTOS ── */

/* Tarjetas de métricas iluminadas con degradados */
.met-card-income {
  background: linear-gradient(-45deg, #021a0d, #083c1e, #031e10, #0a4f27, #062d16, #021a0d);
  background-size: 400% 400%;
  border: 1px solid rgba(76, 175, 125, 0.3);
  animation: warmFlow 12s ease infinite, coolGlow 4s ease-in-out infinite alternate;
}
.met-card-expense {
  background: linear-gradient(-45deg, #1c0500, #3d1000, #1c0500, #4c1300, #240900, #1c0500);
  background-size: 400% 400%;
  border: 1px solid rgba(232, 89, 58, 0.3);
  animation: warmFlow 12s ease infinite, warmGlow 4s ease-in-out infinite alternate;
}
.met-card-net {
  background: linear-gradient(-45deg, #1c1300, #3a2500, #1c1300, #4c3000, #271a00, #1c1300);
  background-size: 400% 400%;
  border: 1px solid rgba(240, 165, 0, 0.3);
  animation: warmFlow 12s ease infinite, warmGlow 4s ease-in-out infinite alternate;
}

/* Sección de Cuentas */
.accounts-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}
.account-card {
  background: var(--s1);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
}
.account-hdr {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}
.account-title {
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--muted);
}
.account-icon {
  font-size: 11px;
}
.account-body {
  display: flex;
  align-items: baseline;
  gap: 4px;
}
.account-val-wrap {
  display: flex;
  align-items: center;
  color: var(--text);
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -.02em;
}
.account-input {
  background: transparent;
  border: none;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  font-family: inherit;
  width: 90px;
  outline: none;
  padding: 0;
  border-bottom: 1px dashed var(--dim);
}
.account-input:focus {
  border-bottom-color: var(--gold);
}
.account-req {
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
}

/* Fila 1: Dojo + Personales, compactas y del mismo tamaño */
.expenses-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
  margin-bottom: 12px;
  align-items: start;
}
.expense-col {
  background: var(--s1);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

/* Botón "+" de las cabeceras Dojo/Personales */
.btn-icon-add{
  flex-shrink:0;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--s3);border:1px solid var(--border);border-radius:6px;color:var(--muted);
  cursor:pointer;font-family:inherit;font-size:14px;line-height:1;padding:0;transition:.15s;
}
.btn-icon-add:hover{background:var(--biz);border-color:var(--biz);color:#fff}

/* ── Fila 2: Contenido a todo el ancho, misma caja que las de arriba ── */
.content-block{
  background:var(--s1);border:1px solid var(--border);border-radius:12px;
  padding:16px 18px;margin-bottom:20px;
}
.content-block-hd{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  margin-bottom:14px;padding-bottom:11px;border-bottom:1px solid var(--border);
}
.content-block-titles{display:flex;flex-direction:column;gap:2px}
.content-block-titles h3{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text)}
.content-block-sub{font-size:11px;color:var(--muted)}
.content-block-actions{display:flex;align-items:center;gap:10px}
.content-block-total{font-size:13px;font-weight:800;color:#e85d3a;font-variant-numeric:tabular-nums}
.btn-add-col{
  background:var(--s3);border:1px solid var(--border);border-radius:6px;color:var(--muted);
  cursor:pointer;font-family:inherit;font-size:10.5px;font-weight:700;padding:6px 12px;
  transition:.15s;white-space:nowrap;
}
.btn-add-col:hover{border-color:var(--biz);color:var(--biz)}

/* Columnas reales por categoría; auto-fit para que una nueva se acomode sola. */
.content-cols-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(178px,1fr));
  gap:10px;
  align-items:start;
}
.content-col{
  background:var(--s2);border:1px solid var(--border);border-radius:10px;
  display:flex;flex-direction:column;min-width:0;overflow:hidden;
}
/* Franja superior con el color de la columna: identifica sin depender de
   color-mix (que no todos los navegadores antiguos soportan). */
.content-col-hd{
  display:flex;align-items:center;gap:7px;padding:9px 10px;
  border-top:2px solid var(--col-accent,var(--biz));
  border-bottom:1px solid var(--border);
}
.content-col-name{
  flex:1;min-width:0;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;
  color:var(--col-accent,var(--biz));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.content-col-dot{width:6px;height:6px;border-radius:50%;background:var(--col-accent,var(--biz));flex-shrink:0}
.content-col-edit{
  flex-shrink:0;background:none;border:none;color:#5a5a5a;cursor:pointer;
  font-size:13px;line-height:1;padding:2px 5px;border-radius:5px;transition:.15s;
}
.content-col-edit:hover{background:var(--s3);color:var(--text)}
.content-col-list{display:flex;flex-direction:column;padding:6px;gap:5px;min-height:34px;max-height:260px;overflow-y:auto}

/* Tarjeta de gasto dentro de una columna */
.cx-item{
  background:var(--s1);border:1px solid transparent;border-radius:7px;padding:7px 8px;
  cursor:pointer;display:flex;flex-direction:column;gap:4px;transition:.15s;
}
.cx-item:hover{border-color:var(--border);background:var(--s3)}
.cx-item.is-paid{opacity:.55}
.cx-item-top{display:flex;align-items:baseline;justify-content:space-between;gap:6px}
.cx-name{font-size:11.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.cx-price{font-size:11.5px;font-weight:800;color:#e85d3a;flex-shrink:0;font-variant-numeric:tabular-nums}
.cx-usd{font-size:8px;color:var(--muted);font-weight:600}
.cx-info{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cx-item-bot{display:flex;align-items:center;justify-content:space-between;gap:6px}
.cx-badge{
  font-size:8.5px;font-weight:700;padding:2px 7px;border-radius:20px;
  background:var(--s3);color:#8a8a8a;border:1px solid transparent;white-space:nowrap;
}
.cx-badge.is-btn{cursor:pointer;font-family:inherit;transition:.15s}
.cx-badge.is-btn:hover{border-color:var(--biz);color:var(--biz)}
.cx-badge.is-paid{background:rgba(76,175,125,.14);color:var(--ok)}
.cx-del{
  background:none;border:none;color:#5a5a5a;cursor:pointer;font-size:9px;
  padding:2px 5px;border-radius:4px;opacity:0;transition:.15s;
}
.cx-item:hover .cx-del{opacity:1}
.cx-del:hover{color:#e85d3a;background:rgba(232,93,58,.12)}
.cx-empty{font-size:10.5px;color:var(--muted);text-align:center;padding:14px 0}

.content-col-add{
  margin:0 6px 6px;background:none;border:1px dashed var(--border);border-radius:7px;
  color:var(--muted);cursor:pointer;font-family:inherit;font-size:10px;font-weight:600;
  padding:6px 0;transition:.15s;
}
.content-col-add:hover{border-color:var(--col-accent,var(--biz));color:var(--col-accent,var(--biz))}
.content-col-foot{
  display:flex;align-items:baseline;justify-content:space-between;gap:6px;
  padding:8px 10px;border-top:1px solid var(--border);background:var(--s1);
}
.content-col-total{font-size:12px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.content-col-pend{font-size:9px;font-weight:700;color:var(--gold);white-space:nowrap}
.content-col-ok{font-size:9px;font-weight:700;color:var(--ok);white-space:nowrap}

/* Selector de color del modal de columna */
.swatches{display:flex;flex-wrap:wrap;gap:7px}
.swatch{
  width:26px;height:26px;border-radius:7px;border:2px solid transparent;
  cursor:pointer;padding:0;transition:.15s;
}
.swatch:hover{transform:scale(1.1)}
.swatch.on{border-color:var(--text)}
/* Swatch con selector nativo, para un color a medida */
.swatch.is-custom{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}
.swatch.is-custom::after{content:'✎';font-size:11px;color:#0c0c0c;opacity:.8}
.swatch.is-custom input{position:absolute;inset:0;opacity:0;cursor:pointer;padding:0;border:none}
.ce-color-auto{
  background:none;border:1px solid var(--border);border-radius:7px;color:var(--muted);
  cursor:pointer;font-family:inherit;font-size:10px;font-weight:600;padding:0 10px;height:26px;transition:.15s;
}
.ce-color-auto:hover{border-color:var(--biz);color:var(--biz)}
#ce-color-swatches{align-items:center}

.expense-col-hd {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 8px;
}
.expense-col-hd h3 {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--text);
}
.expense-col-hd .btn-add {
  font-size: 10px;
  padding: 2px 8px;
  border-radius: 4px;
}
.expense-list-wrap {
  flex: 1;
  overflow-y: auto;
  max-height: 240px;
  min-height: 80px;
}
.expense-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.03);
  font-size: 11px;
}
.expense-item:last-child {
  border-bottom: none;
}
.expense-item-info {
  display: flex;
  flex-direction: column;
  flex: 1;
  margin-right: 8px;
}
.expense-item-name {
  font-weight: 600;
  color: var(--text);
}
.expense-item-sub {
  font-size: 9px;
  color: var(--muted);
}
.expense-item-meta {
  display: flex;
  align-items: center;
  gap: 8px;
}
.exp-anual{font-size:8.5px;font-weight:700;color:var(--con);background:var(--con2);
  border-radius:20px;padding:1px 6px;margin-left:5px;white-space:nowrap}
.expense-item-price.is-off{opacity:.4}
.expense-item-price {
  font-weight: 700;
  color: #e85d3a;
}
.expense-chk {
  width: 14px;
  height: 14px;
  cursor: pointer;
  accent-color: var(--ok);
}
.expense-del {
  background: none;
  border: none;
  color: var(--dim);
  cursor: pointer;
  font-size: 10px;
  padding: 2px 4px;
  border-radius: 3px;
}
.expense-del:hover {
  color: #e85d3a;
  background: rgba(232, 93, 58, 0.1);
}
.expense-empty {
  text-align: center;
  color: var(--dim);
  font-size: 11px;
  padding: 20px 0;
}
.expense-col-total {
  font-size: 12px;
  font-weight: 700;
  color: #e85d3a;
  text-align: right;
  padding-top: 10px;
  border-top: 1px solid var(--border);
  margin-top: 8px;
}

/* Pestaña de Presupuestos */
.budget-hero {
  background: var(--s1);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 20px 24px;
  margin-bottom: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.budget-hero-lbl {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--muted);
  margin-bottom: 4px;
}
.budget-hero-val {
  font-size: 32px;
  font-weight: 900;
  color: var(--ok);
  letter-spacing: -.03em;
}
.budget-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.budget-card {
  background: var(--s1);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 18px;
  display: flex;
  flex-direction: column;
}
.budget-card-hd {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 12px;
}
.budget-card-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
}
.budget-card-del {
  background: none;
  border: none;
  color: var(--dim);
  cursor: pointer;
  font-size: 13px;
}
.budget-card-del:hover {
  color: #e85d3a;
}
.budget-vals {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
  font-size: 11px;
}
.budget-val-item {
  display: flex;
  flex-direction: column;
}
.budget-val-lbl {
  color: var(--muted);
  font-size: 9px;
  text-transform: uppercase;
  margin-bottom: 2px;
}
.budget-val-num {
  font-weight: 700;
  font-size: 14px;
}
.budget-val-num.gold { color: var(--gold); }
.budget-val-num.red { color: #e85d3a; }
.budget-val-num.ok { color: var(--ok); }
.budget-progress-bar {
  height: 6px;
  background: var(--s2);
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 12px;
}
.budget-progress-fill {
  height: 100%;
  border-radius: 4px;
  background: var(--gold);
  transition: width 0.3s;
}
.budget-progress-fill.over {
  background: #e85d3a;
}
.budget-progress-fill.ok {
  background: var(--ok);
}
.budget-card-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid var(--border);
}
.budget-pct {
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
}
.budget-btn-spend {
  font-size: 10px;
  padding: 4px 10px;
}

/* ═══════════ CALENDARIO DE CONTENIDO ═══════════ */
.cal-hd{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:14px}
.cal-hd h2{font-size:18px;font-weight:700}
/* Variante dentro de una .kpi-section: la cabecera se pone en versalitas
   como el resto de secciones de Métricas en vez de titular de 18px. */
.cal-hd.is-inline{margin-bottom:12px}
.cal-hd.is-inline h2{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.cal-nav{display:flex;align-items:center;gap:12px}
.cal-arrow{width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:var(--s2);color:var(--text);font-size:16px;cursor:pointer;line-height:1;transition:.15s}
.cal-arrow:hover{border-color:var(--biz);color:var(--biz)}
.cal-month{font-size:14px;font-weight:600;min-width:130px;text-align:center;text-transform:capitalize}

.cal-legend{display:flex;gap:16px;margin-bottom:12px;font-size:11px;color:var(--muted)}
.cal-lg{display:flex;align-items:center;gap:5px}
.cal-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}
.dot-reel{background:var(--biz)}
.dot-correo{background:var(--con)}
.dot-story{background:var(--gold)}

.cal-grid-wrap{background:var(--s1);border:1px solid var(--border);border-radius:14px;padding:12px;margin-bottom:30px}
.cal-week-hd{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}
.cal-week-hd span{text-align:center;font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-cell{position:relative;border:1px solid var(--border);border-radius:9px;background:var(--s2);display:flex;flex-direction:column;align-items:stretch;padding:6px;min-height:96px;text-align:left;cursor:pointer;transition:.15s}
.cal-cell:hover{border-color:var(--biz);transform:translateY(-1px)}
.cal-cell.empty{border:none;background:transparent;min-height:0;cursor:default}
.cal-cell.empty:hover{border-color:transparent;transform:none}
.cal-num{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);font-weight:500;margin-bottom:4px}
.cal-cell.has{background:var(--s1);border-color:#3a3a3a}
.cal-cell.has .cal-num{color:var(--text);font-weight:700}
.cal-its{display:flex;flex-direction:column;gap:3px;overflow:hidden}
/* Repetición en el modal de actividad */
.rep-box{background:var(--s2);border:1px solid var(--border);border-radius:9px;padding:12px 13px;margin-bottom:12px}
.rep-box .field:last-of-type{margin-bottom:0}
.rep-dows{display:flex;gap:5px}
.rep-dow{
  width:31px;height:31px;background:var(--s1);border:1px solid var(--border);border-radius:7px;
  color:var(--muted);cursor:pointer;font-family:inherit;font-size:11px;font-weight:800;transition:.15s;
}
.rep-dow:hover{border-color:var(--biz);color:var(--biz)}
.rep-dow.on{background:var(--biz);border-color:var(--biz);color:#fff}
.rep-hint{font-size:10.5px;color:var(--muted);line-height:1.5;margin-top:10px;
  background:var(--s1);border-left:2px solid var(--biz);border-radius:0 6px 6px 0;padding:7px 9px}
.rep-hint:empty{display:none}
/* Aviso de serie dentro del popup del día */
.ci-rep-nota{font-size:10.5px;color:var(--muted);margin-top:8px;padding:6px 9px;
  background:rgba(255,255,255,.03);border-radius:6px}
/* Marca de repetición en el chip del calendario */
.cal-rep{font-style:normal;opacity:.75;margin-right:3px}
.cal-it.is-rep{cursor:pointer}

.cal-it{font-size:9px;line-height:1.25;font-weight:600;padding:3px 5px;border-radius:5px;border-left:2px solid;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cal-it-reel{background:var(--biz2);color:var(--biz);border-left-color:var(--biz)}
.cal-it-correo{background:var(--con2);color:var(--con);border-left-color:var(--con)}
.cal-it-story{background:var(--gold2);color:var(--gold);border-left-color:var(--gold)}
.cal-today{border-color:var(--biz)!important;box-shadow:inset 0 0 0 1px var(--biz)}
.cal-hoy{font-size:8px;font-weight:700;letter-spacing:.06em;background:var(--biz);color:#fff;border-radius:4px;padding:1px 4px}

/* ── Lanzamiento Dojo ── */
.lanz-hd{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.lanz-hd h2{font-size:18px;font-weight:700}
.lanz-sub{font-size:11px;color:var(--muted)}
.lanz-list{display:flex;flex-direction:column;gap:8px;margin-bottom:30px}

.lanz-todo{background:var(--s1);border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:10px;padding:12px 14px}
.lanz-todo-h{font-size:12px;font-weight:700;color:var(--gold);margin-bottom:8px;text-transform:uppercase;letter-spacing:.04em}

.lanz-day{background:var(--s1);border:1px solid var(--border);border-radius:10px;overflow:hidden}
.lanz-day-hd{width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;background:none;border:none;color:var(--text);cursor:pointer;font-family:inherit;text-align:left}
.lanz-day-hd:hover{background:var(--s2)}
.lanz-day-when{font-size:13px;font-weight:700;min-width:80px}
.lanz-day-kinds{display:flex;align-items:center;gap:6px;flex:1;color:var(--muted);font-size:11px}
.lanz-day-kinds-txt{margin-left:2px}
.lanz-day-chev{font-size:12px;color:var(--muted);transition:transform .2s}
.lanz-day.open .lanz-day-chev{transform:rotate(180deg)}
.lanz-day-body{display:none;padding:0 14px 14px;flex-direction:column;gap:10px}
.lanz-day.open .lanz-day-body{display:flex}

/* ── Item de contenido (reel/correo/story) — popup y toggle ── */
.ci{background:var(--s2);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:8px;padding:10px 12px}
.ci-reel{border-left-color:var(--biz)}
.ci-correo{border-left-color:var(--con)}
.ci-story{border-left-color:var(--gold)}
.ci-hd{display:flex;align-items:center;gap:8px;margin-bottom:5px;flex-wrap:wrap}
.ci-kind{font-size:9px;font-weight:700;letter-spacing:.08em;padding:2px 7px;border-radius:5px}
.ci-reel .ci-kind{background:var(--biz2);color:var(--biz)}
.ci-correo .ci-kind{background:var(--con2);color:var(--con)}
.ci-story .ci-kind{background:var(--gold2);color:var(--gold)}
.ci-tag{font-size:10px;color:var(--muted);font-weight:600}
.ci-flot{font-size:9px;color:var(--gold);border:1px solid var(--gold);border-radius:4px;padding:1px 5px;font-weight:600}
.ci-title{font-size:13px;font-weight:600;line-height:1.4}
.ci-points{margin:8px 0 0;padding-left:16px;display:flex;flex-direction:column;gap:5px}
.ci-points li{font-size:11.5px;color:var(--muted);line-height:1.5}

/* ── Popup día ── */
.cal-modal{width:560px}
.cal-modal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.cal-modal-hd h3{margin:0;font-size:16px;text-transform:capitalize}
.cal-modal-x{background:none;border:none;color:var(--muted);font-size:15px;cursor:pointer;padding:4px}
.cal-modal-x:hover{color:var(--text)}
#cal-modal-body{display:flex;flex-direction:column;gap:10px}

/* ── Dolor de la semana + las 7 categorías ── */
#dolor-banner{margin-bottom:18px}
.dolor-banner-inner{
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  background:var(--s1);border:1px solid var(--border);border-left:4px solid var(--dolor);
  border-radius:12px;padding:16px 18px;
}
.dolor-banner-main{display:flex;flex-direction:column;gap:4px;min-width:0}
.dolor-banner-kicker{
  font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.16em;color:var(--dolor);
}
.dolor-banner-quote{font-size:19px;font-weight:800;line-height:1.25;letter-spacing:-.01em;color:var(--text)}
.dolor-banner-quote.is-empty{color:var(--muted);font-weight:600}
.dolor-banner-name{font-size:11.5px;color:var(--muted)}
.dolor-banner-esp{
  font-size:12.5px;color:var(--dolor);font-weight:600;line-height:1.45;margin-top:5px;
  padding-top:7px;border-top:1px solid var(--border);max-width:62ch;
}
.dolor-banner-esp.is-empty{color:var(--muted);font-weight:500}
.dolor-banner-sel{display:flex;flex-direction:column;gap:7px;flex-shrink:0;min-width:210px}
.dolor-banner-select.is-esp{font-size:11px;color:var(--muted)}
/* Marcar un específico como el de la semana */
.dolor-sem-btn{
  background:none;border:none;color:#4a4a4a;cursor:pointer;font-size:12px;line-height:1;
  padding:3px 5px;border-radius:5px;opacity:0;transition:.15s;flex-shrink:0;
}
.dolor-check:hover .dolor-sem-btn{opacity:1}
.dolor-sem-btn:hover{color:var(--dolor);background:rgba(255,255,255,.05)}
.dolor-sem-btn.on{opacity:1;color:var(--dolor)}
.dolor-check.is-sem{background:rgba(255,255,255,.045);box-shadow:inset 2px 0 0 0 var(--dolor)}
.dolor-esp-tag{color:var(--dolor);font-size:11px;flex-shrink:0}

.dolor-banner-select{
  flex-shrink:0;background:var(--s2);border:1px solid var(--border);border-radius:7px;color:var(--text);
  font-family:inherit;font-size:11.5px;padding:8px 11px;outline:none;cursor:pointer;transition:border-color .15s;
}
.dolor-banner-select:focus{border-color:var(--dolor)}

.dolores-list{display:flex;flex-direction:column;gap:6px}
.dolor-item{background:var(--s2);border:1px solid var(--border);border-radius:9px;overflow:hidden;transition:.15s}
.dolor-item.open{border-color:#3a3a3a}
.dolor-item.is-week{border-left:3px solid var(--dolor)}
.dolor-hd{display:flex;align-items:center;gap:11px;padding:11px 13px;cursor:pointer;transition:background .15s}
.dolor-hd:hover{background:var(--s3)}
.dolor-item.open .dolor-hd{border-bottom:1px solid var(--border)}
.dolor-num{
  flex-shrink:0;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--dolor);color:#0c0c0c;border-radius:6px;font-size:10.5px;font-weight:900;
}
.dolor-hd-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.dolor-quote{font-size:12.5px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dolor-name{font-size:10.5px;color:var(--muted)}
.dolor-week-tag{
  flex-shrink:0;font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;
  background:var(--dolor);color:#0c0c0c;border-radius:20px;padding:3px 9px;white-space:nowrap;
}
.dolor-count{
  flex-shrink:0;font-size:10px;font-weight:700;color:#8a8a8a;background:var(--s3);
  border-radius:20px;padding:3px 9px;font-variant-numeric:tabular-nums;
}
.dolor-chev{font-size:11px;color:var(--muted);transition:transform .2s;flex-shrink:0}
.dolor-item.open .dolor-chev{transform:rotate(180deg)}

.dolor-body{display:none;padding:12px 14px 14px}
.dolor-item.open .dolor-body{display:block}
.dolor-desc{font-size:11.5px;color:var(--muted);line-height:1.6;margin-bottom:12px;max-width:70ch}
.dolor-desc b{color:var(--text);font-weight:700}
.dolor-group-h{
  font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--dolor);
  margin:14px 0 7px;padding-bottom:5px;border-bottom:1px solid var(--border);
}
.dolor-group-h:first-child{margin-top:0}
.dolor-checks{display:flex;flex-direction:column;gap:1px}
.dolor-check{
  display:flex;align-items:flex-start;gap:9px;padding:6px 8px;border-radius:6px;
  cursor:pointer;transition:background .15s;
}
.dolor-check:hover{background:var(--s3)}
.dolor-check input{
  flex-shrink:0;width:14px;height:14px;margin-top:1px;cursor:pointer;accent-color:var(--dolor);
}
.dolor-check span{font-size:11.5px;line-height:1.55;color:var(--text)}
.dolor-check span b{font-weight:700}
.dolor-check.is-done span{color:var(--muted);text-decoration:line-through}
.dolor-check.is-done .dolor-new{opacity:.5}
.dolor-new{
  display:inline-block;font-style:normal;font-size:8px;font-weight:800;text-transform:uppercase;
  letter-spacing:.07em;background:var(--s3);color:#8a8a8a;border-radius:4px;
  padding:1px 5px;margin-right:6px;vertical-align:1px;
}
/* Edición de un troncal: frase, nombre corto y descripción */
.dolor-edit{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:9px}
.dolor-field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:180px}
.dolor-field span{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.dolor-field input,.dolor-desc-inp{
  background:var(--s1);border:1px solid var(--border);border-radius:7px;color:var(--text);
  font-family:inherit;font-size:12px;padding:7px 9px;outline:none;transition:border-color .15s;width:100%;
}
.dolor-desc-inp{margin-bottom:11px;line-height:1.55;resize:vertical}
.dolor-field input:focus,.dolor-desc-inp:focus{border-color:var(--dolor)}
.dolor-desc-inp::placeholder,.dolor-field input::placeholder{color:#555}

/* Específico en modo edición + botón de borrar por línea */
.dolor-check{position:relative}
.dolor-check span{cursor:text}
.dolor-check .row-del{opacity:0;transition:opacity .15s;margin-left:auto;flex-shrink:0}
.dolor-check:hover .row-del{opacity:1}
.dolor-check.is-editing{padding:2px 0}
.dolor-item-inp{
  width:100%;background:var(--s1);border:1px solid var(--dolor);border-radius:6px;color:var(--text);
  font-family:inherit;font-size:11.5px;padding:7px 9px;outline:none;
}
/* Alta de específicos y de troncales */
.dolor-add{display:flex;gap:6px;margin-top:8px;padding-top:9px;border-top:1px dashed var(--border)}
.dolor-add input{
  flex:1;min-width:0;background:var(--s1);border:1px solid var(--border);border-radius:6px;color:var(--text);
  font-family:inherit;font-size:11px;padding:7px 10px;outline:none;transition:border-color .15s;
}
.dolor-add input::placeholder{color:#555}
.dolor-add input:focus{border-color:var(--dolor)}
.dolor-add-btn{
  flex-shrink:0;background:var(--s3);border:1px solid var(--border);border-radius:6px;color:var(--muted);
  cursor:pointer;font-family:inherit;font-size:10px;font-weight:700;padding:6px 12px;transition:.15s;
}
.dolor-add-btn:hover{border-color:var(--dolor);color:var(--dolor)}
.dolor-add-troncal{display:flex;gap:8px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.dolor-add-troncal input{
  flex:1;min-width:0;background:var(--s2);border:1px solid var(--border);border-radius:7px;color:var(--text);
  font-family:inherit;font-size:12px;padding:9px 11px;outline:none;transition:border-color .15s;
}
.dolor-add-troncal input::placeholder{color:#555}
.dolor-add-troncal input:focus{border-color:var(--biz)}
.dolor-body-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px}
.dolor-del-troncal{
  background:none;border:1px solid var(--border);border-radius:7px;color:var(--muted);cursor:pointer;
  font-family:inherit;font-size:10px;font-weight:600;padding:7px 12px;transition:.15s;margin-left:auto;
}
.dolor-del-troncal:hover{border-color:#e85d3a;color:#e85d3a;background:rgba(232,93,58,.08)}

/* Agarre de las filas de Next to-do */
.ct-grip{color:#4a4a4a;font-size:12px;letter-spacing:-1px;margin-right:7px;cursor:grab}
.canal-table tbody tr:hover .ct-grip{color:var(--biz)}
.canal-table tbody tr.dragging{opacity:.35}
.canal-table tbody tr.drag-over td{box-shadow:inset 0 2px 0 0 var(--biz)}

.dolor-pick{
  margin-top:12px;background:none;border:1px dashed var(--border);border-radius:7px;color:var(--muted);
  cursor:pointer;font-family:inherit;font-size:10.5px;font-weight:600;padding:7px 13px;transition:.15s;
}
.dolor-pick:hover{border-color:var(--dolor);color:var(--dolor)}

/* ── Ajustes de anidamiento dentro de las tarjetas de Contenido ──
   Regla del sistema: la tarjeta es --s1, lo que va DENTRO es --s2, y lo que
   va dentro de eso no vuelve a --s1 (si no, se pierde la jerarquía y todo
   parece plano y sucio). Aquí se neutralizan los bloques que traían su
   propio fondo de cuando vivían sueltos en la página. */
.csec .cal-grid-wrap{background:none;border:none;border-radius:0;padding:0;margin-bottom:0}
.csec .cal-cell{background:var(--s2)}
.csec .cal-cell.has{background:var(--s3);border-color:#3a3a3a}
.csec .cal-legend{margin-bottom:14px}
.csec-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.csec-actions .cal-nav{gap:8px}
.csec-actions .cal-month{font-size:12.5px;min-width:106px}
.csec-actions .cal-arrow{width:26px;height:26px;font-size:14px}
/* Dentro de una sesión abierta del temario el bloque no vuelve a --s1 */
.tm-item .tm-block{background:rgba(0,0,0,.22);border-color:#2a2a2a}
.tm-item .tm-row-inp,.tm-item .tm-asig,.tm-item .tm-add input,.tm-item .tm-date{background:var(--s2)}

/* ── Canales ── */
.canal-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.canal-tab{
  background:var(--s2);border:1px solid var(--border);border-radius:8px;color:var(--muted);
  cursor:pointer;font-family:inherit;font-size:11.5px;font-weight:700;padding:7px 14px;
  transition:.15s;display:inline-flex;align-items:center;gap:7px;
}
.canal-tab:hover{color:var(--text);border-color:#3a3a3a}
.canal-tab.on{background:var(--biz);border-color:var(--biz);color:#fff}
.canal-tab-n{
  font-size:9px;font-weight:800;background:rgba(255,255,255,.16);border-radius:20px;
  padding:1px 6px;font-variant-numeric:tabular-nums;
}
.canal-tab:not(.on) .canal-tab-n{background:var(--s3);color:#8a8a8a}

/* Toggle de estrategia por canal */
.estrat-box{background:var(--s2);border:1px solid var(--border);border-radius:9px;margin-bottom:14px;overflow:hidden}
.estrat-box.open{border-color:#3a3a3a}
.estrat-hd{
  width:100%;display:flex;align-items:center;gap:9px;background:none;border:none;
  color:var(--text);cursor:pointer;font-family:inherit;padding:10px 13px;text-align:left;transition:background .15s;
}
.estrat-hd:hover{background:var(--s3)}
.estrat-chev{color:var(--muted);font-size:10px;transition:transform .15s;display:inline-block}
.estrat-box.open .estrat-chev{transform:rotate(90deg)}
.estrat-t{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.11em}
.estrat-dot{width:6px;height:6px;border-radius:50%;background:var(--biz)}
/* Dos columnas: tareas a la izquierda, notas a la derecha */
.estrat-body{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;
  padding:13px;border-top:1px solid var(--border);background:var(--s1);
}
@media (max-width:820px){ .estrat-body{grid-template-columns:1fr} }
.estrat-col{display:flex;flex-direction:column;min-width:0}
.estrat-col-h{
  font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);
  margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border);
}
.est-list{display:flex;flex-direction:column;gap:1px;flex:1}
.est-row{display:flex;align-items:center;gap:8px;padding:4px 5px;border-radius:6px;transition:background .12s}
.est-row:hover{background:var(--s3)}
.est-row.is-done .est-inp{text-decoration:line-through;color:var(--muted)}
.est-inp{
  flex:1;min-width:0;background:none;border:1px solid transparent;border-radius:6px;color:var(--text);
  font-family:inherit;font-size:12px;padding:5px 7px;outline:none;transition:.15s;
}
.est-inp:hover{border-color:var(--border);background:var(--s2)}
.est-inp:focus{border-color:var(--biz);background:var(--s2)}
.est-row .row-del{opacity:0;transition:opacity .15s}
.est-row:hover .row-del{opacity:1}
.estrat-add{display:flex;gap:6px;margin-top:9px;padding-top:9px;border-top:1px dashed var(--border)}
.estrat-add input{
  flex:1;min-width:0;background:var(--s2);border:1px solid var(--border);border-radius:6px;color:var(--text);
  font-family:inherit;font-size:11.5px;padding:7px 10px;outline:none;transition:border-color .15s;
}
.estrat-add input::placeholder{color:#555}
.estrat-add input:focus{border-color:var(--biz)}
.estrat-ta{
  width:100%;flex:1;min-height:190px;background:var(--s2);border:1px solid var(--border);border-radius:7px;
  color:var(--text);font-family:inherit;font-size:12.5px;line-height:1.7;padding:10px 11px;
  outline:none;resize:vertical;display:block;transition:border-color .15s;
}
.estrat-ta:focus{border-color:var(--biz)}
.estrat-ta::placeholder{color:#555}

.canal-body{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:14px;align-items:start}
.canal-body.is-single{grid-template-columns:minmax(0,1fr)}
/* Apilado: Next to-do arriba y Banco debajo, cada uno a todo el ancho. Lo usa
   el canal con tablero, que necesita el ancho entero para sus columnas. */
.canal-body.is-stack{grid-template-columns:minmax(0,1fr)}
/* Stories: columna de estrategia estrecha + banco de ideas ancho */
.canal-body.is-strat{grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr)}
@media (max-width:960px){ .canal-body.is-strat{grid-template-columns:1fr} }

/* Lista de pilares (STRAT) */
.st-list{display:flex;flex-direction:column;gap:1px;margin-bottom:4px}
.st-row{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:6px;transition:background .12s}
.st-row:hover{background:var(--s3)}
.st-row.is-done .st-inp{text-decoration:line-through;color:var(--muted)}
.st-inp{
  flex:1;min-width:0;background:none;border:1px solid transparent;border-radius:6px;
  color:var(--text);font-family:inherit;font-size:12px;padding:5px 7px;outline:none;transition:.15s;
}
.st-inp:hover{border-color:var(--border);background:var(--s2)}
.st-inp:focus{border-color:var(--biz);background:var(--s2)}
.st-row .row-del{opacity:0;transition:opacity .15s}
.st-row:hover .row-del{opacity:1}
/* Nota de ritmo, al pie de la columna */
.st-nota{
  display:flex;align-items:center;gap:9px;margin-top:12px;padding:10px 12px;
  background:var(--s2);border:1px solid var(--border);border-radius:9px;
}
.st-nota-ico{font-size:13px;line-height:1;flex-shrink:0}
.st-nota input{
  flex:1;min-width:0;background:none;border:none;color:var(--text);
  font-family:inherit;font-size:12px;padding:0;outline:none;
}
.st-nota input::placeholder{color:#555}
@media (max-width:960px){ .canal-body{grid-template-columns:1fr} }
/* La columna NO es una tarjeta: sería caja dentro de caja dentro de caja.
   Es una columna con su cabecera subrayada; las tarjetas son las fichas. */
.canal-col{min-width:0}
.canal-body:not(.is-single) .canal-col + .canal-col{
  border-left:1px solid var(--border);padding-left:14px;
}
.canal-col-hd{
  display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:11px;
  padding-bottom:9px;border-bottom:1px solid var(--border);
}
.canal-col-hd h4{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text)}
.canal-col-hd-r{display:flex;align-items:center;gap:7px;flex-shrink:0}
/* Botón de archivo de completadas */
.canal-hist{
  background:var(--s3);border:1px solid var(--border);border-radius:6px;color:var(--muted);
  cursor:pointer;font-family:inherit;font-size:11px;padding:4px 9px;transition:.15s;
  display:inline-flex;align-items:center;gap:5px;white-space:nowrap;
}
.canal-hist:hover{border-color:var(--biz);color:var(--biz)}
.canal-hist.on{border-color:var(--biz);color:var(--biz)}
.canal-hist b{font-size:9px;font-weight:800;font-variant-numeric:tabular-nums}
/* Botón de completar en la fila */
.ct-acc{display:flex;align-items:center;gap:2px;white-space:nowrap}
.ct-back{
  background:none;border:none;color:#5a5a5a;cursor:pointer;font-size:11px;line-height:1;
  padding:4px 6px;border-radius:5px;transition:.15s;
}
.ct-back:hover{color:var(--con);background:rgba(0,200,212,.14)}
.ct-done{
  background:none;border:none;color:#5a5a5a;cursor:pointer;font-size:12px;line-height:1;
  padding:4px 6px;border-radius:5px;transition:.15s;
}
.ct-done:hover{color:var(--ok);background:rgba(76,175,125,.14)}
/* Tarjetas del archivo */
.ci-card.is-hecha{opacity:.72;cursor:pointer}
.ci-card.is-hecha:hover{opacity:1}
.ci-check{color:var(--ok);font-size:11px;flex-shrink:0;font-weight:800}
.ci-fecha{font-size:9.5px;color:var(--muted);flex-shrink:0;font-variant-numeric:tabular-nums}
.ci-hecha-acc{display:flex;gap:8px;margin:8px 0 0 19px}
.ci-hecha-acc button{
  background:none;border:none;color:var(--muted);cursor:pointer;font-family:inherit;
  font-size:10px;font-weight:600;padding:0;transition:color .15s;
}
.ci-hecha-acc button:hover{color:var(--biz)}
.ci-hecha-acc button.is-del:hover{color:#e85d3a}
/* Estrategia: conmutador y vista */
.estrat-n{font-size:9px;font-weight:800;background:var(--s3);color:#8a8a8a;border-radius:20px;
  padding:2px 7px;font-variant-numeric:tabular-nums}

.canal-col-hint{font-size:9.5px;color:var(--muted)}
.canal-col-n{font-size:9px;font-weight:800;background:var(--s3);color:#8a8a8a;
  border-radius:20px;padding:2px 7px;margin-left:4px;font-variant-numeric:tabular-nums}
.ci-more{
  width:100%;margin-top:8px;background:none;border:1px dashed var(--border);border-radius:8px;
  color:var(--muted);cursor:pointer;font-family:inherit;font-size:11px;font-weight:600;
  padding:8px 0;transition:.15s;
}
.ci-more:hover{border-color:var(--biz);color:var(--biz)}
.canal-addcol{
  background:var(--s3);border:1px solid var(--border);border-radius:6px;color:var(--muted);
  cursor:pointer;font-family:inherit;font-size:10px;font-weight:700;padding:5px 10px;transition:.15s;
}
.canal-addcol:hover{border-color:var(--biz);color:var(--biz)}

/* Zona de la tabla: también es donde se sueltan las ideas */
.canal-todo-drop{border:1px dashed transparent;border-radius:9px;transition:.15s;padding:2px}
.canal-todo-drop.drag-over{border-color:var(--biz);background:rgba(232,89,58,.06)}
.canal-table th{padding:6px 8px}
.canal-table td{padding:5px 8px;font-size:11.5px}
.canal-table tbody tr{cursor:pointer;transition:background .12s}
.canal-table tbody tr:hover{background:var(--s3)}
.ct-title{font-weight:600;color:var(--text)}
.ct-doc{margin-left:6px;font-size:10px;color:var(--con)}
.ct-empty{color:var(--muted);font-size:11px;padding:16px 8px;text-align:center}
.ct-colbtn{
  background:none;border:none;color:var(--muted);cursor:pointer;font-family:inherit;
  font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:0;
  display:inline-flex;align-items:center;gap:5px;transition:color .15s;
}
.ct-colbtn:hover{color:var(--biz)}
.ct-colbtn em{font-style:normal;font-size:7.5px;background:var(--s3);color:#8a8a8a;border-radius:3px;padding:1px 4px;letter-spacing:0}
.ct-sel,.ct-inp{
  width:100%;min-width:78px;background:var(--s2);border:1px solid transparent;border-radius:5px;
  color:var(--text);font-family:inherit;font-size:11px;padding:4px 6px;outline:none;transition:.15s;
}
.ct-sel:hover,.ct-inp:hover{border-color:var(--border)}
.ct-sel:focus,.ct-inp:focus{border-color:var(--biz)}

.canal-add{display:flex;gap:6px;margin-top:9px}
.canal-add input{
  flex:1;min-width:0;background:var(--s2);border:1px solid var(--border);border-radius:6px;
  color:var(--text);font-family:inherit;font-size:11.5px;padding:7px 10px;outline:none;transition:border-color .15s;
}
.canal-add input::placeholder{color:#555}
.canal-add input:focus{border-color:var(--biz)}
.canal-add-btn{
  flex-shrink:0;background:var(--s3);border:1px solid var(--border);border-radius:6px;color:var(--muted);
  cursor:pointer;font-family:inherit;font-size:10.5px;font-weight:700;padding:7px 13px;transition:.15s;
}
.canal-add-btn:hover{border-color:var(--biz);color:var(--biz)}

/* Tarjetas del banco de ideas */
.ci-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.ci-card{
  background:var(--s2);border:1px solid var(--border);border-radius:8px;padding:9px 10px;
  cursor:pointer;transition:.15s;
}
.ci-card:hover{background:var(--s3);border-color:#3a3a3a}
.ci-card.dragging{opacity:.35}
.ci-card.drag-over{box-shadow:inset 0 2px 0 0 var(--biz);border-color:var(--biz)}
.ci-card-top{display:flex;align-items:center;gap:8px}
.ci-grip{color:#4a4a4a;font-size:12px;line-height:1;letter-spacing:-1px;flex-shrink:0;cursor:grab}
.ci-card:hover .ci-grip{color:var(--biz)}
.ci-card-title{flex:1;min-width:0;font-size:11.5px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ci-chips{display:flex;flex-wrap:wrap;gap:5px;margin:7px 0 0 20px}
/* El color lo pone el JS según el valor (ver chipColor en canales.js);
   aquí solo la forma. .is-soft es la etiqueta neutra del texto libre. */
.ci-chip{font-size:9px;font-weight:700;background:var(--s3);color:#8a8a8a;
  border:1px solid transparent;border-radius:20px;padding:2px 8px;white-space:nowrap}
.ci-chip.is-soft{background:none;border-color:var(--border);color:var(--muted);font-weight:600}
.ci-tolist{
  margin:8px 0 0 20px;background:none;border:none;color:var(--muted);cursor:pointer;
  font-family:inherit;font-size:10px;font-weight:600;padding:0;transition:color .15s;
}
.ci-tolist:hover{color:var(--biz)}

/* ── Editor de guion a pantalla completa ── */
.canal-editor{
  display:none;position:fixed;inset:0;z-index:900;background:var(--bg);
  flex-direction:column;
}
.canal-editor.on{display:flex}
.gu-top{
  display:flex;align-items:center;gap:14px;padding:12px 22px;border-bottom:1px solid var(--border);
  background:rgba(12,12,12,.97);backdrop-filter:blur(12px);flex-shrink:0;
}
.gu-back{
  background:var(--s2);border:1px solid var(--border);border-radius:7px;color:var(--text);
  cursor:pointer;font-family:inherit;font-size:11.5px;font-weight:600;padding:7px 13px;transition:.15s;
}
.gu-back:hover{border-color:var(--biz);color:var(--biz)}
.gu-crumb{flex:1;font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gu-top-actions{display:flex;gap:8px;flex-shrink:0}
.gu-del{
  background:none;border:1px solid var(--border);border-radius:7px;color:var(--muted);
  cursor:pointer;font-family:inherit;font-size:11px;font-weight:600;padding:7px 13px;transition:.15s;
}
.gu-del:hover{border-color:#e85d3a;color:#e85d3a;background:rgba(232,93,58,.08)}
.gu-tolist{
  background:var(--biz);border:none;border-radius:7px;color:#fff;cursor:pointer;
  font-family:inherit;font-size:11px;font-weight:600;padding:7px 13px;transition:.15s;
}
.gu-tolist:hover{opacity:.85}
.gu-scroll{flex:1;overflow-y:auto}
.gu-doc{max-width:780px;margin:0 auto;padding:40px 24px 90px;display:flex;flex-direction:column;gap:20px}
.gu-title{
  background:none;border:none;color:var(--text);font-family:inherit;font-size:32px;font-weight:800;
  letter-spacing:-.02em;padding:0;outline:none;width:100%;
}
.gu-title::placeholder{color:#3a3a3a}
.gu-fields{display:flex;flex-wrap:wrap;gap:12px}
.gu-fields:empty{display:none}
.gu-field{display:flex;flex-direction:column;gap:5px;min-width:150px}
.gu-field.is-wide{flex:1;min-width:240px}
.gu-field span{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.gu-field input,.gu-field select{
  background:var(--s1);border:1px solid var(--border);border-radius:7px;color:var(--text);
  font-family:inherit;font-size:12px;padding:8px 10px;outline:none;transition:border-color .15s;
}
.gu-field input:focus,.gu-field select:focus{border-color:var(--biz)}
/* Imágenes de la ficha */
.gu-imgs{display:flex;flex-wrap:wrap;gap:10px}
.gu-imgs:empty{display:none}
.gu-img{position:relative;width:150px;border:1px solid var(--border);border-radius:9px;overflow:hidden;background:var(--s1)}
.gu-img img{display:block;width:100%;height:106px;object-fit:cover}
.gu-img-del{
  position:absolute;top:5px;right:5px;width:22px;height:22px;border:none;border-radius:6px;
  background:rgba(12,12,12,.82);color:var(--text);cursor:pointer;font-size:11px;line-height:1;
  opacity:0;transition:.15s;
}
.gu-img:hover .gu-img-del{opacity:1}
.gu-img-del:hover{background:#e85d3a;color:#fff}
.gu-img-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.gu-img-btn{
  background:var(--s1);border:1px solid var(--border);border-radius:7px;color:var(--muted);
  cursor:pointer;font-size:11px;font-weight:600;padding:7px 13px;transition:.15s;
}
.gu-img-btn:hover{border-color:var(--biz);color:var(--biz)}
.gu-img-btn input{display:none}
.gu-img-hint{font-size:10.5px;color:#555}

/* Conmutador Escribir / Vista */
.gu-modo{display:flex;gap:3px;background:var(--s1);border:1px solid var(--border);border-radius:8px;padding:3px;align-self:flex-start}
.gu-modo button{background:none;border:none;font-family:inherit;color:var(--muted);font-size:11px;
  font-weight:700;padding:5px 13px;border-radius:6px;cursor:pointer;transition:.15s}
.gu-modo button.on{background:var(--s3);color:var(--text)}
.gu-modo button:not(.on):hover{color:var(--text)}

/* Ayuda de sintaxis, plegada */
.gu-md-help{border-top:1px solid var(--border);padding-top:12px;margin-top:-8px}
.gu-md-help summary{font-size:10.5px;color:var(--muted);cursor:pointer;list-style:none}
.gu-md-help summary::-webkit-details-marker{display:none}
.gu-md-help summary::before{content:'▸ ';color:#555}
.gu-md-help[open] summary::before{content:'▾ '}
.gu-md-help-body{font-size:11px;color:var(--muted);line-height:2;padding-top:9px}
.gu-md-help-body code,.gu-code{
  background:var(--s2);border:1px solid var(--border);border-radius:4px;
  padding:1px 6px;font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text);
}

/* Vista renderizada del guion */
.gu-preview{min-height:55vh;font-size:15px;line-height:1.75;color:var(--text)}
.gu-preview-empty{font-size:13px;color:#555;padding:24px 0}
.gu-h1{font-size:24px;font-weight:800;letter-spacing:-.01em;margin:22px 0 8px}
.gu-h2{font-size:19px;font-weight:800;margin:20px 0 7px}
.gu-h3{font-size:15.5px;font-weight:800;margin:17px 0 6px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.gu-preview>*:first-child{margin-top:0}
.gu-p{margin:0 0 11px}
.gu-ul{margin:0 0 12px;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.gu-ul li{font-size:14.5px;line-height:1.7}
.gu-hr{border:none;border-top:1px solid var(--border);margin:20px 0}
.gu-todo{display:flex;align-items:flex-start;gap:10px;padding:4px 0;cursor:pointer}
.gu-todo input{width:15px;height:15px;margin-top:4px;flex-shrink:0;cursor:pointer;accent-color:var(--ok)}
.gu-todo.is-done span{color:var(--muted);text-decoration:line-through}
.gu-toggle{background:var(--s1);border:1px solid var(--border);border-radius:9px;padding:10px 13px;margin:0 0 10px}
.gu-toggle summary{cursor:pointer;font-weight:700;font-size:14.5px;list-style:none;display:flex;align-items:center;gap:8px}
.gu-toggle summary::-webkit-details-marker{display:none}
.gu-toggle summary::before{content:'▸';color:var(--muted);font-size:11px;transition:transform .15s}
.gu-toggle[open] summary::before{content:'▾'}
.gu-toggle-body{padding:9px 0 2px 19px}
.gu-toggle-body p{margin:0 0 7px;font-size:14px;color:var(--muted)}

/* Resaltados de color */
.gu-hl{background:rgba(240,165,0,.22);color:var(--text);border-radius:3px;padding:1px 4px}
.gu-hl.is-rojo{background:rgba(232,89,58,.22)}
.gu-hl.is-dorado{background:rgba(240,165,0,.22)}
.gu-hl.is-verde{background:rgba(76,175,125,.22)}
.gu-hl.is-azul{background:rgba(0,200,212,.20)}
.gu-hl.is-morado{background:rgba(199,116,232,.22)}
.gu-hl.is-gris{background:rgba(140,140,140,.20)}

.gu-guion{
  width:100%;min-height:55vh;background:none;border:none;color:var(--text);
  font-family:inherit;font-size:15px;line-height:1.75;padding:0;outline:none;resize:vertical;
}
.gu-guion::placeholder{color:#3a3a3a}

/* ═══════════ PESTAÑA CONTENIDO ═══════════ */
/* Cada bloque es una .kpi-section como las del resto del dashboard: mismo
   fondo, borde, radio y cabecera en versalitas. Nada de estilos propios.
   NOTA: --dim es #333 — casi invisible sobre estas tarjetas. Aquí solo se usa
   para bordes; todo texto secundario va en --muted. */
.csec{
  background:var(--s1);
  border:1px solid var(--border);
  border-radius:12px;
  padding:16px 18px;
  margin-bottom:18px;
}
.csec-hd{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  margin-bottom:14px;padding-bottom:11px;border-bottom:1px solid var(--border);
}
.csec-titles{display:flex;flex-direction:column;gap:3px;min-width:0}
.csec-titles h2{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.11em;color:var(--text)}
.csec-sub{font-size:11px;color:var(--muted);line-height:1.45}
.csec-count{
  font-size:10px;color:var(--muted);font-weight:700;background:var(--s2);
  border:1px solid var(--border);border-radius:20px;padding:4px 11px;white-space:nowrap;
}
.csec-empty{
  font-size:12px;color:var(--muted);padding:22px;text-align:center;
  border:1px dashed var(--border);border-radius:10px;
}

/* Botón de acción: mismo naranja que .btn-p del dashboard */
.btn-pill{
  background:var(--biz);border:none;border-radius:7px;color:#fff;
  cursor:pointer;font-family:inherit;font-size:11px;font-weight:600;padding:7px 14px;
  white-space:nowrap;transition:.15s;flex-shrink:0;
}
.btn-pill:hover{opacity:.82}

/* Barras de alta rápida */
.ps-add,.temario-add{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.ps-add input,.temario-add input{
  background:var(--s2);border:1px solid var(--border);border-radius:7px;color:var(--text);
  font-size:12px;font-family:inherit;padding:8px 11px;outline:none;transition:border-color .15s;
}
.ps-add input::placeholder,.temario-add input::placeholder{color:#555}
.ps-add input:focus,.temario-add input:focus{border-color:var(--biz)}
/* Por CLASE, no por id: antes el ancho colgaba de #cb-new-url y al renombrar
   los campos el input se quedaba sin regla y colapsaba a nada. */
.ps-add input,.temario-add input{flex:1;min-width:220px}

/* ── Filas arrastrables (Videos por editar) ── */
.xv-list{display:flex;flex-direction:column;gap:6px}
.row-card{
  display:flex;align-items:center;gap:11px;background:var(--s2);
  border:1px solid var(--border);border-radius:9px;padding:10px 12px;
  cursor:grab;transition:.15s;
}
.row-card:hover{background:var(--s3);border-color:#333}
.row-card:active{cursor:grabbing}
.row-card.dragging{opacity:.35}
.row-card.drag-over{box-shadow:inset 0 2px 0 0 var(--biz);border-color:var(--biz)}
.row-grip{color:#4a4a4a;font-size:13px;line-height:1;letter-spacing:-1px;flex-shrink:0;transition:color .15s}
.row-card:hover .row-grip{color:var(--biz)}
.row-num{
  flex-shrink:0;min-width:21px;height:21px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--s3);color:#8a8a8a;border-radius:6px;font-size:10px;font-weight:800;
  font-variant-numeric:tabular-nums;
}
/* Los 3 primeros vídeos = lo siguiente que toca editar */
.row-card.is-next .row-num{background:var(--biz2);color:var(--biz)}
.row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;text-decoration:none;color:inherit}
.row-title{font-size:12.5px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
a.row-main:hover .row-title{color:var(--con)}
.row-meta{font-size:10px;color:var(--muted)}
.row-desc{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:3px}
.row-links a{font-size:10.5px;color:var(--con);text-decoration:none}
.row-links a:hover{text-decoration:underline}
.row-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}
.row-btn{
  background:var(--s1);border:1px solid var(--border);border-radius:6px;color:var(--muted);
  cursor:pointer;font-family:inherit;font-size:10px;font-weight:600;padding:5px 10px;transition:.15s;
}
.row-btn:hover{border-color:var(--biz);color:var(--biz)}
.row-del{
  background:none;border:none;color:#5a5a5a;cursor:pointer;font-size:11px;
  padding:5px 7px;border-radius:6px;line-height:1;flex-shrink:0;transition:.15s;
}
.row-del:hover{color:#e85d3a;background:rgba(232,93,58,.12)}

/* ── Temario: una caja abrible por sesión ── */
.tm-summary{display:flex;align-items:center;gap:9px;flex-shrink:0}
.tm-sum-bar{width:96px;height:5px;background:var(--s3);border-radius:5px;overflow:hidden}
.tm-sum-bar span{display:block;height:100%;border-radius:5px;background:var(--biz);
  transition:width .5s cubic-bezier(.16,1,.3,1)}
.tm-sum-txt{font-size:10.5px;color:var(--muted);white-space:nowrap}
.tm-sum-txt b{color:var(--text);font-weight:800;font-variant-numeric:tabular-nums}

.temario-list{display:flex;flex-direction:column;gap:6px}
.tm-item{background:var(--s2);border:1px solid var(--border);border-radius:9px;overflow:hidden;transition:.15s}
.tm-item.open{border-color:#3a3a3a}
.tm-item.is-done:not(.open){opacity:.6}
.tm-hd{display:flex;align-items:center;gap:11px;padding:10px 12px;cursor:pointer;transition:background .15s}
.tm-hd:hover{background:var(--s3)}
.tm-item.open .tm-hd{border-bottom:1px solid var(--border)}
.tm-chk{width:15px;height:15px;flex-shrink:0;cursor:pointer;accent-color:var(--ok)}
.tm-num{
  flex-shrink:0;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--s3);color:#8a8a8a;border-radius:6px;font-size:10px;font-weight:800;
  font-variant-numeric:tabular-nums;
}
.tm-item.is-done .tm-num{background:rgba(76,175,125,.16);color:var(--ok)}
.tm-hd-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.tm-title{
  width:100%;background:none;border:none;border-bottom:1px solid transparent;color:var(--text);
  font-size:12.5px;font-weight:600;font-family:inherit;padding:2px 0;outline:none;
  text-overflow:ellipsis;transition:border-color .15s;
}
.tm-title:hover{border-bottom-color:var(--border)}
.tm-title:focus{border-bottom-color:var(--biz)}
.tm-item.is-done .tm-title{text-decoration:line-through;color:var(--muted)}
.tm-hd-sub{font-size:10px;color:var(--muted)}
.tm-state{
  flex-shrink:0;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;
  padding:3px 9px;border-radius:20px;background:var(--s3);color:#8a8a8a;white-space:nowrap;
}
.tm-state.is-done{background:rgba(76,175,125,.15);color:var(--ok)}
.tm-fecha{
  flex-shrink:0;width:80px;text-align:right;font-size:10px;color:var(--muted);
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
.tm-chev{font-size:11px;color:var(--muted);transition:transform .2s;flex-shrink:0}

.tm-body{display:none;flex-direction:column;gap:11px;padding:12px}
.tm-body-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.tm-field{display:flex;flex-direction:column;gap:4px}
.tm-field span{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.tm-date{
  background:var(--s1);border:1px solid var(--border);border-radius:7px;color:var(--text);
  font-size:11.5px;font-family:inherit;padding:7px 9px;outline:none;transition:border-color .15s;
}
.tm-date:focus{border-color:var(--biz)}
.tm-del-ses{
  background:none;border:1px solid var(--border);border-radius:7px;color:var(--muted);
  cursor:pointer;font-family:inherit;font-size:10px;font-weight:600;padding:7px 12px;transition:.15s;
}
.tm-del-ses:hover{border-color:#e85d3a;color:#e85d3a;background:rgba(232,93,58,.08)}

.tm-block{background:var(--s1);border:1px solid var(--border);border-radius:8px;padding:11px 12px}
.tm-block-h{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;
  font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);
}
.tm-block-n{font-variant-numeric:tabular-nums;letter-spacing:0}
.tm-row{display:flex;align-items:center;gap:7px;padding:4px 0}
.tm-row.is-done .tm-row-inp{text-decoration:line-through;color:var(--muted)}
.tm-row-inp{
  flex:1;min-width:0;background:var(--s2);border:1px solid transparent;border-radius:6px;
  color:var(--text);font-size:11.5px;font-family:inherit;padding:6px 9px;outline:none;transition:.15s;
}
.tm-row-inp:hover{border-color:var(--border)}
.tm-row-inp:focus{border-color:var(--biz);background:var(--s3)}
.tm-asig{
  flex-shrink:0;width:110px;background:var(--s2);border:1px solid transparent;border-radius:6px;
  color:var(--text);font-size:11px;font-family:inherit;padding:6px 9px;outline:none;transition:.15s;
}
.tm-asig::placeholder{color:#555}
.tm-asig:hover{border-color:var(--border)}
.tm-asig:focus{border-color:var(--biz)}
.tm-empty{font-size:11px;color:var(--muted);padding:6px 2px}
.tm-add{display:flex;gap:6px;margin-top:8px;padding-top:9px;border-top:1px solid var(--border)}
.tm-add input{
  flex:1;min-width:0;background:var(--s2);border:1px solid var(--border);border-radius:6px;
  color:var(--text);font-size:11px;font-family:inherit;padding:7px 10px;outline:none;transition:border-color .15s;
}
.tm-add input::placeholder{color:#555}
.tm-add input:focus{border-color:var(--biz)}
.tm-add-btn{
  flex-shrink:0;background:var(--s3);border:1px solid var(--border);border-radius:6px;
  color:var(--muted);cursor:pointer;font-family:inherit;font-size:10px;font-weight:700;
  padding:6px 12px;transition:.15s;
}
.tm-add-btn:hover{border-color:var(--biz);color:var(--biz)}

@media (max-width:700px){
  .tm-fecha{display:none}
  .tm-hd{gap:8px;padding:10px}
}

/* ═══════════ TO BUY · POR PAGAR · PAGADO DOJO ═══════════ */
/* Tarjeta "Por pagar" (dorada, para que destaque de balance neto) */
.met-card-topay{
  background:linear-gradient(-45deg,#1c1400,#3d2c00,#1c1400,#4c3800,#241a00,#1c1400);
  background-size:400% 400%;
  border:1px solid rgba(240,165,0,.3);
  animation:warmFlow 12s ease infinite;
}
/* Tarjeta "Pendiente de cobrar" (cian, para distinguirla de lo que se paga) */
.met-card-pending{
  background:linear-gradient(-45deg,#001c1e,#003d42,#001c1e,#004c52,#002428,#001c1e);
  background-size:400% 400%;
  border:1px solid rgba(0,200,212,.3);
  animation:warmFlow 12s ease infinite;
}

/* Badge pagado/pendiente en gastos de Dojo */
.paid-badge{
  font-size:9px;font-weight:700;padding:2px 7px;border-radius:5px;cursor:pointer;
  border:1px solid var(--border);background:var(--s3);color:var(--muted);
  font-family:inherit;transition:.15s;white-space:nowrap
}
.paid-badge:hover{border-color:var(--gold);color:var(--gold)}
.paid-badge.is-paid{background:var(--con2);color:var(--con);border-color:rgba(0,200,212,.4)}

/* Caja TO BUY */
.tobuy-box{background:var(--s1);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:8px}
.tobuy-add{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.tobuy-add input[type=text]{flex:1;min-width:160px}
.tobuy-add input[type=number]{width:90px}
.tobuy-add input,.tobuy-add select{background:var(--s2);border:1px solid var(--border);border-radius:7px;padding:7px 9px;color:var(--text);font-size:12px;outline:none;font-family:inherit}
.tobuy-add input:focus,.tobuy-add select:focus{border-color:var(--gold)}
.tobuy-add .btn{font-size:11px;padding:6px 12px}
.tobuy-item{display:flex;align-items:center;gap:9px;padding:8px 4px;border-bottom:1px solid var(--border)}
.tobuy-item:last-child{border-bottom:none}
.tobuy-item .expense-chk{width:15px;height:15px;flex-shrink:0;cursor:pointer;accent-color:var(--gold)}
.tobuy-item-name{flex:1;font-size:12.5px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tobuy-item-price{font-size:12.5px;font-weight:700;color:var(--gold)}
.tobuy-item.is-bought .tobuy-item-name{text-decoration:line-through;color:var(--muted)}
.tobuy-item.is-bought .tobuy-item-price{color:var(--muted)}
.tobuy-item .expense-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:2px 4px}
.tobuy-item .expense-del:hover{color:var(--biz)}

/* ── Prioridad por arrastre en To Buy ── */
.tobuy-item{cursor:grab;transition:background .12s,opacity .12s}
.tobuy-item:active{cursor:grabbing}
.tobuy-grip{color:var(--dim);font-size:13px;flex-shrink:0;line-height:1;letter-spacing:-1px}
.tobuy-item:hover .tobuy-grip{color:var(--gold)}
/* Número de prioridad: 1 = lo siguiente que toca pagar */
.tobuy-num{flex-shrink:0;min-width:17px;height:17px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--gold2);color:var(--gold);border-radius:5px;font-size:9.5px;font-weight:800}
.tobuy-item.dragging{opacity:.4}
/* Línea superior marcando dónde va a caer el elemento arrastrado */
.tobuy-item.drag-over{background:rgba(240,165,0,.07);box-shadow:inset 0 2px 0 0 var(--gold)}
/* Lo ya comprado no compite por prioridad: sin agarre ni número */
.tobuy-item.is-bought{cursor:default}
.tobuy-item.is-bought .tobuy-grip{visibility:hidden}

/* ═══════════ METAS DEL MES ═══════════ */
.metas-box{background:var(--s1);border:1px solid var(--border);border-radius:12px;padding:10px 14px;margin-bottom:24px}
.metas-item{display:flex;align-items:center;gap:10px;padding:8px 2px;border-bottom:1px solid var(--border)}
.metas-item:last-of-type{border-bottom:none}
.metas-item .expense-chk{width:16px;height:16px;flex-shrink:0;cursor:pointer;accent-color:var(--ok)}
.metas-text{flex:1;font-size:13px;min-width:0}
.metas-item.is-done .metas-text{text-decoration:line-through;color:var(--muted)}
.metas-item .expense-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:2px 4px;opacity:0;transition:.15s}
.metas-item:hover .expense-del{opacity:1}
.metas-item .expense-del:hover{color:var(--biz)}
.metas-add{display:flex;gap:8px;margin-top:10px}
.metas-add input{flex:1;background:var(--s2);border:1px solid var(--border);border-radius:7px;padding:8px 10px;color:var(--text);font-size:12px;outline:none;font-family:inherit}
.metas-add input:focus{border-color:var(--biz)}
.metas-add .btn{font-size:11px;padding:6px 12px;white-space:nowrap}

/* Objetivo manual (Permashift ventas/mes) */
.obj-manual{display:flex;align-items:center;gap:7px;margin:6px 0 2px;padding:6px 8px;background:var(--s2);border:1px solid var(--border);border-radius:7px}
.obj-manual-lbl{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.obj-manual input{width:60px;background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:4px 6px;color:var(--text);font-size:13px;font-weight:700;outline:none;font-family:inherit}
.obj-manual input:focus{border-color:var(--biz)}
.obj-manual-unit{font-size:10px;color:var(--muted)}

/* ═══════════ CLIENTES PERMASHIFT ═══════════ */
.pc-summary{font-size:12px;color:var(--muted);margin-bottom:10px}
.pc-alert{display:flex;align-items:center;justify-content:space-between;gap:10px;background:rgba(240,165,0,.1);border:1px solid rgba(240,165,0,.35);border-radius:9px;padding:8px 12px;margin-bottom:7px}
.pc-alert-txt{font-size:12px;color:var(--text)}
.pc-tick{width:30px;height:30px;flex-shrink:0;border-radius:7px;border:1px solid var(--ok);background:rgba(76,175,125,.15);color:var(--ok);font-size:15px;font-weight:900;cursor:pointer;transition:.15s}
.pc-tick:hover{background:var(--ok);color:#0c0c0c}
/* filas de pago en el modal */
.pc-pay-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.pc-pay-row input[type=text]{flex:1;min-width:0}
.pc-pay-row input[type=number]{width:80px}
.pc-pay-row input[type=date]{width:135px}
.pc-pay-row input{background:var(--s2);border:1px solid var(--border);border-radius:6px;padding:6px 8px;color:var(--text);font-size:12px;outline:none;font-family:inherit}
.pc-pay-row input:focus{border-color:var(--biz)}
.pc-pay-paid{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--muted);white-space:nowrap;cursor:pointer}
.pc-pay-paid input{width:14px;height:14px;accent-color:var(--ok);cursor:pointer}
.pc-pay-row .expense-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:2px 5px}
.pc-pay-row .expense-del:hover{color:var(--biz)}

/* ═══════════ USUARIOS DOJO ═══════════ */
.du-add{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.du-add input[type=text]{flex:1;min-width:160px}
.du-add input[type=number]{width:110px}
.du-add input,.du-add select{background:var(--s2);border:1px solid var(--border);border-radius:7px;padding:7px 9px;color:var(--text);font-size:12px;outline:none;font-family:inherit}
.du-add input:focus,.du-add select:focus{border-color:var(--biz)}
.du-add .btn{font-size:11px;padding:6px 12px;white-space:nowrap}
.du-price-inp{width:80px;background:var(--s2);border:1px solid var(--border);border-radius:5px;padding:4px 6px;color:var(--text);font-size:12px;outline:none;font-family:inherit}
.du-price-inp:focus{border-color:var(--biz)}
.du-cycle-inp{background:var(--s2);border:1px solid var(--border);border-radius:5px;padding:4px 6px;color:var(--text);font-size:11px;outline:none;font-family:inherit;cursor:pointer}

/* ═══════════ META DE AHORROS ═══════════ */
.savings-goal{
  background:linear-gradient(135deg, rgba(240,165,0,.14), rgba(232,89,58,.07));
  border:1.5px solid rgba(240,165,0,.5);
  border-radius:16px;padding:16px 18px;margin-bottom:18px;
  box-shadow:0 8px 26px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.04);
}
.savings-goal-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:11px}
.savings-goal-title{font-size:14px;font-weight:800;color:var(--gold);letter-spacing:.01em}
.savings-goal-set{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.savings-goal-set input{width:110px;background:rgba(0,0,0,.25);border:1px solid rgba(240,165,0,.4);border-radius:8px;padding:6px 9px;color:var(--text);font-size:14px;font-weight:800;outline:none;font-family:inherit}
.savings-goal-set input:focus{border-color:var(--gold);box-shadow:0 0 0 2px rgba(240,165,0,.15)}
.savings-goal .bar{height:9px;border-radius:99px;background:rgba(0,0,0,.3);overflow:hidden;margin-top:2px}
.savings-goal .bar-fill.savings-bar{background:linear-gradient(90deg, var(--gold), #ff8a3d);border-radius:99px}
.savings-goal-sub{font-size:12px;color:var(--gold);font-weight:600;margin-top:9px}

/* ═══════════ MAPEO CUENTAS MERCURY ═══════════ */
.mm-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}
.mm-row:last-child{border-bottom:none}
.mm-acc{display:flex;flex-direction:column;gap:2px;min-width:0}
.mm-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mm-bal{font-size:12px;color:var(--ok);font-weight:700}
.mm-row select{background:var(--s2);border:1px solid var(--border);border-radius:7px;padding:6px 9px;color:var(--text);font-size:12px;outline:none;font-family:inherit;cursor:pointer;flex-shrink:0}
.mm-row select:focus{border-color:var(--biz)}

/* Aviso de guardado incompleto — tiene que ser imposible de ignorar */
.aviso-corte{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.88);
  display:flex;align-items:center;justify-content:center;padding:20px}
.aviso-corte-box{background:var(--s1);border:2px solid #e8593a;border-radius:14px;
  padding:24px 26px;max-width:560px;width:100%}
.aviso-corte-box h3{font-size:17px;font-weight:800;margin-bottom:14px;color:#e8593a}
.aviso-corte-box p{font-size:13px;line-height:1.65;color:var(--text);margin-bottom:11px}
.aviso-corte-box b{color:#e8593a}
.aviso-corte-fix{color:var(--muted)!important;font-size:12px!important}
.aviso-corte-box code{background:var(--s2);border-radius:4px;padding:1px 6px;font-size:11.5px}
.aviso-corte-box pre{background:var(--s2);border:1px solid var(--border);border-radius:8px;
  padding:12px 14px;font-size:12px;color:var(--gold);overflow-x:auto;margin-bottom:16px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.aviso-corte-acc{display:flex;gap:10px;flex-wrap:wrap}

/* ── Notas en markdown (temario y reunión de editores) ── */
.nota-modo{align-self:flex-start}
.nota-modo button{font-size:10px;padding:4px 11px}
.tm-notas{background:var(--s1);border:1px solid var(--border);border-radius:8px;padding:11px 12px}
.tm-notas-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.tm-notas-hd>span{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.nota-ta{
  width:100%;min-height:120px;background:var(--s2);border:1px solid var(--border);border-radius:7px;
  color:var(--text);font-family:inherit;font-size:12.5px;line-height:1.7;padding:10px 11px;
  outline:none;resize:vertical;display:block;transition:border-color .15s;
}
.nota-ta.is-grande{min-height:280px;font-size:13.5px}
.nota-ta::placeholder{color:#555}
.nota-ta:focus{border-color:var(--biz)}
.nota-view{
  background:var(--s2);border:1px solid var(--border);border-radius:7px;
  padding:12px 14px;font-size:13.5px;line-height:1.7;min-height:120px;
}
.nota-view>*:first-child{margin-top:0}
.nota-view .gu-h1{font-size:19px;margin:16px 0 7px}
.nota-view .gu-h2{font-size:16px;margin:15px 0 6px}
.nota-view .gu-h3{font-size:13px;margin:13px 0 5px}
.csec-sub code{background:var(--s2);border-radius:4px;padding:1px 5px;font-size:10.5px}

/* ── Copias de seguridad ── */
.bk-intro{font-size:11.5px;color:var(--muted);line-height:1.6;margin-bottom:12px}
.bk-resumen{font-size:10.5px;color:var(--muted);font-weight:700;margin-bottom:9px}
.bk-resumen:empty{display:none}
.bk-list{display:flex;flex-direction:column;gap:4px;max-height:46vh;overflow-y:auto;margin-bottom:14px}
.bk-cargando{font-size:12px;color:var(--muted);padding:20px;text-align:center;
  border:1px dashed var(--border);border-radius:9px}
.bk-row{display:flex;align-items:center;gap:9px;background:var(--s2);border:1px solid var(--border);
  border-radius:8px;padding:9px 11px;transition:border-color .15s}
.bk-row:hover{border-color:#3a3a3a}
.bk-cuando{flex:1;min-width:0;font-size:12px;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
.bk-cuando b{font-weight:700;font-variant-numeric:tabular-nums}
.bk-cuando span{color:var(--muted);font-variant-numeric:tabular-nums}
.bk-ultima{font-style:normal;font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;
  background:rgba(76,175,125,.16);color:var(--ok);border-radius:20px;padding:2px 8px}
.bk-peso{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0}
.bk-btn{background:var(--s1);border:1px solid var(--border);border-radius:6px;color:var(--muted);
  cursor:pointer;font-family:inherit;font-size:10px;font-weight:600;padding:5px 10px;transition:.15s;flex-shrink:0}
.bk-btn:hover{border-color:var(--con);color:var(--con)}
.bk-btn.is-restore:hover{border-color:var(--gold);color:var(--gold)}

/* Columna de casilla en Next to-do */
.ct-check{display:flex;align-items:center;justify-content:center}
.ct-check input{width:15px;height:15px;cursor:pointer;accent-color:var(--ok);margin:0}
.gu-field.gu-check{flex-direction:row;align-items:center;gap:9px;min-width:auto}
.gu-field.gu-check input{width:16px;height:16px;cursor:pointer;accent-color:var(--ok)}
.ci-chip.is-check{background:rgba(76,175,125,.16);color:var(--ok)}
/* Chip que se puede marcar desde la propia tarjeta del banco */
.ci-chip.is-toggle{
  border:1px solid var(--border);background:none;color:var(--muted);
  cursor:pointer;font-family:inherit;transition:.15s;
}
.ci-chip.is-toggle:hover{border-color:var(--ok);color:var(--ok)}
.ci-chip.is-toggle.is-on{background:rgba(76,175,125,.16);border-color:rgba(76,175,125,.4);color:var(--ok)}

/* Excepciones de un día dentro de una serie */
.cal-exc{font-style:normal;opacity:.85;margin-right:3px;font-size:8px}
.ce-quitar-exc{background:none;border:1px solid var(--border);border-radius:7px;color:var(--muted);
  cursor:pointer;font-family:inherit;font-size:10.5px;font-weight:600;padding:6px 11px;
  transition:.15s;margin-right:auto;margin-left:8px}
.ce-quitar-exc:hover{border-color:var(--gold);color:var(--gold)}
.ci-rep-nota b{color:var(--gold)}

/* ── Reunión editores: superficie de documento ── */
.reunion-acc{display:flex;align-items:center;gap:10px;flex-shrink:0}
.reunion-tareas{
  font-size:10px;font-weight:800;font-variant-numeric:tabular-nums;
  background:var(--s3);color:#8a8a8a;border-radius:20px;padding:3px 10px;white-space:nowrap;
}
.reunion-tareas.is-full{background:rgba(76,175,125,.18);color:var(--ok)}
/* La misma superficie escribiendo y leyendo: al cambiar de modo no "salta" */
.doc{
  width:100%;min-height:320px;background:var(--s2);border:1px solid var(--border);
  border-radius:10px;padding:20px 22px;font-family:inherit;font-size:14px;line-height:1.8;
  color:var(--text);display:block;
}
.doc-ta{outline:none;resize:vertical;transition:border-color .15s}
.doc-ta::placeholder{color:#4a4a4a;line-height:1.8}
.doc-ta:focus{border-color:var(--biz)}
.doc-view>*:first-child{margin-top:0}
.doc-view .gu-h1{font-size:21px;margin:22px 0 8px}
.doc-view .gu-h2{font-size:17px;margin:20px 0 7px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.doc-view .gu-h3{font-size:13px;margin:16px 0 6px}
.doc-view .gu-p{margin:0 0 12px}
.doc-view .gu-todo{padding:5px 0}
.doc-vacio{color:#4a4a4a;font-size:13.5px}

/* ── Temario: la fila abre el editor a pantalla completa ── */
.tm-item{cursor:pointer}
.tm-title-txt{font-size:12.5px;font-weight:600;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.tm-item.is-done .tm-title-txt{text-decoration:line-through;color:var(--muted)}
.tm-hd-sub b{color:var(--con);font-weight:700}
.tm-abrir{flex-shrink:0;font-size:10px;font-weight:700;color:var(--muted);opacity:0;transition:.15s;white-space:nowrap}
.tm-item:hover .tm-abrir{opacity:1;color:var(--biz)}
.tm-item:hover{border-color:#3a3a3a}

/* Editor de sesión */
.te-meta{display:flex;gap:10px;flex-wrap:wrap}
.te-chip{
  display:inline-flex;align-items:center;gap:8px;background:var(--s1);
  border:1px solid var(--border);border-radius:8px;padding:8px 12px;cursor:pointer;transition:.15s;
}
.te-chip:hover{border-color:#3a3a3a}
.te-chip.is-done{background:rgba(76,175,125,.1);border-color:rgba(76,175,125,.35)}
.te-chip input[type=checkbox]{width:15px;height:15px;cursor:pointer;accent-color:var(--ok)}
.te-chip>span{font-size:12px;font-weight:600}
.te-chip.is-done>span{color:var(--ok)}
.te-chip-lbl{font-size:9px!important;font-weight:800!important;text-transform:uppercase;
  letter-spacing:.1em;color:var(--muted)}
.te-chip input[type=date]{background:none;border:none;color:var(--text);font-family:inherit;
  font-size:12px;outline:none;padding:0}
.te-bloque{background:var(--s1);border:1px solid var(--border);border-radius:10px;padding:14px 16px}
.te-bloque-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;
  font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.te-n{font-variant-numeric:tabular-nums}
.te-bloque .tm-row-inp,.te-bloque .tm-asig{background:var(--s2)}
.te-bloque .tm-add input{background:var(--s2)}

/* ── Calendario: pestañas Subidas / Entregas ── */
.cal-tabs{display:inline-flex;background:var(--s2);border:1px solid var(--border);
  border-radius:8px;padding:2px;gap:2px}
.cal-tabs button{
  background:none;border:none;border-radius:6px;color:var(--muted);cursor:pointer;
  font-family:inherit;font-size:10.5px;font-weight:700;padding:5px 13px;transition:.15s;
}
.cal-tabs button:hover{color:var(--text)}
.cal-tabs button.on{background:var(--s3);color:var(--text)}
/* Una entrega pesa más que una subida: se marca con ▸ y un borde más grueso */
.cal-it.is-entrega{border-left-width:3px;font-weight:700}
.cal-kind{font-style:normal;font-size:8px;opacity:.9;margin-right:2px}
/* Subida vista desde Entregas: contexto de fondo, no acción */
.cal-it.is-ghost{opacity:.32;font-weight:400;cursor:default}
.cal-it.is-ghost:hover{opacity:.55}

/* ═══════════ Contenido por subir ═══════════
   Una tarjeta por vídeo. El título manda; lo demás se apoya debajo sin
   cajas con borde, que es lo que hacía que pareciera un formulario. */
.ps-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:12px}

.psc{
  background:var(--s2);border:1px solid var(--border);border-radius:13px;
  padding:12px 14px 13px;display:flex;flex-direction:column;gap:11px;min-width:0;
  transition:border-color .15s,opacity .15s,transform .15s;
}
.psc:hover{border-color:#3a3a3a;transform:translateY(-1px)}
.psc.dragging{opacity:.35}
.psc.drag-over{border-color:var(--biz);background:var(--s3)}
.psc.is-retraso{box-shadow:inset 3px 0 0 var(--gold)}
.psc.is-subido{opacity:.48}
.psc.is-subido:hover{opacity:.72}
.psc.is-subido .psc-title{text-decoration:line-through;color:var(--muted)}
.psc.is-subido.is-retraso{box-shadow:none}

/* Fila superior: agarre, estado y borrar. Sin ruido. */
.psc-top{display:flex;align-items:center;gap:8px;min-height:18px}
.psc-grip{color:var(--dim);cursor:grab;font-size:12px;line-height:1;user-select:none;
  opacity:0;transition:opacity .15s}
.psc:hover .psc-grip{opacity:1}
.psc-grip:active{cursor:grabbing}
.psc-estado{
  margin-right:auto;font-size:8.5px;font-weight:800;text-transform:uppercase;
  letter-spacing:.08em;border-radius:20px;padding:3px 9px;white-space:nowrap;
}
.psc-estado.is-wip{background:var(--s3);color:#8d8d8d}
.psc-estado.is-edit{background:rgba(91,141,239,.15);color:#7aa5f5}
.psc-estado.is-ok{background:rgba(76,175,125,.15);color:var(--ok)}
.psc-del{
  background:none;border:none;color:var(--dim);cursor:pointer;font-family:inherit;
  font-size:12px;line-height:1;padding:2px 3px;opacity:0;transition:.15s;
}
.psc:hover .psc-del{opacity:1}
.psc-del:hover{color:#e8593a}

/* El título es la tarjeta: sin borde hasta que lo tocas */
.psc-title{
  width:100%;background:none;border:none;border-bottom:1px solid transparent;
  color:var(--text);font-family:inherit;font-size:15px;font-weight:700;
  line-height:1.35;letter-spacing:-.01em;padding:0 0 3px;outline:none;transition:border-color .15s;
}
.psc-title::placeholder{color:#4d4d4d;font-weight:400}
.psc-title:hover{border-bottom-color:var(--border)}
.psc-title:focus{border-bottom-color:var(--biz)}

/* Dos interruptores, no dos casillas: el punto se enciende al marcar */
.psc-toggles{display:flex;gap:6px}
.psc-tog{
  flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  background:var(--s1);border:1px solid var(--border);border-radius:8px;
  color:var(--muted);cursor:pointer;font-family:inherit;font-size:10.5px;font-weight:700;
  padding:7px 8px;transition:.15s;
}
.psc-tog i{width:7px;height:7px;border-radius:50%;background:var(--dim);transition:.15s;flex-shrink:0}
.psc-tog:hover{border-color:#3f3f3f;color:var(--text)}
.psc-tog.on{background:rgba(76,175,125,.12);border-color:rgba(76,175,125,.36);color:var(--ok)}
.psc-tog.on i{background:var(--ok);box-shadow:0 0 6px rgba(76,175,125,.55)}

/* Pie: tres datos en columna, etiqueta minúscula y valor como texto */
.psc-meta{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;
  padding-top:10px;border-top:1px solid var(--border);
}
.psc-m{display:flex;flex-direction:column;gap:2px;min-width:0}
.psc-m-lbl{
  font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;
  color:var(--muted);white-space:nowrap;
}
.psc-m-val{
  width:100%;min-width:0;background:none;border:none;border-bottom:1px solid transparent;
  color:var(--text);font-family:inherit;font-size:11.5px;font-weight:600;
  padding:2px 0;outline:none;transition:border-color .15s;
  text-overflow:ellipsis;
}
.psc-m-val::placeholder{color:#4a4a4a;font-weight:400}
.psc-m-val:invalid{color:#4a4a4a}
.psc-m-val:hover{border-bottom-color:var(--border)}
.psc-m-val:focus{border-bottom-color:var(--biz)}
.psc-ret:focus{border-bottom-color:var(--gold)}
.psc.is-retraso .psc-ret{color:var(--gold)}

/* La fecha es un selector nativo de verdad. Antes era un texto con el input
   invisible encima: se leía bonito pero no había forma fiable de pulsarlo. */
.psc-fecha{
  cursor:pointer;font-variant-numeric:tabular-nums;
  color-scheme:dark;                 /* el calendario del navegador, en oscuro */
}
.psc-fecha::-webkit-calendar-picker-indicator{
  cursor:pointer;opacity:.45;filter:invert(1);transition:opacity .15s;padding:0;margin-left:2px;
}
.psc-fecha:hover::-webkit-calendar-picker-indicator{opacity:.9}
.psc-fecha.is-tarde{color:#e8593a}
.psc-fecha.is-tarde::-webkit-calendar-picker-indicator{opacity:.85}

.psc-url{
  font-size:10px;font-weight:600;color:var(--muted);text-decoration:none;
  transition:color .15s;margin-top:-3px;
}
.psc-url:hover{color:var(--biz)}

/* ═══════════ Formatos del Dojo ═══════════ */
.fmt-box{background:var(--s1);border:1px solid var(--border);border-radius:11px;overflow:hidden}
.fmt-box-hd{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  padding:11px 14px;border-bottom:1px solid var(--border)}
.fmt-box-t{font-size:12px;font-weight:800;letter-spacing:.01em}
.fmt-box-sub{font-size:10px;color:var(--muted)}
.fmt-vacio{font-size:11.5px;color:var(--muted);line-height:1.6;padding:16px 14px}
.fmt-vacio b{color:var(--text)}
.fmt-list{display:flex;flex-direction:column}
.fmt-item{border-bottom:1px solid var(--border)}
.fmt-item:last-child{border-bottom:none}
.fmt-hd{
  width:100%;display:flex;align-items:center;gap:9px;background:none;border:none;
  cursor:pointer;font-family:inherit;padding:10px 14px;text-align:left;transition:background .15s;
}
.fmt-hd:hover{background:var(--s2)}
.fmt-chev{color:var(--muted);font-size:9px;transition:transform .15s;flex-shrink:0}
.fmt-item.open .fmt-chev{transform:rotate(90deg)}
.fmt-item.open .fmt-hd{background:var(--s2)}
.fmt-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.fmt-name{flex:1;min-width:0;font-size:12.5px;font-weight:600;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fmt-usos{
  flex-shrink:0;font-size:9px;font-weight:800;background:var(--s3);color:#8a8a8a;
  border-radius:20px;padding:2px 8px;font-variant-numeric:tabular-nums;
}
.fmt-body{display:flex;flex-direction:column;gap:10px;padding:2px 14px 14px;background:var(--s2)}
.fmt-body-vacio{padding:12px 14px 14px}
.fmt-pie{padding:11px 14px;border-top:1px solid var(--border)}
.fmt-add{display:flex;gap:8px;flex-wrap:wrap}
.fmt-add input{
  flex:1;min-width:200px;background:var(--s2);border:1px solid var(--border);border-radius:7px;
  color:var(--text);font-family:inherit;font-size:12px;padding:8px 11px;outline:none;transition:border-color .15s;
}
.fmt-add input::placeholder{color:#555}
.fmt-add input:focus{border-color:var(--biz)}
.fmt-body-vacio .fmt-add input{background:var(--s1)}
.fmt-nombre-row{display:flex;gap:8px;align-items:center}
.fmt-nombre{
  flex:1;min-width:0;background:var(--s1);border:1px solid var(--border);border-radius:7px;
  color:var(--text);font-family:inherit;font-size:12.5px;font-weight:600;
  padding:6px 10px;outline:none;transition:border-color .15s;
}
.fmt-nombre:focus{border-color:var(--biz)}
.fmt-del{
  flex-shrink:0;background:none;border:1px solid var(--border);border-radius:7px;color:var(--muted);
  cursor:pointer;font-family:inherit;font-size:10.5px;font-weight:600;padding:6px 12px;transition:.15s;
}
.fmt-del:hover{border-color:#e8593a;color:#e8593a}
.fmt-colores{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.fmt-col-lbl{font-size:8.5px;font-weight:800;text-transform:uppercase;
  letter-spacing:.1em;color:var(--muted);margin-right:2px}
.fmt-notas-hd{display:flex;align-items:center;justify-content:space-between;gap:10px}
.fmt-notas-hd>span{font-size:8.5px;font-weight:800;text-transform:uppercase;
  letter-spacing:.1em;color:var(--muted)}
.fmt-body .doc{min-height:180px}

/* Campo Formato del modal de actividad */
.ce-formato-row{display:flex;align-items:center;gap:8px}
.ce-formato-pista{width:12px;height:12px;border-radius:50%;flex-shrink:0;
  border:1px solid var(--border);transition:background .15s}
.ce-hint{display:block;font-size:9.5px;color:var(--muted);margin-top:5px}
.cal-lg-vacio{font-size:10px;color:var(--muted)}

/* ═══════════ Barra de formato flotante (estilo Notion) ═══════════ */
.mdbar{
  position:fixed;z-index:3000;display:none;align-items:center;gap:3px;
  background:#1f1f1f;border:1px solid #3a3a3a;border-radius:9px;padding:4px;
  box-shadow:0 8px 28px rgba(0,0,0,.6);
}
.mdbar.on{display:flex}
.mdbar-grp{display:flex;align-items:center;gap:2px}
.mdbar-grp + .mdbar-grp{margin-left:3px;padding-left:5px;border-left:1px solid #333}
.mdbar button{
  min-width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;
  background:none;border:none;border-radius:6px;color:#c8c8c8;cursor:pointer;
  font-family:inherit;font-size:11px;font-weight:700;padding:0 5px;transition:.12s;
}
.mdbar button:hover{background:#333;color:#fff}
.mdbar button b,.mdbar button i{font-size:12px}
/* Los colores son puntos, no texto */
.mdbar-cols button[data-a="color"]{
  width:17px;min-width:17px;height:17px;border-radius:50%;padding:0;
  border:1px solid rgba(255,255,255,.18);
}
.mdbar-cols button[data-a="color"]:hover{transform:scale(1.18)}
.mdbar-cols button[data-a="quitar"]{font-size:12px;color:#8a8a8a}

/* Espejo invisible para medir dónde está la selección dentro del textarea */
.mdbar-espejo{
  position:absolute;top:0;left:-9999px;visibility:hidden;pointer-events:none;
  white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;
}

/* ── sello de versión del CSS ──
   El navegador cachea el CSS aparte del JS. Sin esto, un CSS viejo deja las
   clases nuevas sin ninguna regla y todo se ve "en crudo" sin que nada avise.
   El JS lee esta variable y la muestra en el marcador de la cabecera. */
:root{ --css-ver:"56"; }

/* ── Regla de penalización por retraso ── */
.regla-retraso{
  display:flex;align-items:flex-start;gap:11px;margin-bottom:14px;
  background:linear-gradient(135deg,rgba(232,89,58,.13),rgba(240,165,0,.07));
  border:1px solid rgba(232,89,58,.34);border-left:3px solid #e8593a;
  border-radius:11px;padding:13px 16px;
}
.regla-ico{color:#e8593a;font-size:15px;line-height:1.35;flex-shrink:0}
.regla-retraso p{margin:0;font-size:12.5px;line-height:1.6;color:var(--text)}
.regla-retraso b{color:#e8593a;font-weight:800}

/* ── Notas de Contenido por subir ── */
.psn-box{background:var(--s1);border:1px solid var(--border);border-radius:10px;
  overflow:hidden;margin-top:12px}
.psn-hd{
  width:100%;display:flex;align-items:center;gap:9px;background:none;border:none;
  cursor:pointer;font-family:inherit;padding:10px 13px;text-align:left;transition:background .15s;
}
.psn-hd:hover{background:var(--s2)}
.psn-box.open .psn-hd{background:var(--s2);border-bottom:1px solid var(--border)}
.psn-chev{color:var(--muted);font-size:9px;transition:transform .15s;flex-shrink:0}
.psn-box.open .psn-chev{transform:rotate(90deg)}
.psn-t{flex:1;font-size:11.5px;font-weight:700;color:var(--text)}
.psn-n{font-size:9.5px;font-weight:800;background:var(--s3);color:#8a8a8a;
  border-radius:20px;padding:2px 8px;font-variant-numeric:tabular-nums}
.psn-body{display:flex;flex-direction:column;gap:9px;padding:12px 13px 13px}
.psn-modo{display:flex;justify-content:flex-end}
.psn-body .doc{min-height:200px}

/* ═══════════ Banco de Ideas en tablero ═══════════ */
.canal-col.is-kanban{min-width:0}
/* El tablero scrollea en horizontal él solo: la página nunca se mueve de lado */
.kb-wrap{overflow-x:auto;overflow-y:hidden;padding-bottom:6px;margin:0 -2px}
.kb-board{display:flex;gap:11px;align-items:flex-start;min-height:120px;padding:0 2px}
.kb-col{
  flex:0 0 232px;display:flex;flex-direction:column;
  background:var(--s1);border:1px solid var(--border);border-radius:11px;
  padding:10px;transition:border-color .15s,background .15s;
}
.kb-col.has-color{border-top:2px solid var(--kb)}
.kb-col.drag-over{border-color:var(--biz);background:var(--s2)}
.kb-col-hd{display:flex;align-items:center;gap:8px;margin-bottom:9px;padding:0 2px}
.kb-col-t{
  flex:1;min-width:0;font-size:10px;font-weight:800;text-transform:uppercase;
  letter-spacing:.07em;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.kb-col.has-color .kb-col-t{color:var(--kb)}
.kb-col-n{
  flex-shrink:0;font-size:9.5px;font-weight:800;background:var(--s3);color:#8a8a8a;
  border-radius:20px;padding:2px 7px;font-variant-numeric:tabular-nums;
}
.kb-col-body{display:flex;flex-direction:column;gap:7px;min-height:40px}
.kb-col-body .ci-card{background:var(--s2)}
.kb-col-body .ci-card:hover{background:var(--s3)}
.kb-vacio{
  font-size:10.5px;color:#4a4a4a;text-align:center;padding:16px 6px;
  border:1px dashed var(--border);border-radius:8px;
}
.kb-add{
  margin-bottom:8px;background:none;border:1px dashed var(--border);border-radius:8px;
  color:var(--muted);cursor:pointer;font-family:inherit;font-size:10.5px;font-weight:600;
  padding:7px;transition:.15s;width:100%;
}
.kb-add:hover{border-color:var(--biz);color:var(--biz)}
