/* PKSEL OS — disciplina cromática: verde+cian base; ámbar=espera humano; coral=alarma */
:root{
  --bg:#0d1117; --bg2:#0e1411; --surface:#131820; --surface2:#0e1411; --elevated:#161d24;
  --glass:rgba(14,20,17,.72); --border:rgba(255,255,255,.08); --border-light:rgba(255,255,255,.12); --border-accent:rgba(52,211,153,.35);
  /* BASE: verde + cian */
  --primary:#34D399; --primary-dark:#10B981; --primary-light:#6EE7B7;
  --green:#34D399; --emerald:#10B981; --green-soft:#6EE7B7;
  --mint:#00E5C7; --mint-light:#4FFFDF;
  /* SEMÁFORO: ámbar = espera humano/G1/G2 · coral = alarma/fallo */
  --coral:#FF6B6B; --amber:#FBBF24; --gray:#6B7280;
  /* alias legacy: nunca púrpura real — redirige a cian */
  --purple:var(--mint); --pink:#EC4899;
  --text:#EAF2EC; --text2:#9fb3a8; --text3:#69737a; --text-muted:#46514a;
  --gradient:linear-gradient(135deg,#00E5C7 0%,#34D399 55%,#10B981 100%);
  --gradient-hero:linear-gradient(135deg,#00E5C7 0%,#34D399 50%,#10B981 100%);
  --gradient-coral:linear-gradient(135deg,#FF6B6B 0%,#FBBF24 100%);
  --glow:0 0 36px rgba(52,211,153,.32); --glow-cyan:0 0 36px rgba(0,229,199,.28);
  --topbar-h:72px; /* altura del topbar: los sticky internos arrancan DEBAJO de esta línea */
  --shadow:0 8px 40px rgba(0,0,0,.5); --shadow-card:0 4px 20px rgba(0,0,0,.4);
  /* profundidad premium (glass tipo Apple): sombra grande difusa + bisel de luz arriba */
  --shadow-soft:0 18px 44px -22px rgba(0,0,0,.72), 0 6px 16px -10px rgba(0,0,0,.5);
  --shadow-float:0 34px 70px -28px rgba(0,0,0,.78), 0 12px 26px -14px rgba(0,0,0,.55);
  --bevel:inset 0 1px 0 rgba(255,255,255,.08), inset 0 0 0 1px rgba(255,255,255,.015);
  --glass-card:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.018) 38%,rgba(255,255,255,.008));
  --radius:22px; --radius-sm:15px; --radius-full:100px; --transition:.28s cubic-bezier(.4,0,.2,1);
  --mono:'JetBrains Mono',ui-monospace,monospace;
  /* alias de compatibilidad con clases previas (--cc-*) */
  --cc-primary:var(--primary); --cc-primary-dark:var(--primary-dark); --cc-secondary:var(--mint);
  --cc-text:var(--text); --cc-muted:var(--text3); --cc-bg:var(--bg);
  --cc-border:var(--border); --cc-border-light:var(--border);
  --cc-white:var(--surface); --cc-dark:#000; --cc-dark-deep:#000;
  --cc-gradient:var(--gradient); --cc-shadow:var(--shadow); --cc-shadow-card:var(--shadow-card);
  --cc-radius:var(--radius); --cc-radius-sm:var(--radius-sm); --cc-transition:var(--transition);
  --cc-primary-light:rgba(52,211,153,.12);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',-apple-system,sans-serif;font-size:15px;line-height:1.6;
  color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden;
  background:
    /* rejilla técnica sutil (24px) */
    linear-gradient(rgba(52,211,153,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(52,211,153,.035) 1px,transparent 1px),
    /* viñeta verde/cian muy tenue */
    radial-gradient(1200px 760px at 78% -8%,rgba(52,211,153,.07),transparent 58%),
    radial-gradient(1000px 700px at -6% 110%,rgba(0,229,199,.05),transparent 55%),
    #090d0b;
  background-size:24px 24px,24px 24px,auto,auto,auto;
  background-attachment:fixed}
h1,h2,h3{font-family:'Space Grotesk','Inter',sans-serif;line-height:1.15;letter-spacing:-0.02em;font-weight:700}

/* Fondo ambiental: rejilla + scanline (sin orbes borrosos AI-slop) */
.ambient-bg{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;
  background:
    linear-gradient(rgba(52,211,153,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(52,211,153,.04) 1px,transparent 1px);
  background-size:32px 32px}
.ambient-bg::after{content:'';position:absolute;inset:0;
  background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.12) 2px,rgba(0,0,0,.12) 4px);
  opacity:.35;pointer-events:none}
/* scanline global sutil (panel OS + base) */
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:1;
  background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.045) 3px,rgba(0,0,0,.045) 4px);
  opacity:.55}
.noise-overlay{position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.ps-header,.ps-main{position:relative;z-index:2}
@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}
@keyframes gradientShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
a{color:inherit;text-decoration:none}
code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.85em;background:var(--surface2);color:var(--mint);padding:2px 7px;border-radius:6px}

/* Header */
.ps-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;
  padding:14px 24px;background:rgba(9,9,11,.8);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}
.ps-brand{display:flex;align-items:center;gap:11px;font-family:'Space Grotesk';font-weight:600;letter-spacing:.01em}
.ps-brand img{height:34px;width:auto}
.ps-logo{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:var(--gradient);color:#fff;font-weight:800;font-size:.8rem;box-shadow:var(--glow)}
.ps-brand b{font-weight:800}
.ps-nav{display:flex;align-items:center;gap:16px}
.ps-nav a{color:var(--text2);font-size:.9rem;font-weight:500;transition:color var(--transition)}
.ps-nav a:hover{color:var(--text)}

/* Layout */
.ps-main{max-width:1120px;margin:0 auto;padding:32px 24px 90px}
.ps-hero{text-align:center;padding:44px 0 28px}
.ps-hero--sm{padding:26px 0 12px}
.ps-hero .ps-badge{display:inline-flex;align-items:center;gap:10px;margin-bottom:24px;padding:10px 22px;border-radius:var(--radius-full);
  background:var(--glass);border:1px solid var(--border-light);color:var(--text2);font-size:.8rem;font-weight:500;font-family:'JetBrains Mono';backdrop-filter:blur(10px)}
.ps-hero .ps-badge::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 12px var(--mint);animation:pulse 2s ease-in-out infinite}
.ps-hero h1{font-size:clamp(2.4rem,6vw,3.6rem);font-weight:700;letter-spacing:-2px}
.ps-hero h1 .grad,.ps-hero h1 b{font-weight:700;background:var(--gradient-hero);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradientShift 8s ease infinite}
.ps-hero p{max-width:600px;margin:18px auto 0;color:var(--text2);font-size:1.05rem}

/* Buttons */
.ps-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;
  padding:12px 26px;border:1px solid var(--border-light);background:var(--glass);color:var(--text);backdrop-filter:blur(10px);
  border-radius:var(--radius-full);font-family:'Space Grotesk';font-weight:600;font-size:.9rem;cursor:pointer;transition:all var(--transition)}
.ps-btn:hover{border-color:var(--border-accent);background:var(--surface2);transform:translateY(-2px)}
.ps-btn-primary{background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.32);color:var(--green-soft);box-shadow:var(--bevel)}
.ps-btn-primary:hover{background:rgba(52,211,153,.18);border-color:rgba(52,211,153,.48);box-shadow:var(--bevel);transform:translateY(-2px)}
.ps-btn-outline{background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.3);color:var(--green-soft)}
.ps-btn-outline:hover{background:rgba(52,211,153,.16);border-color:rgba(52,211,153,.46);color:var(--green-soft)}
.ps-btn-lg{min-height:54px;padding:16px 32px;font-size:1rem}

/* Grid de clientes */
.ps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.ps-card{position:relative;border-radius:var(--radius);overflow:hidden;
  background:var(--glass-card);backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);
  border:1px solid rgba(255,255,255,.08);box-shadow:var(--shadow-soft),var(--bevel);
  transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition)}
.ps-card:hover{transform:translateY(-5px);border-color:rgba(52,211,153,.3);box-shadow:var(--shadow-float),0 0 0 1px rgba(52,211,153,.14),var(--bevel)}
.ps-swatch{height:84px;position:relative}
.ps-swatch::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent,rgba(9,13,11,.55))}
.ps-card-body{padding:18px 20px}
.ps-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ps-card-top h3{font-size:1.05rem}
.ps-meta{display:flex;gap:12px;margin-top:8px;font-size:.82rem;color:var(--text3);align-items:center}
.ps-on{color:var(--mint);font-weight:700}
.ps-muted{color:var(--text3)}
.ps-precio{font-weight:700;color:var(--mint);font-family:'JetBrains Mono'}

/* Pills / tags */
.ps-pill{padding:3px 10px;border-radius:9999px;font-size:.7rem;font-weight:700;font-family:'JetBrains Mono';text-transform:uppercase;letter-spacing:.04em;background:var(--surface2);color:var(--text3)}
.ps-pill--cotizado{background:rgba(52,211,153,.14);color:#6EE7B7}
.ps-pill--generado{background:rgba(0,229,199,.14);color:#4FFFDF}
.ps-pill--local{background:rgba(0,212,170,.14);color:var(--mint)}
.ps-pill--vps{background:var(--gradient);color:#fff}
.ps-tag{display:inline-block;margin:2px 4px 2px 0;padding:3px 10px;border-radius:9999px;background:rgba(52,211,153,.12);color:#6EE7B7;font-size:.76rem;font-weight:600}

/* Biblioteca: módulos resueltos en el detalle del cliente */
.bib-mods{display:flex;flex-wrap:wrap;gap:6px}
.bib-mod{display:inline-flex;align-items:center;gap:7px;padding:4px 11px;border-radius:8px;
  border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02);
  font-size:.78rem;font-weight:600;color:var(--text)}
.bib-mod small{font-family:var(--mono);font-weight:500}
.bib-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}

/* Empty */
.ps-empty{text-align:center;padding:70px 0;display:flex;flex-direction:column;align-items:center;gap:18px;color:var(--text2)}

/* Panels / form */
.ps-panel{background:var(--surface);border-radius:var(--radius);padding:24px;margin-bottom:18px;box-shadow:var(--shadow-card);border:1px solid var(--border)}
.ps-panel h2{font-size:1.1rem;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.ps-panel h2 svg{width:19px;height:19px;color:var(--primary)}
.ps-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.ps-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.82rem;color:var(--text2)}
.ps-form input{padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:.95rem;background:var(--surface2);color:var(--text)}
.ps-form input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(52,211,153,.15)}
.ps-file{font-weight:600}
.ps-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}
.ps-actions--left{justify-content:flex-start;flex-wrap:wrap}

/* Detail */
.ps-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}
.ps-detail-head h1{font-size:1.8rem;margin-top:6px}
.ps-back{color:var(--text3);font-size:.85rem;font-weight:600}
.ps-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:720px){.ps-cols{grid-template-columns:1fr}}
.ps-palette{display:flex;flex-wrap:wrap;gap:14px}
.ps-swatch-item{text-align:center;font-size:.75rem;color:var(--text2)}
.ps-swatch-box{display:block;width:60px;height:60px;border-radius:12px;border:1px solid var(--border);margin-bottom:6px}
.ps-refs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.ps-refs img{width:90px;height:90px;object-fit:cover;border-radius:10px;border:1px solid var(--border)}
.ps-out{margin-top:14px;background:#000;color:var(--mint);padding:14px;border-radius:10px;font-size:.82rem;overflow:auto;font-family:'JetBrains Mono'}
.ps-next ol{margin:0 0 10px 18px}
.ps-next li{margin-bottom:6px;color:var(--text2)}
.det-cot{display:flex;gap:18px;margin-bottom:14px;flex-wrap:wrap}
.det-cot div{display:flex;flex-direction:column}
.det-cot small{color:var(--text3);font-size:.78rem}
.det-cot b{font-family:'Space Grotesk';font-size:1.4rem;font-weight:700;color:var(--text)}
.det-feats{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
@media(max-width:600px){.det-feats{grid-template-columns:1fr}}
.det-feat{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;background:var(--surface2);border-radius:8px;font-size:.88rem;min-width:0}
.det-feat span:first-child{display:inline-flex;align-items:center;gap:7px;min-width:0}
.det-feat svg{width:15px;height:15px;color:var(--mint);flex:none}
.det-feat-meta{color:var(--text3);font-size:.78rem;white-space:nowrap}
.det-feat code{min-width:0;overflow-wrap:anywhere;text-align:right}

/* ── CRM detalle: IG (izq) + datos & operación (der), marca al pie ── */
.crm-stage{display:grid;grid-template-columns:minmax(0,0.92fr) minmax(0,1.08fr);gap:18px;align-items:start;margin-bottom:18px}
.crm-stage.solo{grid-template-columns:1fr}
.crm-stage > div{min-width:0}
.crm-stage-ig > .ps-panel{margin:0}
.crm-stage-main{display:flex;flex-direction:column;gap:18px}
.crm-stage-main > .ps-panel,.crm-stage-main > .term{margin:0}
@media(max-width:1080px){.crm-stage{grid-template-columns:1fr}}
/* tarjeta de perfil branded (cliente sin Instagram) */
.crm-prof{padding:0;overflow:hidden;text-align:center}
.crm-prof-cover{height:96px;background:linear-gradient(120deg,var(--p1),var(--p2));position:relative}
.crm-prof-cover::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 120% at 50% 0,transparent,rgba(0,0,0,.35))}
.crm-prof-av{width:84px;height:84px;border-radius:24px;margin:-42px auto 0;position:relative;z-index:1;
  display:grid;place-items:center;font-family:'Space Grotesk';font-weight:700;font-size:2.1rem;color:#04140d;
  background:linear-gradient(135deg,var(--p1),var(--p2));border:3px solid var(--surface);box-shadow:0 10px 30px -8px rgba(0,0,0,.6)}
.crm-prof-name{font-family:'Space Grotesk';font-weight:600;font-size:1.25rem;margin:12px 18px 0;letter-spacing:-.3px}
.crm-prof-tags{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin:10px 16px 0}
.crm-prof-rows{display:flex;flex-direction:column;gap:2px;margin:16px 14px 0;text-align:left}
.crm-prof-row{display:flex;align-items:center;gap:9px;padding:8px 11px;border-radius:9px;color:var(--text2);text-decoration:none;font-size:.84rem;transition:.14s}
.crm-prof-row:hover{background:rgba(255,255,255,.03);color:var(--text)}
.crm-prof-row svg{width:15px;height:15px;color:var(--mint);flex:none}
.crm-prof-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm-prof-pal{display:flex;gap:6px;justify-content:center;margin:16px 0 0}
.crm-prof-pal span{width:30px;height:30px;border-radius:9px;border:1px solid rgba(255,255,255,.15)}
.crm-prof-ig{display:inline-flex;align-items:center;gap:8px;margin:18px auto 22px;padding:9px 18px;border-radius:11px;cursor:pointer;
  font-family:'Space Grotesk';font-weight:600;font-size:.84rem;color:var(--text2);
  background:rgba(255,255,255,.03);border:1px solid var(--border);transition:.14s}
.crm-prof-ig:hover{border-color:rgba(236,72,153,.5);color:#f0a0c8;background:rgba(236,72,153,.08)}
.crm-prof-ig svg{width:16px;height:16px}
.det-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}
/* hashtag de profesión/rubro — clic lleva a /crm?rubro= (como un tag) */
.crm-tag{display:inline-flex;align-items:center;gap:2px;padding:4px 11px;border-radius:100px;font-family:var(--mono);
  font-size:.74rem;font-weight:600;text-decoration:none;color:var(--green-soft);
  background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.28);transition:.14s;white-space:nowrap}
.crm-tag:hover{background:rgba(52,211,153,.2);border-color:rgba(52,211,153,.5);color:#7df3c0}
/* badge influencer — clic lleva a /crm?rol=influencer */
.crm-inf-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:100px;
  font-family:'Space Grotesk';font-size:.72rem;font-weight:700;text-decoration:none;color:#F8B95A;
  background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.34);transition:.14s;white-space:nowrap}
.crm-inf-badge:hover{background:rgba(245,158,11,.2);border-color:rgba(245,158,11,.55)}
.crm-inf-badge svg{width:12px;height:12px}
/* checkbox influencer dentro del form de datos */
.det-influ-check{display:flex;align-items:center;gap:10px;cursor:pointer;margin:4px 0 2px;font-size:.85rem;color:var(--text2)}
.det-influ-check input{position:absolute;opacity:0;width:0;height:0}
.det-influ-box{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--border-light,rgba(255,255,255,.2));
  display:grid;place-items:center;flex:none;background:rgba(255,255,255,.02);transition:.15s}
.det-influ-box svg{width:14px;height:14px;color:#04140d;opacity:0;transform:scale(.5);transition:.15s}
.det-influ-check input:checked + .det-influ-box{background:linear-gradient(120deg,#F59E0B,#F8B95A);border-color:#F59E0B}
.det-influ-check input:checked + .det-influ-box svg{opacity:1;transform:scale(1)}
.det-influ-check b{color:var(--text);font-weight:600}
/* Marca al pie del detalle: ancho contenido, no full-bleed */
.crm-marca-foot{max-width:560px;margin-top:18px}
/* chip de filtro activo en la lista (hashtag) */
.crm-active-filter{display:flex;align-items:center;gap:10px;padding:10px 16px;flex-wrap:wrap}
.crm-active-filter .lbl{font-family:var(--mono);font-size:.74rem;color:var(--text3)}
.crm-active-filter .chip{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:100px;
  font-family:var(--mono);font-size:.76rem;font-weight:600;color:var(--green-soft);
  background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.3)}
.crm-active-filter .chip.inf{color:#F8B95A;background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.34)}
.crm-active-filter .chip a{color:inherit;display:inline-flex;opacity:.7;text-decoration:none}
.crm-active-filter .chip a:hover{opacity:1}
.crm-active-filter .chip svg{width:13px;height:13px}

/* ===================== Cotizador ===================== */
.cot-layout{display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start}
@media(max-width:900px){.cot-layout{grid-template-columns:1fr}}
.cot-step{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;
  background:var(--gradient);color:#fff;font-size:.82rem;font-weight:800;margin-right:8px;font-family:'JetBrains Mono'}
.cot-sub{color:var(--text3);font-size:.9rem;margin:-4px 0 14px}
.cot-chips{display:flex;flex-wrap:wrap;gap:8px}
.cot-chip{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border:1px solid var(--border);
  background:var(--surface2);border-radius:9999px;font-family:'Space Grotesk';font-weight:600;font-size:.86rem;color:var(--text);cursor:pointer;transition:all var(--transition)}
.cot-chip svg{width:17px;height:17px}
.cot-chip:hover{border-color:var(--primary)}
.cot-chip.sel{background:rgba(52,211,153,.15);border-color:var(--primary);color:#6EE7B7}
.cot-paquetes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:600px){.cot-paquetes{grid-template-columns:1fr}}
.cot-paquete{display:flex;flex-direction:column;gap:3px;padding:16px;border:1px solid var(--border);
  background:var(--surface2);border-radius:var(--radius);cursor:pointer;text-align:left;transition:all var(--transition)}
.cot-paquete svg{width:18px;height:18px}
.cot-paquete:hover{border-color:var(--mint);transform:translateY(-2px)}
.cot-paquete.sel{border-color:var(--mint);box-shadow:0 0 0 3px rgba(0,212,170,.15)}
.cot-paquete b{font-family:'Space Grotesk';font-size:1.05rem}
.cot-paquete small{color:var(--text3)}
.cot-paquete-n{margin-top:6px;font-size:.72rem;font-weight:700;color:var(--mint);font-family:'JetBrains Mono'}
.cot-cat{margin-bottom:22px}
.cot-cat h3{font-size:1rem;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}
.cot-cat h3 svg{width:18px;height:18px;color:var(--primary)}
.cot-cat h3 small{color:var(--text3);font-weight:400;font-family:'Inter'}
.cot-feats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:600px){.cot-feats{grid-template-columns:1fr}}
.cot-feat{position:relative;display:flex;gap:10px;padding:12px 14px;border:1px solid var(--border);
  border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);background:var(--surface2)}
.cot-feat:hover{border-color:var(--primary)}
.cot-feat.on{border-color:var(--primary);background:rgba(52,211,153,.08)}
.cot-feat.flash{animation:flash .7s}
@keyframes flash{0%{background:rgba(0,212,170,.25)}100%{background:rgba(52,211,153,.08)}}
.cot-feat input{margin-top:3px;accent-color:var(--primary)}
.cot-feat-body{display:flex;flex-direction:column;gap:3px;flex:1}
.cot-feat-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.cot-feat-top b{font-family:'Space Grotesk';font-size:.92rem;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.cot-feat-top b svg{width:16px;height:16px;color:var(--primary);flex:none}
.cot-feat-body small{color:var(--text3);font-size:.8rem;line-height:1.4}
.cot-precio{font-family:'JetBrains Mono';font-weight:700;font-size:.85rem;color:var(--mint);white-space:nowrap}
.cot-tag-pop{align-self:flex-start;margin-top:4px;font-size:.66rem;font-weight:700;color:#fff;background:var(--coral);padding:1px 8px;border-radius:9999px;display:inline-flex;align-items:center;gap:4px}
.cot-tag-pop svg{width:11px;height:11px}
.cot-summary{position:sticky;top:84px}
.cot-summary-card{background:rgba(255,255,255,.03);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);border:1px solid var(--border);backdrop-filter:blur(12px)}
.cot-summary-card h3{font-size:1.05rem;margin-bottom:14px}
.cot-total,.cot-rec,.cot-entrega{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.cot-total span,.cot-rec span,.cot-entrega span{color:var(--text3);font-size:.85rem}
.cot-total b{font-family:'Space Grotesk';font-size:1.8rem;font-weight:800;color:var(--text)}
.cot-rec b,.cot-entrega b{font-family:'JetBrains Mono';font-weight:700;font-size:1rem;color:var(--text)}
.cot-summary-card hr{border:none;border-top:1px solid var(--border);margin:14px 0}
.cot-stats{display:flex;gap:10px;margin-bottom:12px}
.cot-stats div{flex:1;text-align:center;background:var(--surface2);border-radius:10px;padding:10px}
.cot-stats b{display:block;font-family:'Space Grotesk';font-size:1.3rem;font-weight:800;color:var(--mint)}
.cot-stats small{color:var(--text3);font-size:.72rem}
.cot-mods{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:16px;min-height:4px}
.cot-modpill{font-size:.7rem;font-weight:600;background:rgba(52,211,153,.12);color:#6EE7B7;padding:3px 9px;border-radius:9999px}
.cot-cta{width:100%}
.cot-cancel{display:block;text-align:center;margin-top:10px;color:var(--text3);font-size:.85rem}
.cot-paquete svg,.ps-panel h2 svg{stroke-width:2}

/* ===================== Cotizador real (categorías → servicios) ===================== */
.head{margin-bottom:24px}
.kick{font-family:'JetBrains Mono';font-size:.74rem;font-weight:500;color:var(--mint);text-transform:uppercase;letter-spacing:.18em;margin-bottom:12px}
.cot-main .head h1{font-size:2.4rem;font-weight:600;letter-spacing:-1.5px;background:none;-webkit-text-fill-color:var(--text)}
.cot-main .lead{color:var(--text2);margin-top:8px;max-width:520px}
.cot-presets{display:flex;flex-wrap:wrap;gap:10px}
.cot-preset{display:flex;flex-direction:column;gap:2px;padding:12px 18px;border:1px solid var(--border);background:var(--surface2);border-radius:var(--radius-sm);
  font-family:'Space Grotesk';font-weight:600;color:var(--text);cursor:pointer;transition:all var(--transition);text-align:left}
.cot-preset small{font-family:'JetBrains Mono';font-size:.7rem;color:var(--text3);font-weight:400}
.cot-preset:hover{border-color:var(--primary);transform:translateY(-2px)}
.cot-preset.sel{border-color:var(--mint);box-shadow:0 0 0 2px rgba(0,229,199,.15)}
/* categorías */
.cot-cats{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.cot-cat-card{position:relative;border:1px solid var(--border);border-radius:16px;background:var(--glass);backdrop-filter:blur(14px);overflow:hidden;transition:.28s cubic-bezier(.4,0,.2,1)}
.cot-cat-card::before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(var(--primary),var(--mint));opacity:0;transform:scaleY(.3);transition:.28s}
.cot-cat-card.on{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.05)}
.cot-cat-card.on::before{opacity:1;transform:scaleY(1)}
.cot-cat-head{display:flex;align-items:center;gap:14px;padding:16px 18px;cursor:pointer;user-select:none}
.cot-cat-ic{width:42px;height:42px;border-radius:12px;flex:none;display:grid;place-items:center;color:var(--text2);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);transition:.28s}
.cot-cat-card.on .cot-cat-ic{color:var(--text);background:rgba(52,211,153,.16);border-color:rgba(52,211,153,.3)}
.cot-cat-ic svg{width:21px;height:21px;stroke-width:1.6}
.cot-cat-tt{flex:1}.cot-cat-tt b{font-family:'Space Grotesk';font-size:1.04rem;font-weight:600;display:block}
.cot-cat-tt small{font-size:.81rem;color:var(--text3)}
.cot-cat-cnt{font-family:'JetBrains Mono';font-size:.72rem;font-weight:700;color:var(--mint);min-width:14px;text-align:center}
.cot-cat-cnt:empty{display:none}
.cot-cat-price{font-family:'JetBrains Mono';font-weight:600;font-size:.9rem;color:var(--text2)}
.cot-cat-card.on .cot-cat-price{color:var(--mint)}
.cot-cat-chev{color:var(--text3);transition:transform .3s}.cot-cat-chev svg{width:18px;height:18px}
.cot-cat-card.open .cot-cat-chev{transform:rotate(180deg)}
.cot-cat-body{max-height:0;overflow:hidden;transition:max-height .35s cubic-bezier(.4,0,.2,1);padding:0 18px}
.cot-cat-card.open .cot-cat-body{max-height:600px;padding:4px 18px 16px 74px}
.cot-srv{display:flex;align-items:center;gap:11px;padding:8px 4px;cursor:pointer;border-radius:8px;transition:.18s}
.cot-srv:hover{background:rgba(255,255,255,.03)}
.cot-srv input{position:absolute;opacity:0;pointer-events:none}
.cot-srv-box{width:20px;height:20px;border-radius:6px;border:1.5px solid rgba(255,255,255,.2);flex:none;display:grid;place-items:center;transition:.18s}
.cot-srv-box svg{width:12px;height:12px;stroke:#0A0B0F;stroke-width:3.5;opacity:0;transition:.18s}
.cot-srv input:checked + .cot-srv-box{background:var(--primary);border-color:var(--primary)}
.cot-srv input:checked + .cot-srv-box svg{opacity:1}
.cot-srv.is-inc .cot-srv-box{background:var(--mint);border-color:var(--mint)}
.cot-srv.is-inc .cot-srv-box svg{opacity:1}
.cot-srv-name{font-size:.88rem;color:var(--text)}
.cot-srv-name em{font-family:'JetBrains Mono';font-style:normal;font-size:.66rem;color:var(--mint);text-transform:uppercase;letter-spacing:.05em;margin-left:4px}
.cot-srv.is-inc{cursor:default}
/* resumen terminal */
.cot-summary-card{padding:0;overflow:hidden}
.cot-summary-card .sm-bar{display:flex;align-items:center;gap:8px;padding:12px 15px;border-bottom:1px solid var(--border);background:rgba(255,255,255,.02)}
.sm-bar .d{width:11px;height:11px;border-radius:50%}.sm-bar .d.r{background:#FF5F57}.sm-bar .d.y{background:#FEBC2E}.sm-bar .d.g{background:#28C840}
.sm-bar .sm-t{margin-left:9px;font-family:'JetBrains Mono';font-size:.74rem;color:var(--text3)}
.sm-body{padding:16px;font-family:'JetBrains Mono';font-size:.8rem;min-height:140px;max-height:40vh;overflow-y:auto}
.sm-empty{color:var(--text3)}
.sm-line{opacity:0;transform:translateY(6px);animation:slideIn .3s forwards}
@keyframes slideIn{to{opacity:1;transform:translateY(0)}}
.sm-goal{color:var(--text);font-weight:500;margin-top:13px;display:flex;align-items:center;gap:8px}
.sm-goal:first-child{margin-top:0}.sm-goal .ck{color:var(--mint);font-weight:700}
.sm-goal .sm-pr{margin-left:auto;color:var(--text2)}
.sm-link{color:var(--text3);padding-left:4px;font-size:.76rem;margin-top:1px}
.sm-link .mod{color:var(--primary)}
.cot-summary-card .cot-total,.cot-summary-card .cot-entrega{padding:0 16px;display:flex;justify-content:space-between;align-items:baseline;margin:8px 0}
.cot-summary-card .cot-total{margin-top:14px}
.cot-summary-card .cot-total span,.cot-summary-card .cot-entrega span{color:var(--text3);font-size:.82rem}
.cot-summary-card .cot-total b{font-family:'Space Grotesk';font-size:1.7rem;font-weight:800}
.cot-summary-card .cot-entrega b{font-family:'JetBrains Mono';font-weight:700}
.cot-summary-card hr{border:none;border-top:1px solid var(--border);margin:12px 16px}
.cot-summary-card .cot-stats{display:flex;gap:10px;padding:0 16px;margin-bottom:14px}
.cot-summary-card .cot-cta{margin:0 16px;width:calc(100% - 32px)}
.cot-summary-card .cot-cta svg{width:17px;height:17px}
.cot-summary-card .cot-cancel{padding-bottom:16px}

/* detalle: bloques */
.det-bloques{display:flex;flex-direction:column;gap:10px}
.det-bloque{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:12px 14px}
.det-bloque-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}
.det-bloque-h b{font-family:'Space Grotesk';font-size:.95rem}
.det-bloque p{font-size:.8rem;color:var(--text3);font-family:'JetBrains Mono';line-height:1.5}
.det-cot b{font-family:'Space Grotesk';font-size:1.4rem;font-weight:700;color:var(--text)}

/* cotizador: campos de formulario */
.cot .ps-row label,.cot .term-body > label:not(.ps-file),.cot .ps-file{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.8rem;color:var(--text2)}
.cot .ps-row input:not([type=file]),.cot .term-body > label > input:not([type=file]){padding:11px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);color:var(--text);font-family:inherit;font-size:.95rem}
.cot input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(52,211,153,.15)}
.cot .ps-row{gap:14px}

/* File inputs modernos (dropzone glass + botón verde sutil) */
input[type=file]{width:100%;padding:9px 12px;border:1px dashed rgba(255,255,255,.18);border-radius:10px;
  background:var(--surface2);color:var(--text3);font-family:inherit;font-size:.84rem;cursor:pointer;transition:border-color var(--transition)}
input[type=file]:hover{border-color:rgba(52,211,153,.4)}
input[type=file]::file-selector-button{margin-right:12px;padding:7px 14px;border-radius:8px;border:1px solid rgba(52,211,153,.32);
  background:rgba(52,211,153,.1);color:var(--green-soft);font-family:'Space Grotesk';font-weight:600;font-size:.8rem;cursor:pointer;transition:all var(--transition)}
input[type=file]::file-selector-button:hover{background:rgba(52,211,153,.18);border-color:rgba(52,211,153,.48)}

/* Variación de ventanas: terminales de config (.cfg) con puntos monocromos
   — los de color quedan solo en los terminales "live"/datos */
.term.cfg .term-bar .d.r,.term.cfg .term-bar .d.y,.term.cfg .term-bar .d.g{background:rgba(255,255,255,.13)}
.term.cfg .term-bar .d.g{background:rgba(52,211,153,.4)}

/* ===== Ventana tipo "editor de código" (.term.win) — cada una con su identidad =====
   En vez del semáforo: pestaña con icono + color de acento propio + cursor que parpadea.
   El borde izquierdo se ilumina al escribir (:focus-within). */
.term.win{position:relative;--wacc:#34D399}
/* borde lateral: tono del acento pero muy tenue, se aclara apenas al escribir */
.term.win::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;border-radius:2px 0 0 2px;
  background:color-mix(in srgb,var(--wacc) 55%,transparent);opacity:.45;transition:opacity var(--transition)}
.term.win:focus-within::before{opacity:.8}
.term.win .term-bar{padding:0 14px 0 0;gap:0;align-items:stretch}
.win-tab{display:inline-flex;align-items:center;gap:8px;padding:12px 17px;font-family:var(--mono);font-size:.78rem;color:var(--text2);
  border-bottom:1.5px solid color-mix(in srgb,var(--wacc) 42%,transparent);
  background:linear-gradient(180deg,color-mix(in srgb,var(--wacc) 5%,transparent),transparent);
  border-radius:var(--radius) 0 0 0;transition:background var(--transition),border-color var(--transition)}
.term.win:focus-within .win-tab{color:var(--text);border-bottom-color:color-mix(in srgb,var(--wacc) 60%,transparent);
  background:linear-gradient(180deg,color-mix(in srgb,var(--wacc) 10%,transparent),transparent)}
.win-tab i{width:15px;height:15px;color:color-mix(in srgb,var(--wacc) 70%,var(--text3));stroke-width:2}
.win-tab b{font-weight:600;color:var(--text)}
.win-caret{align-self:center;width:6px;height:14px;margin-left:11px;border-radius:2px;
  background:color-mix(in srgb,var(--wacc) 60%,transparent);animation:wblink 2.6s ease-in-out infinite}
@keyframes wblink{0%,100%{opacity:.55;transform:scaleY(1)}50%{opacity:.1;transform:scaleY(.85)}}
.win-meta{margin-left:auto;align-self:center;font-family:var(--mono);font-size:.72rem;color:var(--text-muted)}
.ps-form select,.cot .ps-row select{padding:11px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);color:var(--text);font-family:inherit;font-size:.95rem}
.ps-form select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(52,211,153,.15)}

/* ============ SHELL DEL PANEL (PKSEL OS) — glass premium, línea verde ============ */
.app{display:grid;grid-template-columns:256px 1fr;min-height:100vh}
/* fondo de código tenue global (igual que el login) */
.codebg{position:fixed;inset:0;z-index:0;pointer-events:none}
.codebg pre{position:absolute;inset:-6% -3%;margin:0;font-family:var(--mono);font-size:13px;line-height:1.7;color:#9aa8af;opacity:.04;white-space:pre-wrap;word-break:break-all}
.codebg::after{content:'';position:absolute;inset:0;background:radial-gradient(1100px 800px at 30% 30%,transparent 40%,rgba(9,13,11,.5) 100%)}

/* sidebar — panel de vidrio flotante */
.side{position:sticky;top:0;z-index:2;height:100vh;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent;display:flex;flex-direction:column;gap:3px;
  padding:18px 14px;margin:0;
  background:linear-gradient(180deg,rgba(20,27,23,.66),rgba(11,15,13,.74));
  backdrop-filter:blur(24px) saturate(140%);-webkit-backdrop-filter:blur(24px) saturate(140%);
  border-right:1px solid rgba(255,255,255,.06);box-shadow:1px 0 0 rgba(0,0,0,.4),var(--bevel)}
.side::-webkit-scrollbar{width:8px}
.side::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:8px;border:2px solid transparent;background-clip:padding-box}
.side::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.22);background-clip:padding-box}

/* ── navegación por categorías colapsables ── */
.nav-group-wrap{display:flex;flex-direction:column}
.nav-group{display:flex;align-items:center;gap:12px;width:100%;padding:10px 13px;border:1px solid transparent;border-radius:13px;
  background:none;color:var(--text3);font-family:inherit;font-size:.82rem;font-weight:600;letter-spacing:.01em;cursor:pointer;
  text-transform:none;transition:background .15s,color .15s}
.nav-group:hover{background:rgba(255,255,255,.04);color:var(--text)}
.nav-group svg{width:17px;height:17px;stroke-width:1.8;flex:none}
.nav-group .chev{margin-left:auto;width:15px;height:15px;color:var(--text-muted);transition:transform .22s ease}
.nav-group-wrap.open>.nav-group{color:var(--text)}
.nav-group-wrap.open .chev{transform:rotate(180deg)}
.nav-group.has-active{color:var(--green-soft)}
.nav-sub{display:grid;grid-template-rows:0fr;transition:grid-template-rows .24s cubic-bezier(.4,0,.2,1)}
.nav-group-wrap.open>.nav-sub{grid-template-rows:1fr}
.nav-sub-inner{overflow:hidden;min-height:0;display:flex;flex-direction:column;gap:2px;padding:2px 0 4px}
.nav-sub .nav-item{margin-left:12px;padding:8px 12px;font-size:.86rem;border-radius:11px}
.nav-sub .nav-item svg{width:16px;height:16px}
.nav-sub .nav-item.on::before{left:-26px}
.side-pin{display:flex;flex-direction:column;gap:3px;margin-bottom:4px}
.side-brand{display:flex;align-items:center;gap:11px;padding:8px 10px 18px;border-bottom:1px solid var(--border);margin-bottom:12px}
.side-brand img{height:30px}
.side-brand .n{font-family:'Space Grotesk';font-weight:700;font-size:1.02rem;letter-spacing:.01em}
.side-brand .n b{color:var(--green-soft)}
.side-sec{font-family:var(--mono);font-size:.62rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.14em;padding:16px 12px 7px}
.nav-item{position:relative;display:flex;align-items:center;gap:12px;padding:10px 13px;border-radius:13px;color:var(--text2);font-size:.9rem;font-weight:500;
  text-decoration:none;transition:all var(--transition);border:1px solid transparent}
.nav-item svg{width:18px;height:18px;stroke-width:1.8;flex:none;transition:transform var(--transition)}
.nav-item:hover{background:rgba(255,255,255,.045);color:var(--text)}
.nav-item:hover svg{transform:scale(1.08)}
.nav-item.on{color:var(--green-soft);
  background:linear-gradient(135deg,rgba(52,211,153,.18),rgba(16,185,129,.06));
  border-color:rgba(52,211,153,.28);box-shadow:0 6px 18px -8px rgba(16,185,129,.5),var(--bevel)}
.nav-item.on::before{content:'';position:absolute;left:-14px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:0 3px 3px 0;background:linear-gradient(var(--green-soft),var(--emerald));box-shadow:0 0 10px rgba(52,211,153,.6)}
.nav-item .badge{margin-left:auto;font-family:var(--mono);font-size:.64rem;background:var(--surface2);color:var(--text3);padding:1px 7px;border-radius:9999px}
.nav-item.on .badge{background:rgba(52,211,153,.2);color:var(--green-soft)}
.side-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}

/* topbar */
.main{position:relative;z-index:1;display:flex;flex-direction:column;min-width:0}
.topbar{position:sticky;top:0;z-index:40;min-height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px 28px;background:linear-gradient(180deg,rgba(11,15,13,.7),rgba(11,15,13,.5));
  backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border-bottom:1px solid rgba(255,255,255,.05)}
.topbar .crumb{font-family:var(--mono);font-size:.82rem;color:var(--text3)}
.topbar .crumb b{color:var(--text);font-weight:600}
.topbar-r{display:flex;align-items:center;gap:14px}
.userchip{display:flex;align-items:center;gap:10px;padding:6px 13px 6px 8px;border:1px solid rgba(255,255,255,.08);border-radius:100px;
  background:var(--glass-card);box-shadow:var(--bevel),0 6px 16px -10px rgba(0,0,0,.6)}
.userchip .av{width:30px;height:30px;border-radius:50%;background:rgba(52,211,153,.15);border:1px solid rgba(52,211,153,.3);display:grid;place-items:center;color:var(--green-soft);font-family:'Space Grotesk';font-weight:800;font-size:.82rem;box-shadow:var(--bevel)}
.userchip .nm{font-size:.84rem;font-weight:600;line-height:1.1}
.userchip .rl{font-family:var(--mono);font-size:.64rem;color:var(--green-soft);text-transform:uppercase;letter-spacing:.06em}
.logout{color:var(--text3);display:grid;place-items:center;width:36px;height:36px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:var(--glass-card);box-shadow:var(--bevel);transition:all var(--transition)}
.logout:hover{color:var(--coral);border-color:rgba(255,107,107,.4)}.logout svg{width:17px;height:17px}
.content{padding:32px;flex:1;max-width:1240px;width:100%;margin:0 auto}

/* página: header + placeholders */
.page-head{margin-bottom:26px}
.page-head .k{font-family:var(--mono);font-size:.7rem;color:var(--green);text-transform:uppercase;letter-spacing:.16em;margin-bottom:9px}
.page-head h1{font-family:'Space Grotesk';font-size:1.9rem;font-weight:600;letter-spacing:-.6px}
.page-head p{color:var(--text2);margin-top:7px}
.placeholder{border:1px dashed rgba(255,255,255,.1);border-radius:var(--radius);padding:48px;text-align:center;color:var(--text3);font-family:var(--mono);font-size:.85rem;
  background:var(--glass-card);backdrop-filter:blur(16px);box-shadow:var(--bevel)}

/* Ventana de terminal reutilizable (igual que el resumen del cotizador) */
.term{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);
  background:var(--glass-card);backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);
  box-shadow:var(--shadow-soft),var(--bevel);margin-bottom:24px}
.term-bar{display:flex;align-items:center;gap:8px;padding:13px 17px;border-bottom:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02)}
.term-bar .d{width:11px;height:11px;border-radius:50%;flex:none}
.term-bar .d.r{background:#FF5F57}.term-bar .d.y{background:#FEBC2E}.term-bar .d.g{background:#28C840}
.term-bar .t{margin-left:9px;font-family:var(--mono);font-size:.76rem;color:var(--text3)}
.term-bar .t b{color:var(--green-soft);font-weight:500}
.term-bar .term-act{margin-left:auto;display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:100px;
  background:rgba(52,211,153,.11);color:var(--green-soft);border:1px solid rgba(52,211,153,.28);
  font-family:'Space Grotesk';font-weight:600;font-size:.8rem;box-shadow:var(--bevel);transition:all var(--transition)}
.term-bar .term-act:hover{background:rgba(52,211,153,.17);border-color:rgba(52,211,153,.45)}
.term-act svg{width:15px;height:15px}
.term-body{padding:14px}

/* Lista de clientes tipo terminal (filas compactas, línea verde) */
.cli-list{display:flex;flex-direction:column;gap:6px}
.cli-row{display:flex;align-items:center;gap:13px;padding:11px 13px;border-radius:13px;border:1px solid transparent;
  transition:all var(--transition)}
.cli-row:hover{border-color:rgba(52,211,153,.25);background:rgba(52,211,153,.05);transform:translateX(3px)}
.cli-idx{font-family:var(--mono);font-size:.72rem;color:var(--text-muted);width:18px;text-align:right;flex:none}
.cli-dot{width:30px;height:30px;border-radius:9px;flex:none;box-shadow:var(--bevel),0 2px 8px -2px rgba(0,0,0,.5);position:relative}
.cli-dot.is-on::after{content:'';position:absolute;right:-3px;bottom:-3px;width:10px;height:10px;border-radius:50%;background:var(--green);border:2px solid #0b0f0d;box-shadow:0 0 8px var(--green)}
/* Avatar circular del cliente — icono de usuario por defecto, logo cuando exista */
.cli-avatar{position:relative;width:34px;height:34px;border-radius:50%;flex:none;overflow:hidden;
  display:grid;place-items:center;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
  color:var(--text2);box-shadow:var(--bevel)}
.cli-avatar svg{width:17px;height:17px;stroke-width:1.7}
.cli-avatar b{font-family:'Space Grotesk';font-weight:700;font-size:.84rem;color:var(--green-soft)}
.cli-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cli-row:hover .cli-avatar{border-color:rgba(52,211,153,.3);color:var(--green-soft)}
.cli-avatar.is-on::after{content:'';position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;background:var(--green);border:2px solid #0b0f0d;box-shadow:0 0 8px var(--green)}
.cli-main{flex:1;min-width:0}
.cli-main b{font-family:'Space Grotesk';font-size:.96rem;font-weight:600;display:block;letter-spacing:-.2px}
.cli-meta{font-family:var(--mono);font-size:.73rem;color:var(--text3);margin-top:1px;display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.cli-meta .pr{color:var(--green-soft);font-weight:600}
.cli-meta .sep{color:var(--text-muted)}
.cli-right{display:flex;align-items:center;gap:10px;flex:none}
.cli-st{font-family:var(--mono);font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;padding:3px 9px;border-radius:7px;
  background:rgba(255,255,255,.05);color:var(--text3)}
.cli-st.local{background:rgba(52,211,153,.14);color:var(--green-soft)}
.cli-st.vps{background:var(--gradient);color:#04140d}
.cli-st.generado{background:rgba(0,229,199,.14);color:var(--mint)}
/* infra_estado badges */
.cli-st.infra-activo{background:rgba(52,211,153,.14);color:var(--green-soft)}
.cli-st.infra-pendiente{background:rgba(251,191,36,.14);color:#fbbf24}
.cli-st.infra-vencido{background:rgba(239,68,68,.14);color:#f87171}
.cli-st.infra-sin_infra{background:rgba(255,255,255,.05);color:var(--text3)}
.cli-chev{color:var(--text-muted);display:grid;place-items:center;transition:transform var(--transition)}
.cli-chev svg{width:17px;height:17px}
.cli-row:hover .cli-chev{color:var(--green-soft);transform:translateX(2px)}

/* KPIs — tarjetas de vidrio flotante con profundidad en capas */

/* KPIs — tarjetas de vidrio flotante con profundidad en capas */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(196px,1fr));gap:18px;margin-bottom:28px}
.kpi{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);padding:22px 24px;
  background:var(--glass-card);backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);
  box-shadow:var(--shadow-soft),var(--bevel);transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition)}
.kpi::after{content:'';position:absolute;top:-40%;right:-30%;width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle,rgba(52,211,153,.16),transparent 65%);pointer-events:none}
.kpi:hover{transform:translateY(-4px);border-color:rgba(52,211,153,.3);box-shadow:var(--shadow-float),0 0 0 1px rgba(52,211,153,.14),var(--bevel)}
.kpi .lbl{font-family:var(--mono);font-size:.68rem;color:var(--text2);text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:8px}
.kpi .lbl svg{width:16px;height:16px;color:var(--green)}
.kpi .val{font-family:'Space Grotesk';font-size:2.3rem;font-weight:700;margin-top:10px;letter-spacing:-1px}
.kpi .sub{font-size:.78rem;color:var(--text3);margin-top:3px}

/* ===================== Pipeline Kanban (0014) ===================== */
.kanban{display:flex;gap:14px;overflow-x:auto;padding:4px 4px 18px;scroll-snap-type:x proximity}
.kcol{flex:0 0 286px;display:flex;flex-direction:column;border-radius:var(--radius);scroll-snap-align:start;
  background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.008));
  border:1px solid rgba(255,255,255,.07);box-shadow:var(--bevel);min-height:160px}
.kcol-head{display:flex;align-items:center;gap:8px;padding:13px 15px;border-bottom:1px solid rgba(255,255,255,.06)}
.kcol-dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--text-muted)}
.kcol[data-stage="nuevo"] .kcol-dot{background:#6B7280}
.kcol[data-stage="contactado"] .kcol-dot{background:#00E5C7}
.kcol[data-stage="propuesta"] .kcol-dot{background:#FBBF24}
.kcol[data-stage="negociacion"] .kcol-dot{background:#A855F7}
.kcol[data-stage="ganado"] .kcol-dot{background:var(--green)}
.kcol[data-stage="perdido"] .kcol-dot{background:#FF6B6B}
.kcol-head b{font-family:'Space Grotesk';font-size:.9rem;font-weight:600}
.kcol-head .kcount{font-family:var(--mono);font-size:.66rem;color:var(--text3);background:rgba(255,255,255,.05);padding:1px 7px;border-radius:9999px}
.kcol-head .ktot{margin-left:auto;font-family:var(--mono);font-size:.72rem;color:var(--green-soft)}
.kcol-body{flex:1;display:flex;flex-direction:column;gap:9px;padding:11px;min-height:60px;transition:background .18s}
.kcol-body.drop{background:rgba(52,211,153,.06)}
.kcard{position:relative;display:block;padding:12px 13px;border-radius:13px;cursor:grab;
  background:var(--glass-card);border:1px solid rgba(255,255,255,.09);box-shadow:var(--bevel),0 4px 14px -8px rgba(0,0,0,.6);
  transition:border-color var(--transition),transform var(--transition)}
.kcard:hover{border-color:rgba(52,211,153,.3)}
.kcard.drag{opacity:.45;border-style:dashed}
.kcard-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.kcard-top b{font-family:'Space Grotesk';font-size:.92rem;font-weight:600;line-height:1.25}
.kcard-name{font-family:'Space Grotesk';font-size:.92rem;font-weight:600;line-height:1.25;color:var(--text);text-decoration:none;border-bottom:1px solid transparent;transition:.14s}
.kcard-name:hover{color:var(--green-soft);border-bottom-color:rgba(52,211,153,.5)}
.kcard-val{font-family:var(--mono);font-size:.78rem;font-weight:700;color:var(--green-soft);white-space:nowrap}
.kcard-oferta{margin-top:6px;display:flex;align-items:flex-start;gap:6px;font-size:.76rem;line-height:1.35;color:var(--text2);
  background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:8px;padding:6px 9px}
.kcard-oferta svg{width:13px;height:13px;color:var(--mint);flex:none;margin-top:2px}
.kcard-meta{font-family:var(--mono);font-size:.7rem;color:var(--text3);margin-top:5px;display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.kcard-org{font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text2);background:rgba(255,255,255,.05);padding:1px 7px;border-radius:6px}
.kcard-foot{margin-top:9px;display:flex;gap:7px}
.kbtn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:6px 8px;border-radius:9px;font-size:.72rem;font-weight:600;
  font-family:'Space Grotesk';border:1px solid rgba(52,211,153,.28);background:rgba(52,211,153,.1);color:var(--green-soft);cursor:pointer;transition:all var(--transition)}
.kbtn:hover{background:rgba(52,211,153,.17)}
.kbtn.ghost{flex:none;border-color:var(--border);background:rgba(255,255,255,.03);color:var(--text2);text-decoration:none}
.kbtn.ghost:hover{background:rgba(255,255,255,.06);color:var(--text)}
.kbtn svg{width:13px;height:13px}
.kcol-empty{font-family:var(--mono);font-size:.72rem;color:var(--text-muted);text-align:center;padding:14px 6px;border:1px dashed rgba(255,255,255,.08);border-radius:11px}
/* stages de tareas (proyecto) */
.kcol[data-stage="backlog"] .kcol-dot{background:#6B7280}
.kcol[data-stage="en_curso"] .kcol-dot{background:#00E5C7}
.kcol[data-stage="revision"] .kcol-dot{background:#FBBF24}
.kcol[data-stage="hecho"] .kcol-dot{background:var(--green)}
/* prioridad: barra lateral de la tarjeta */
.kcard.prio-alta{border-left:3px solid #FF6B6B}
.kcard.prio-media{border-left:3px solid #FBBF24}
.kcard.prio-baja{border-left:3px solid #6B7280}
.kprio{font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;padding:1px 7px;border-radius:6px;font-family:var(--mono)}
.kprio-alta{background:rgba(255,107,107,.15);color:#ff9a9a}
.kprio-media{background:rgba(251,191,36,.15);color:#fcd34d}
.kprio-baja{background:rgba(255,255,255,.06);color:var(--text3)}
/* barra de progreso en la lista de proyectos */
.proy-bar{display:inline-block;width:70px;height:5px;border-radius:9999px;background:rgba(255,255,255,.08);overflow:hidden;vertical-align:middle}
.proy-bar span{display:block;height:100%;border-radius:9999px;background:linear-gradient(90deg,var(--emerald),var(--green-soft))}

/* ===================== Grillas de contenido (0019/0020) ===================== */
/* estado pill (color dinámico via --gc) */
.gstate{font-family:var(--mono);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  padding:4px 11px;border-radius:8px;white-space:nowrap;
  color:var(--gc,#9fb3a8);background:color-mix(in srgb,var(--gc,#6B7280) 16%,transparent);
  border:1px solid color-mix(in srgb,var(--gc,#6B7280) 35%,transparent)}
/* link del cliente */
.grilla-link{display:flex;align-items:center;gap:6px;flex:1;min-width:220px}
.grilla-link input{flex:1;padding:9px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface2);
  color:var(--green-soft);font-family:var(--mono);font-size:.76rem}
/* feed estilo instagram */
.feed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-top:6px}
.postcard{border-radius:var(--radius);overflow:hidden;background:var(--glass-card);border:1px solid rgba(255,255,255,.08);
  box-shadow:var(--shadow-soft),var(--bevel);transition:transform var(--transition),border-color var(--transition)}
.postcard:hover{transform:translateY(-3px);border-color:rgba(52,211,153,.25)}
.postcard-media{position:relative;aspect-ratio:1;background:var(--surface2);overflow:hidden}
.postcard-media img{width:100%;height:100%;object-fit:cover;display:block}
.postcard-ph{width:100%;height:100%;display:grid;place-items:center;color:var(--text-muted);
  background:repeating-linear-gradient(45deg,rgba(255,255,255,.015) 0 10px,transparent 10px 20px)}
.postcard-ph svg{width:34px;height:34px;stroke-width:1.4}
.post-plat{position:absolute;top:9px;left:9px;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;
  background:rgba(9,13,11,.7);backdrop-filter:blur(6px);color:#fff;border:1px solid rgba(255,255,255,.12)}
.post-plat svg{width:14px;height:14px}
.post-plat-instagram{color:#E1306C}.post-plat-facebook{color:#1877F2}.post-plat-tiktok{color:#fff}.post-plat-linkedin{color:#0A66C2}
.post-tipo{position:absolute;bottom:9px;left:9px;font-family:var(--mono);font-size:.6rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;padding:2px 8px;border-radius:6px;background:rgba(9,13,11,.72);color:var(--green-soft);backdrop-filter:blur(6px)}
.postcard-body{padding:12px 13px;position:relative}
.postcard-cap{font-size:.84rem;color:var(--text);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.postcard-tags{font-size:.76rem;color:var(--mint);margin-top:5px;font-family:var(--mono)}
.postcard-meta{display:flex;gap:10px;margin-top:8px;font-family:var(--mono);font-size:.7rem;color:var(--text3);flex-wrap:wrap}
.post-nota{color:var(--amber)}
.postcard-del{position:absolute;top:10px;right:10px}
.postcard-del .ps-btn{min-height:0;padding:6px 8px;border-radius:8px}
/* ---- Grilla split layout ------------------------------------------------ */
.grilla-split{display:grid;grid-template-columns:minmax(0,1fr) 256px;gap:20px;align-items:start;margin-top:0}
.grilla-feed-col{min-width:0;overflow:hidden}
.ig-sticky{position:sticky;top:76px}

/* Phone frame */
.ig-phone{background:#000;border-radius:30px;border:1.5px solid rgba(255,255,255,.10);
  overflow:hidden;width:100%;max-width:256px;
  box-shadow:0 50px 100px -24px rgba(0,0,0,.9),0 18px 40px -12px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.07)}
.ig-statusbar{height:26px;background:#000;display:flex;align-items:center;justify-content:space-between;
  padding:0 20px;font-size:.6rem;color:rgba(255,255,255,.35);font-family:var(--mono)}
.ig-screen{overflow-y:auto;max-height:534px;background:#000;scrollbar-width:none}
.ig-screen::-webkit-scrollbar{display:none}

/* IG Header */
.ig-header{padding:12px 14px 0}
.ig-avatar-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.ig-av{width:52px;height:52px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;
  background:linear-gradient(135deg,#f9ce34,#ee2a7b,#6228d7);
  font-family:'Space Grotesk';font-size:1.25rem;font-weight:800;color:#fff}
.ig-av img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.ig-stats{display:flex;flex:1}
.ig-stat{flex:1;text-align:center}
.ig-stat-n{display:block;font-weight:700;font-size:.82rem;color:#fff;font-family:'Space Grotesk'}
.ig-stat-l{display:block;font-size:.6rem;color:rgba(255,255,255,.38);margin-top:1px}
.ig-username{font-family:'Space Grotesk';font-weight:700;font-size:.82rem;color:#fff;letter-spacing:-.01em;margin-bottom:2px}
.ig-bio{font-size:.7rem;color:rgba(255,255,255,.55);line-height:1.45;margin-bottom:12px}
.ig-follow-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}
.ig-btn-follow{background:rgba(255,255,255,.1);border:none;border-radius:7px;color:#fff;
  font-size:.7rem;font-weight:600;padding:6px;cursor:pointer;font-family:'Space Grotesk'}
.ig-btn-follow.out{background:rgba(255,255,255,.04);color:rgba(255,255,255,.5)}

/* Tabs */
.ig-tabs{display:flex;border-top:1px solid rgba(255,255,255,.06)}
.ig-tab{flex:1;padding:11px;display:grid;place-items:center;color:rgba(255,255,255,.28)}
.ig-tab.on{color:#fff;border-top:1.5px solid #fff;margin-top:-1.5px}
.ig-tab svg{width:17px;height:17px;stroke-width:1.6}

/* 3×3 grid */
.ig-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5px;background:#111}
.ig-cell{position:relative;aspect-ratio:1;overflow:hidden;cursor:grab}
.ig-cell:active{cursor:grabbing}
.ig-cell img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.ig-cell:hover img{transform:scale(1.05)}
.ig-cell-ph{width:100%;height:100%;display:grid;place-items:center;
  background:linear-gradient(135deg,rgba(30,30,30,1),rgba(20,20,20,1))}
.ig-cell-ph svg{width:22px;height:22px;color:rgba(255,255,255,.12);stroke-width:1.4}
.ig-cell-overlay{position:absolute;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;
  justify-content:center;gap:14px;opacity:0;transition:opacity .18s}
.ig-cell:hover .ig-cell-overlay{opacity:1}
.ig-cell-stat{display:flex;align-items:center;gap:4px;color:#fff;font-weight:700;
  font-family:'Space Grotesk';font-size:.72rem}
.ig-cell-stat svg{width:13px;height:13px;fill:#fff}
.ig-num-badge{position:absolute;top:4px;right:5px;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);
  color:rgba(255,255,255,.5);font-family:var(--mono);font-size:.52rem;font-weight:700;
  padding:1px 5px;border-radius:4px;line-height:1.6}
.ig-tipo-badge{position:absolute;bottom:5px;left:5px;font-size:.52rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.04em;color:#fff;
  background:rgba(0,0,0,.55);backdrop-filter:blur(4px);border-radius:4px;padding:1px 5px}

/* Sortable drag states */
.sortable-ghost{opacity:.35;background:rgba(52,211,153,.08);border-radius:var(--radius)}
.sortable-drag{opacity:.45}
.postcard{cursor:grab}
.postcard:active{cursor:grabbing}

/* Preview label */
.ig-label{text-align:center;margin-top:9px;font-family:var(--mono);font-size:.62rem;color:var(--text-muted);letter-spacing:.03em}

/* historial de aprobaciones */
.aprob-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:.85rem}
.aprob-row:last-child{border-bottom:none}
.aprob-act{font-family:var(--mono);font-size:.64rem;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:6px}
.aprob-submitted{background:rgba(251,191,36,.15);color:#fcd34d}
.aprob-approved{background:rgba(16,185,129,.16);color:var(--green-soft)}
.aprob-changes_requested{background:rgba(251,146,60,.16);color:#fdba74}
.aprob-autor{color:var(--text2);font-weight:600}
.aprob-com{color:var(--text3);font-style:italic}
/* portal del cliente (standalone) */
.portal-wrap{max-width:980px;margin:0 auto;padding:26px 22px 70px}
.portal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}
.portal-brand{display:flex;align-items:center;gap:10px;font-family:'Space Grotesk';font-weight:700}
.portal-brand img{height:30px}.portal-brand b{color:var(--green-soft)}
.portal-hero{margin-bottom:24px}
.portal-hero h1{font-size:2rem;margin-top:6px;letter-spacing:-.5px}
.portal-actions{background:var(--glass-card);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);
  padding:22px;margin-bottom:26px;box-shadow:var(--shadow-soft),var(--bevel)}
.portal-changes summary{cursor:pointer;color:var(--text3);font-size:.88rem;font-weight:600;font-family:'Space Grotesk'}
.portal-changes summary:hover{color:var(--text)}
.portal-banner{display:flex;align-items:center;gap:10px;padding:14px 18px;border-radius:var(--radius);margin-bottom:26px;
  font-weight:600;background:var(--glass-card);border:1px solid rgba(255,255,255,.08)}
.portal-banner svg{width:19px;height:19px}
.portal-banner.ok{color:var(--green-soft);border-color:rgba(52,211,153,.35);background:rgba(52,211,153,.08)}
.portal-banner.warn{color:#fdba74;border-color:rgba(251,146,60,.3);background:rgba(251,146,60,.07)}
.portal-foot{text-align:center;color:var(--text-muted);font-size:.78rem;font-family:var(--mono);margin-top:40px}

/* ===================== Asistente (chatbot) ===================== */
.ch-wrap{display:flex;flex-direction:column;height:calc(100vh - 95px);margin:-28px -28px -50px;overflow:hidden}
.ch-head{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:12px 22px;flex-shrink:0;background:rgba(9,13,11,.85);backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,255,255,.06)}
.ch-head-l{display:flex;align-items:center;gap:11px}
.ch-avatar{width:38px;height:38px;border-radius:11px;flex-shrink:0;display:flex;
  align-items:center;justify-content:center;color:#000;background:var(--gradient);
  box-shadow:0 0 20px rgba(52,211,153,.35)}
.ch-name{font-family:'Space Grotesk';font-weight:700;font-size:.96rem;color:var(--text)}
.ch-sub{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.64rem;color:var(--text3)}
.ch-dot{width:6px;height:6px;border-radius:50%;background:var(--green);
  box-shadow:0 0 8px var(--green);animation:pulse 2s ease-in-out infinite}
.ch-harness-link{font-family:var(--mono);font-size:.7rem;color:var(--green-soft);
  text-decoration:none;padding:6px 12px;border:1px solid rgba(52,211,153,.25);border-radius:8px;transition:all .15s}
.ch-harness-link:hover{background:rgba(52,211,153,.1)}

.ch-messages{flex:1;overflow-y:auto;padding:24px 22px;display:flex;flex-direction:column;gap:16px;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.06) transparent}
.ch-msg{display:flex;flex-direction:column;gap:8px;max-width:760px;width:100%;margin:0 auto}
.ch-msg.ch-user{align-items:flex-end}
.ch-msg.ch-bot{align-items:flex-start}
.ch-bubble{padding:12px 16px;border-radius:16px;font-size:.9rem;line-height:1.55;max-width:80%;white-space:pre-wrap;word-break:break-word}
.ch-user .ch-bubble{background:var(--gradient);color:#06281c;font-weight:500;border-bottom-right-radius:5px}
.ch-bot .ch-bubble{background:var(--glass-card);border:1px solid rgba(255,255,255,.08);
  color:var(--text);border-bottom-left-radius:5px}
.ch-bubble p{margin:0 0 6px}.ch-bubble p:last-child{margin:0}
.ch-bubble b{color:var(--green-soft);font-weight:700}

.ch-typing{display:flex;gap:4px;align-items:center}
.ch-typing span{width:7px;height:7px;border-radius:50%;background:var(--text3);animation:dotBounce 1.2s ease-in-out infinite}
.ch-typing span:nth-child(2){animation-delay:.2s}.ch-typing span:nth-child(3){animation-delay:.4s}

.ch-chips{display:flex;flex-wrap:wrap;gap:7px;max-width:80%}
.ch-chip{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
  color:var(--text2);font-size:.76rem;padding:6px 12px;border-radius:100px;cursor:pointer;transition:all .15s}
.ch-chip:hover{border-color:rgba(52,211,153,.35);color:var(--green-soft);background:rgba(52,211,153,.06)}

.ch-cards{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px;max-width:80%}
.ch-card{background:var(--glass-card);border:1px solid rgba(255,255,255,.08);border-radius:13px;padding:14px}
.ch-stat{min-width:120px;flex:1}
.ch-stat-val{font-family:'Space Grotesk';font-size:1.5rem;font-weight:700;color:var(--text);line-height:1}
.ch-stat-lbl{font-family:var(--mono);font-size:.62rem;color:var(--text3);margin-top:5px;text-transform:uppercase;letter-spacing:.04em}
.ch-prog-card{width:100%}
.ch-prog-top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.7rem;color:var(--text2);margin-bottom:7px}
.ch-prog-track{height:5px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden}
.ch-prog-fill{height:100%;background:var(--gradient);border-radius:3px;transition:width .5s}
.ch-client{min-width:200px;flex:1}
.ch-client-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ch-client-top b{font-size:.86rem;color:var(--text)}
.ch-client-sub{font-size:.72rem;color:var(--text3);margin-top:3px}
.ch-badge{font-family:var(--mono);font-size:.6rem;padding:2px 7px;border-radius:5px;
  background:rgba(255,255,255,.06);color:var(--text3);white-space:nowrap}
.ch-badge.ok{background:rgba(52,211,153,.12);color:var(--green-soft)}
.ch-tasklist{width:100%}
.ch-tasklist-h{font-family:'Space Grotesk';font-weight:700;font-size:.82rem;color:var(--text);
  margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.06)}
.ch-task{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:.8rem}
.ch-task-num{font-family:var(--mono);font-size:.62rem;color:var(--text3);min-width:30px}
.ch-task-tit{color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.ch-input-bar{display:flex;gap:10px;padding:14px 22px;flex-shrink:0;align-items:flex-end;
  background:rgba(9,13,11,.85);backdrop-filter:blur(12px);border-top:1px solid rgba(255,255,255,.07)}
.ch-input{flex:1;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
  border-radius:12px;color:var(--text);padding:12px 16px;font-size:.9rem;outline:none;
  font-family:'Inter',sans-serif;max-width:760px;margin:0 auto;transition:border-color .15s;
  resize:none;line-height:1.5;max-height:180px;overflow-y:hidden}
.ch-input:focus{border-color:rgba(52,211,153,.35)}
.ch-input::placeholder{color:var(--text-muted)}
.ch-send{width:46px;height:46px;border-radius:12px;flex-shrink:0;border:none;cursor:pointer;
  background:var(--gradient);color:#000;display:flex;align-items:center;justify-content:center;
  transition:transform .15s,box-shadow .15s}
.ch-send:hover{transform:scale(1.05);box-shadow:0 0 20px rgba(52,211,153,.4)}

/* ===================== Harness Control (0027) ===================== */
/* Wrapper: full height minus topbar */
.hx-wrap{display:flex;flex-direction:column;height:calc(100vh - 95px);margin:-28px -28px -50px;overflow:hidden}

/* ── Agent bar v2: orb visual ── */
.hx-agent{display:grid;grid-template-columns:auto 1fr auto;align-items:center;
  gap:20px;padding:10px 20px;flex-shrink:0;min-height:58px;
  background:rgba(9,13,11,.85);backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,255,255,.06)}
/* identity block */
.hx-agent-id{display:flex;align-items:center;gap:10px;min-width:130px}
.hx-agent-orb{position:relative;width:14px;height:14px;flex-shrink:0}
.hx-agent-orb::before{content:'';position:absolute;inset:0;border-radius:50%;
  background:var(--text-muted);transition:background .4s,box-shadow .4s}
.hx-orb-ring{position:absolute;inset:-5px;border-radius:50%;
  border:1.5px solid rgba(255,255,255,.08);transition:border-color .4s}
.hx-agent-orb.active::before{background:var(--green);box-shadow:0 0 14px rgba(52,211,153,.7)}
.hx-agent-orb.active .hx-orb-ring{border-color:rgba(52,211,153,.35);
  animation:orbRing 2s ease-in-out infinite}
@keyframes orbRing{0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(1.7);opacity:0}}
.hx-agent-id-text{display:flex;flex-direction:column;gap:2px}
.hx-agent-label{font-family:var(--mono);font-size:.62rem;color:var(--text3);
  font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.hx-status{font-family:var(--mono);font-size:.68rem;font-weight:700;color:var(--text-muted);transition:color .3s}
/* center: La Ola + tarea + vistas */
.hx-agent-mid{display:flex;align-items:center;gap:12px;overflow:hidden;min-width:0}
.hx-agent-task{font-family:'Space Grotesk';font-size:.86rem;font-weight:600;
  color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s;
  flex:1 1 auto;min-width:0}
.hx-view-switch{flex:none}
.hx-agent-task.has-task{color:var(--text)}
.hx-agent-task-dots{display:none;gap:3px;flex-shrink:0}
.hx-agent-task-dots.visible{display:flex}
.hx-agent-task-dots span{width:4px;height:4px;border-radius:50%;
  background:var(--green);animation:dotBounce 1.2s ease-in-out infinite;opacity:.4}
.hx-agent-task-dots span:nth-child(2){animation-delay:.2s}
.hx-agent-task-dots span:nth-child(3){animation-delay:.4s}
@keyframes dotBounce{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-4px);opacity:1}}
/* right */
.hx-agent-r{display:flex;align-items:center;gap:12px;justify-content:flex-end;min-width:210px}
/* ── Presupuesto gauge (reemplaza el hilo de 2px) ── */
.hx-budget{display:flex;flex-direction:column;align-items:stretch;gap:3px;min-width:148px;max-width:180px}
.hx-budget-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.hx-budget-lbl{font-family:var(--mono);font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text3)}
.hx-budget-pct{font-family:var(--mono);font-size:.72rem;font-weight:700;color:var(--green-soft,#34D399);letter-spacing:.02em}
.hx-budget[data-level="warn"] .hx-budget-pct{color:#FBBF24}
.hx-budget[data-level="crit"] .hx-budget-pct{color:#FF6B6B}
.hx-budget-track{position:relative;height:8px;background:rgba(255,255,255,.07);border-radius:4px;overflow:visible}
.hx-budget-fill{position:absolute;left:0;top:0;bottom:0;border-radius:4px;
  background:linear-gradient(90deg,#10B981,var(--green,#34D399));transition:width .55s ease,background .3s}
.hx-budget[data-level="warn"] .hx-budget-fill{background:linear-gradient(90deg,#FBBF24,#F59E0B)}
.hx-budget[data-level="crit"] .hx-budget-fill{background:linear-gradient(90deg,#FF6B6B,#EF4444)}
/* marcas de umbral 60% / 80% */
.hx-budget-mark{position:absolute;top:-2px;bottom:-2px;width:1px;background:rgba(255,255,255,.35);
  transform:translateX(-50%);z-index:2;pointer-events:none}
.hx-budget-mark::after{content:'';position:absolute;top:-3px;left:50%;transform:translateX(-50%);
  width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;
  border-top:3px solid rgba(255,255,255,.4)}
.hx-budget-mark.warn{background:rgba(251,191,36,.7)}
.hx-budget-mark.warn::after{border-top-color:rgba(251,191,36,.8)}
/* proyección a fin de día (aguja vertical) */
.hx-budget-proj{position:absolute;top:-3px;bottom:-3px;width:2px;background:#00E5C7;
  box-shadow:0 0 6px rgba(0,229,199,.7);transform:translateX(-50%);z-index:3;pointer-events:none;
  border-radius:1px}
.hx-budget-meta{font-family:var(--mono);font-size:.58rem;color:var(--text3);
  display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end;line-height:1.3}
.hx-budget-proj-txt{color:#00E5C7;opacity:.9}
.hx-cost{color:var(--text3)}
/* legacy alias (por si queda en otras vistas) */
.hx-token-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.hx-token-bar{width:72px;height:2.5px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden}
.hx-token-fill{height:100%;background:var(--gradient);border-radius:2px;transition:width .6s ease}
.hx-token-label{font-family:var(--mono);font-size:.6rem;color:var(--text3);
  display:flex;align-items:center;gap:4px}
.hx-ts{font-family:var(--mono);font-size:.6rem;color:var(--text-muted)}

/* ── La Ola · waveform de la flota ── */
.hx-ola{position:relative;flex:0 1 280px;min-width:140px;max-width:320px;height:40px;
  background:rgba(0,0,0,.28);border:1px solid rgba(52,211,153,.12);border-radius:8px;
  overflow:hidden;box-shadow:inset 0 0 18px rgba(0,0,0,.35)}
.hx-ola canvas{display:block;width:100%;height:40px}
.hx-ola-lbl{position:absolute;right:6px;top:3px;font-family:var(--mono);font-size:.52rem;
  letter-spacing:.08em;text-transform:uppercase;color:rgba(52,211,153,.45);pointer-events:none}

/* ── Body: layout canónico en bloque Harness (2 cols) más abajo ── */
.hx-projects{overflow-y:auto;padding:16px 18px 24px;border-right:1px solid rgba(255,255,255,.05)}
.hx-feed-col{display:flex;flex-direction:column;overflow:hidden}

/* Section labels — definición canónica al final del bloque Harness */
.hx-live-dot{width:5px;height:5px;border-radius:50%;background:var(--green);
  animation:pulse 2s ease-in-out infinite;flex-shrink:0}

/* ── Project card ── */
.hx-project{background:var(--glass-card);border:1px solid rgba(255,255,255,.07);
  border-radius:var(--radius-sm);margin-bottom:12px;overflow:hidden;
  box-shadow:var(--shadow-soft),var(--bevel);transition:border-color .2s}
.hx-project[data-estado="playing"]{border-color:rgba(52,211,153,.22)}
.hx-proj-head{display:flex;align-items:flex-start;justify-content:space-between;
  padding:10px 12px 8px;gap:8px;border-bottom:1px solid rgba(255,255,255,.04)}
.hx-proj-info{min-width:0;flex:1}
.hx-proj-name{font-family:'Space Grotesk';font-weight:700;font-size:.84rem;
  letter-spacing:-.01em;line-height:1.3;word-break:break-word}
.hx-proj-meta{font-family:var(--mono);font-size:.6rem;color:var(--text3);margin-top:3px}
/* strip de progreso debajo del head (full-width, sin la barra en el head) */
.hx-prog-strip{height:2px;background:rgba(255,255,255,.06);margin:0}
.hx-prog-fill{height:100%;background:var(--gradient);border-radius:1px;transition:width .4s ease}

/* ── Toggle button: compacto (solo icono) ── */
.hx-toggle-btn{display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:6px;cursor:pointer;flex-shrink:0;
  border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);
  color:var(--text2);transition:all .2s}
.hx-toggle-btn:hover{background:rgba(255,255,255,.1);color:var(--text)}
.hx-toggle-btn.playing{border-color:rgba(52,211,153,.3);background:rgba(52,211,153,.08);color:var(--green-soft)}
.hx-toggle-btn.playing:hover{background:rgba(52,211,153,.16)}

/* ── Task rows ── */
.hx-tasks{padding:6px 0}
.hx-task{display:flex;align-items:center;gap:8px;padding:5px 14px;font-size:.82rem;
  border-left:2px solid transparent;transition:background .15s}
.hx-task:hover{background:rgba(255,255,255,.03)}
.hx-task.current{border-left-color:var(--green);background:rgba(52,211,153,.06);
  animation:hxpulse 2.4s ease-in-out infinite}
@keyframes hxpulse{0%,100%{background:rgba(52,211,153,.06)}50%{background:rgba(52,211,153,.12)}}
.hx-task-icon{font-size:.8rem;width:14px;text-align:center;flex-shrink:0}
.hx-task-num{font-family:var(--mono);font-size:.64rem;color:var(--text3);flex-shrink:0;min-width:32px}
.hx-task-title{color:var(--text2);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hx-task[data-status="done"] .hx-task-title{color:var(--text3);text-decoration:line-through}
.hx-task[data-status="doing"] .hx-task-title{color:var(--text);font-weight:500}
.hx-task[data-status="blocked"] .hx-task-icon{color:var(--coral)}
.hx-now-badge{font-family:var(--mono);font-size:.54rem;font-weight:700;letter-spacing:.06em;
  padding:1px 6px;border-radius:4px;background:rgba(52,211,153,.2);
  color:var(--green-soft);border:1px solid rgba(52,211,153,.3);flex-shrink:0}
.hx-no-tasks{font-family:var(--mono);font-size:.72rem;color:var(--text-muted);
  padding:10px 14px;display:flex;align-items:center;gap:6px}
.hx-link{color:var(--green-soft);text-decoration:none}
.hx-link:hover{text-decoration:underline}
.hx-empty{font-family:var(--mono);font-size:.72rem;color:var(--text-muted);padding:10px 14px}
.hx-loading{font-family:var(--mono);font-size:.72rem;color:var(--text-muted);padding:14px}
/* Proyectos pendientes de conectar (compactos) */
.hx-pending-list{margin-bottom:8px}
.hx-pending-row{display:flex;align-items:center;justify-content:space-between;
  padding:5px 14px;font-size:.78rem;color:var(--text3);border-bottom:1px solid rgba(255,255,255,.03)}
.hx-pending-row:last-child{border-bottom:none}
.hx-pending-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;margin-right:10px}

/* ── Activity feed ── */
.hx-feed{flex:1;overflow-y:auto;padding:4px 0 16px;scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.06) transparent}
.hx-log-row{display:flex;align-items:flex-start;gap:7px;padding:5px 14px;
  border-bottom:1px solid rgba(255,255,255,.03);font-size:.76rem;transition:background .15s}
.hx-log-row:hover{background:rgba(255,255,255,.03)}
.hx-log-ts{font-family:var(--mono);font-size:.62rem;color:var(--text-muted);flex-shrink:0;padding-top:1px;min-width:52px}
.hx-log-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:5px}
.hx-log-msg{color:var(--text2);flex:1;line-height:1.4}
.hx-log-detail{display:block;font-family:var(--mono);font-size:.62rem;color:var(--text3);margin-top:2px}

/* ── Toggle de vista (tablero ↔ grafo) ── */
.hx-view-switch{display:flex;gap:2px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:9px;padding:2px;flex-shrink:0}
.hx-view-btn{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:.66rem;
  padding:5px 11px;border-radius:7px;border:none;background:transparent;color:var(--text3);
  cursor:pointer;transition:all .18s}
.hx-view-btn svg{opacity:.7}
.hx-view-btn:hover{color:var(--text2)}
.hx-view-btn.on{background:rgba(52,211,153,.12);color:var(--green-soft)}
.hx-view-btn.on svg{opacity:1}

/* ── Grafo (estilo Obsidian avanzado) ── */
.hx-graph{flex:1;position:relative;overflow:hidden;background:
  radial-gradient(1000px 700px at 50% 42%,rgba(52,211,153,.06),transparent 68%),
  radial-gradient(700px 500px at 80% 90%,rgba(0,229,199,.04),transparent 60%),#070a09;min-height:0}
.hx-graph svg{display:block;width:100%;height:100%;cursor:grab}
.hx-graph svg:active{cursor:grabbing}
.hx-graph .gparts circle{filter:drop-shadow(0 0 2px currentColor)}

/* toolbar superior */
.hx-graph-toolbar{position:absolute;top:12px;left:14px;right:14px;display:flex;
  align-items:center;gap:12px;z-index:15;flex-wrap:wrap}
.hx-graph-stats{font-family:var(--mono);font-size:.66rem;color:var(--text3);
  background:rgba(9,13,11,.8);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.07);
  border-radius:8px;padding:7px 12px}
.hx-graph-stats b{color:var(--green-soft)}
.hx-graph-filters{display:flex;gap:5px}
.gf{font-family:var(--mono);font-size:.62rem;padding:5px 10px;border-radius:7px;cursor:pointer;
  border:1px solid rgba(255,255,255,.08);background:rgba(9,13,11,.8);backdrop-filter:blur(8px);
  color:var(--text-muted);transition:all .15s}
.gf.on{color:var(--text2);border-color:rgba(52,211,153,.25)}
.gf:hover{color:var(--text)}
.hx-graph-ctrls{display:flex;gap:6px;margin-left:auto}
.hx-graph-search{font-family:var(--mono);font-size:.7rem;padding:6px 10px;width:130px;
  border-radius:8px;border:1px solid rgba(255,255,255,.08);background:rgba(9,13,11,.8);
  backdrop-filter:blur(8px);color:var(--text);outline:none}
.hx-graph-search:focus{border-color:rgba(52,211,153,.3)}
.gctrl{width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:.9rem;
  border:1px solid rgba(255,255,255,.08);background:rgba(9,13,11,.8);backdrop-filter:blur(8px);
  color:var(--text3);transition:all .15s}
.gctrl:hover{color:var(--green-soft);border-color:rgba(52,211,153,.3)}

/* leyenda */
.hx-graph-legend{position:absolute;bottom:14px;left:16px;display:flex;flex-wrap:wrap;gap:11px;
  background:rgba(9,13,11,.8);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.07);
  border-radius:10px;padding:9px 13px;max-width:55%;z-index:15}
.hx-graph-legend span{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.6rem;color:var(--text3)}
.hx-graph-legend i{width:9px;height:9px;border-radius:50%;flex-shrink:0}

/* tooltip hover */
.hx-graph-tip{position:absolute;pointer-events:none;z-index:20;background:rgba(14,20,17,.97);
  border:1px solid rgba(52,211,153,.3);border-radius:8px;padding:7px 11px;font-size:.74rem;
  color:var(--text);box-shadow:var(--shadow-card);max-width:240px}
.hx-graph-tip b{color:var(--green-soft)}
.hx-graph-tip span{font-family:var(--mono);font-size:.62rem;color:var(--text3);text-transform:capitalize}

/* panel de detalle (clic en nodo) */
.hx-graph-detail{position:absolute;top:56px;right:14px;width:260px;z-index:18;
  background:rgba(14,20,17,.94);backdrop-filter:blur(14px);border:1px solid rgba(52,211,153,.2);
  border-radius:14px;padding:16px;box-shadow:var(--shadow-float)}
.hx-gd-close{position:absolute;top:10px;right:12px;background:none;border:none;color:var(--text3);
  font-size:1.1rem;cursor:pointer;line-height:1}
.hx-gd-close:hover{color:var(--text)}
.hx-gd-type{font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;color:var(--green-soft)}
.hx-gd-title{font-family:'Space Grotesk';font-weight:700;font-size:.96rem;color:var(--text);
  margin:5px 0 4px;line-height:1.25;padding-right:14px}
.hx-gd-meta{font-family:var(--mono);font-size:.64rem;color:var(--text3);text-transform:capitalize}
.hx-gd-body{font-size:.8rem;color:var(--text2);margin-top:10px;line-height:1.5}
.hx-gd-body b{color:var(--text)}
.hx-gd-actions{margin-top:12px;display:flex;flex-direction:column;gap:7px}
.hx-gd-btn{display:block;text-align:center;background:rgba(52,211,153,.12);
  border:1px solid rgba(52,211,153,.25);border-radius:9px;color:var(--green-soft);
  text-decoration:none;font-size:.78rem;padding:8px;transition:background .15s}
.hx-gd-btn:hover{background:rgba(52,211,153,.2)}

/* ── Config: botón engranaje + panel ── */
.hx-config-btn{width:30px;height:30px;border-radius:7px;flex-shrink:0;cursor:pointer;
  border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:var(--text3);
  display:flex;align-items:center;justify-content:center;transition:all .2s}
.hx-config-btn:hover{color:var(--green-soft);border-color:rgba(52,211,153,.3);transform:rotate(45deg)}
.hx-cfg .hx-drawer-body{padding:14px 20px}
.hx-cfg-sec{font-family:var(--mono);font-size:.62rem;color:var(--green-soft);
  letter-spacing:.06em;text-transform:uppercase;margin:18px 0 8px;padding-bottom:5px;
  border-bottom:1px solid rgba(52,211,153,.15)}
.hx-cfg-sec:first-child{margin-top:0}
.hx-cfg-row{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:8px 0;font-size:.82rem;color:var(--text2)}
.hx-cfg-input{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  border-radius:7px;color:var(--text);padding:6px 10px;font-size:.8rem;outline:none;
  font-family:var(--mono);min-width:90px;text-align:right}
.hx-cfg-input:focus{border-color:rgba(52,211,153,.35)}
.hx-cfg-input.sm{min-width:0;width:80px}
select.hx-cfg-input{text-align:left;cursor:pointer}
.hx-cfg-hours{display:flex;gap:6px}
.hx-cfg-toggle{width:42px;height:24px;border-radius:100px;flex-shrink:0;cursor:pointer;
  border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);
  position:relative;transition:all .2s;padding:0}
.hx-cfg-toggle span{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;
  background:var(--text3);transition:all .2s}
.hx-cfg-toggle.on{background:rgba(52,211,153,.25);border-color:rgba(52,211,153,.4)}
.hx-cfg-toggle.on span{left:22px;background:var(--green)}
.hx-cfg-info{display:flex;flex-direction:column;gap:1px}
.hx-cfg-info > div{display:flex;justify-content:space-between;padding:6px 0;
  border-bottom:1px solid rgba(255,255,255,.04);font-size:.78rem}
.hx-cfg-info span{color:var(--text3)}
.hx-cfg-info b{color:var(--text);font-family:var(--mono);font-size:.74rem;font-weight:600}

/* ── Fase 5: compuertas (propuesta = ámbar espera humano · gate = coral alarma) ── */
.hx-proposal{display:flex;align-items:center;gap:16px;padding:16px 20px;flex-shrink:0;
  border-radius:14px;border:1px solid rgba(251,191,36,.3);
  background:linear-gradient(90deg,rgba(251,191,36,.06),rgba(251,191,36,.02));
  border-bottom:1px solid rgba(251,191,36,.25)}
.hx-prop-icon{width:30px;height:30px;border-radius:8px;flex-shrink:0;display:flex;
  align-items:center;justify-content:center;color:#FBBF24;
  background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.3)}
.hx-prop-body{flex:1;min-width:0}
.hx-prop-title{font-size:.84rem;font-weight:600;color:var(--text2);margin-bottom:3px}
.hx-prop-title b{color:var(--text);font-weight:600}
.hx-prop-plan{font-size:.76rem;color:var(--text3);margin-top:2px;line-height:1.5;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hx-prop-meta{font-family:var(--mono);font-size:.62rem;color:#FBBF24;margin-top:3px}
.hx-prop-actions{display:flex;gap:8px;flex-shrink:0}
.hx-prop-approve{background:var(--green);border:none;color:#000;font-weight:700;
  padding:7px 16px;border-radius:8px;font-size:.78rem;cursor:pointer;transition:background .15s}
.hx-prop-approve:hover{background:var(--primary-light)}
.hx-prop-reject{background:transparent;border:1px solid rgba(255,255,255,.14);
  color:var(--text3);padding:7px 14px;border-radius:8px;font-size:.78rem;cursor:pointer;transition:all .15s}
.hx-prop-reject:hover{border-color:rgba(255,255,255,.28);color:var(--text2)}

.hx-gate{display:flex;align-items:center;gap:16px;padding:16px 20px;flex-shrink:0;
  border-radius:14px;border:1px solid rgba(255,107,107,.3);
  background:linear-gradient(90deg,rgba(255,107,107,.06),rgba(255,107,107,.02));
  border-bottom:1px solid rgba(255,107,107,.35);
  animation:gatePulse 2.2s ease-in-out infinite}
@keyframes gatePulse{0%,100%{background-position:0}50%{background:linear-gradient(90deg,rgba(255,107,107,.20),rgba(255,107,107,.06))}}
.hx-gate-icon{width:30px;height:30px;border-radius:8px;flex-shrink:0;display:flex;
  align-items:center;justify-content:center;color:#FF6B6B;
  background:rgba(255,107,107,.14);border:1px solid rgba(255,107,107,.4)}
.hx-gate-body{flex:1;min-width:0}
.hx-gate-title{font-family:var(--mono);font-size:.72rem;font-weight:700;color:#FF8787;
  letter-spacing:.03em}
.hx-gate-detail{font-size:.76rem;color:var(--text2);margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hx-gate-actions{display:flex;gap:8px;flex-shrink:0}
.hx-gate-allow{background:#FF6B6B;border:none;color:#000;font-weight:700;
  padding:7px 16px;border-radius:8px;font-size:.78rem;cursor:pointer;transition:background .15s}
.hx-gate-allow:hover{background:#ff8787}
.hx-gate-deny{background:transparent;border:1px solid rgba(255,255,255,.18);
  color:var(--text2);padding:7px 14px;border-radius:8px;font-size:.78rem;cursor:pointer;transition:all .15s}
.hx-gate-deny:hover{border-color:rgba(255,255,255,.32)}

/* ── Harness v3: task title btn + to-queue btn ── */
.hx-task-title-btn{background:none;border:none;cursor:pointer;color:var(--text2);
  flex:1;text-align:left;font-size:.82rem;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;padding:0;transition:color .15s}
.hx-task-title-btn:hover{color:var(--text)}
.hx-task[data-status="done"] .hx-task-title-btn{color:var(--text3);text-decoration:line-through}
.hx-task[data-status="doing"] .hx-task-title-btn{color:var(--text);font-weight:500}
.hx-to-queue-btn{margin-left:auto;display:none;background:none;
  border:1px solid rgba(0,229,199,.2);border-radius:4px;
  color:#00E5C7;font-size:.6rem;padding:1px 5px;cursor:pointer;
  font-family:var(--mono);white-space:nowrap;transition:all .15s;flex-shrink:0}
.hx-task:hover .hx-to-queue-btn{display:flex;align-items:center}
.hx-to-queue-btn:hover{background:rgba(0,229,199,.1)}

/* ── Queue column ── */
.hx-queue-col{display:flex;flex-direction:column;overflow:hidden;
  border-right:1px solid rgba(255,255,255,.05)}
.hx-queue{flex:1;overflow-y:auto;padding:4px 0;scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.06) transparent}
.hx-queue-item{display:flex;align-items:center;gap:8px;padding:8px 12px;
  border-bottom:1px solid rgba(255,255,255,.03);cursor:grab;
  transition:background .15s;user-select:none}
.hx-queue-item:active{cursor:grabbing}
.hx-queue-item:hover{background:rgba(255,255,255,.03)}
.hx-queue-item.sortable-ghost{opacity:.35;background:rgba(52,211,153,.05)}
.hx-queue-item.sortable-drag{opacity:.9;background:var(--surface2);
  box-shadow:0 8px 20px rgba(0,0,0,.4)}
.hx-queue-num{font-family:var(--mono);font-size:.62rem;color:var(--text-muted);
  width:14px;text-align:center;flex-shrink:0;font-weight:600}
.hx-queue-num.next{color:var(--green)}
.hx-queue-info{flex:1;min-width:0}
.hx-queue-title{font-size:.74rem;color:var(--text2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hx-queue-project{font-family:var(--mono);font-size:.58rem;color:var(--text-muted);margin-top:1px}
.hx-queue-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;
  font-size:.8rem;padding:1px 5px;border-radius:3px;flex-shrink:0;
  opacity:0;transition:all .15s;line-height:1}
.hx-queue-item:hover .hx-queue-remove{opacity:1}
.hx-queue-remove:hover{color:var(--coral);background:rgba(255,107,107,.1)}
.hx-queue-empty{font-family:var(--mono);font-size:.68rem;color:var(--text-muted);
  padding:18px 12px;line-height:1.8;text-align:center}
.hx-queue-foot{padding:8px 10px;border-top:1px solid rgba(255,255,255,.05);flex-shrink:0}
.hx-start-queue-btn{width:100%;background:rgba(52,211,153,.1);
  border:1px solid rgba(52,211,153,.2);border-radius:7px;
  color:var(--green-soft);font-family:var(--mono);font-size:.7rem;
  padding:7px;cursor:pointer;transition:all .2s;letter-spacing:.02em}
.hx-start-queue-btn:hover{background:rgba(52,211,153,.2);color:var(--green)}
.hx-start-queue-btn:disabled{opacity:.35;cursor:not-allowed}

/* ── Task drawer ── */
.hx-drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:300;
  opacity:0;pointer-events:none;transition:opacity .22s;backdrop-filter:blur(2px)}
.hx-drawer-overlay.open{opacity:1;pointer-events:auto}
.hx-drawer{position:fixed;top:0;right:0;bottom:0;width:440px;
  background:var(--surface);border-left:1px solid rgba(255,255,255,.1);
  z-index:301;transform:translateX(100%);
  transition:transform .28s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;overflow:hidden}
.hx-drawer.open{transform:translateX(0)}
.hx-drawer-head{padding:18px 20px 14px;border-bottom:1px solid rgba(255,255,255,.07);flex-shrink:0}
.hx-drawer-filename{font-family:var(--mono);font-size:.62rem;color:var(--text-muted);margin-bottom:6px}
.hx-drawer-title{font-family:'Space Grotesk';font-size:1rem;font-weight:700;
  color:var(--text);margin-bottom:10px;line-height:1.3}
.hx-drawer-status-row{display:flex;align-items:center;gap:8px}
.hx-drawer-status-lbl{font-family:var(--mono);font-size:.62rem;color:var(--text3)}
.hx-drawer-status-sel{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
  border-radius:6px;color:var(--text2);font-size:.74rem;padding:3px 8px;outline:none;cursor:pointer}
.hx-drawer-status-sel:focus{border-color:rgba(52,211,153,.3)}
.hx-drawer-body{flex:1;overflow-y:auto;padding:16px 20px}
.hx-drawer-lbl{font-family:var(--mono);font-size:.62rem;color:var(--text3);
  letter-spacing:.04em;margin-bottom:6px}
.hx-drawer-textarea{width:100%;background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);border-radius:8px;
  color:var(--text);padding:12px;font-family:var(--mono);font-size:.76rem;
  line-height:1.65;outline:none;resize:vertical;min-height:320px;
  scrollbar-width:thin}
.hx-drawer-textarea:focus{border-color:rgba(52,211,153,.28)}
.hx-drawer-foot{padding:12px 20px;border-top:1px solid rgba(255,255,255,.07);
  display:flex;gap:8px;justify-content:flex-end;flex-shrink:0}
.hx-drawer-btn{padding:7px 18px;border-radius:8px;font-size:.78rem;
  cursor:pointer;font-family:'Inter',sans-serif;transition:all .15s}
.hx-drawer-save{background:var(--green);border:none;color:#000;font-weight:700}
.hx-drawer-save:hover{background:var(--primary-light)}
.hx-drawer-cancel{background:transparent;border:1px solid rgba(255,255,255,.12);
  color:var(--text3)}
.hx-drawer-cancel:hover{border-color:rgba(255,255,255,.25);color:var(--text2)}

/* ── Harness v2: interactive controls ── */
.hx-status-btn{background:none;border:none;cursor:pointer;padding:2px 4px;
  display:flex;align-items:center;border-radius:4px;transition:background .15s;flex-shrink:0;font-size:.8rem}
.hx-status-btn:hover{background:rgba(255,255,255,.09)}
.hx-assign-btn{margin-left:auto;display:none;background:none;
  border:1px solid rgba(52,211,153,.25);border-radius:4px;
  color:var(--green-soft);font-size:.6rem;padding:2px 6px;cursor:pointer;
  font-family:var(--mono);white-space:nowrap;transition:all .15s;flex-shrink:0;align-items:center;gap:3px}
.hx-task:hover .hx-assign-btn{display:flex}
.hx-assign-btn:hover{background:rgba(52,211,153,.13);border-color:rgba(52,211,153,.45)}
.hx-new-task-form{display:flex;gap:5px;padding:7px 12px 8px;
  border-top:1px solid rgba(255,255,255,.04);margin-top:2px}
.hx-new-task-input{flex:1;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);
  border-radius:6px;color:var(--text);padding:4px 8px;font-size:.72rem;outline:none;
  font-family:'Inter',sans-serif}
.hx-new-task-input:focus{border-color:rgba(52,211,153,.3)}
.hx-new-task-input::placeholder{color:var(--text-muted)}
.hx-new-task-submit{background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.2);
  border-radius:6px;color:var(--green-soft);font-size:.85rem;padding:2px 10px;cursor:pointer;
  transition:background .15s;flex-shrink:0}
.hx-new-task-submit:hover{background:rgba(52,211,153,.22)}
.hx-connect-btn{background:none;border:1px solid rgba(255,255,255,.1);border-radius:4px;
  color:var(--text3);font-size:.64rem;padding:2px 8px;cursor:pointer;
  font-family:var(--mono);white-space:nowrap;transition:all .15s;flex-shrink:0}
.hx-connect-btn:hover{border-color:rgba(0,229,199,.35);color:#00E5C7}
.hx-cmd-bar{display:flex;gap:6px;padding:8px 10px;
  border-top:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.015);flex-shrink:0}
.hx-cmd-input{flex:1;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);
  border-radius:6px;color:var(--text);padding:5px 9px;font-size:.72rem;outline:none;
  font-family:var(--mono)}
.hx-cmd-input:focus{border-color:rgba(0,229,199,.3)}
.hx-cmd-input::placeholder{color:var(--text-muted)}
.hx-cmd-submit{background:rgba(0,229,199,.08);border:1px solid rgba(0,229,199,.2);
  border-radius:6px;color:#00E5C7;font-size:.8rem;padding:4px 10px;cursor:pointer;
  font-family:var(--mono);transition:background .15s;flex-shrink:0}
.hx-cmd-submit:hover{background:rgba(0,229,199,.18)}
.hx-agent-toggle{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
  border-radius:6px;color:var(--text3);font-family:var(--mono);font-size:.64rem;
  padding:3px 8px;cursor:pointer;transition:all .2s;letter-spacing:.04em}
.hx-agent-toggle:hover{border-color:rgba(52,211,153,.35);color:var(--green-soft)}

/* ===================== Grilla avanzada: editor + diseñador ===================== */
.img-input-row{display:flex;gap:6px;align-items:center}
.img-input-row input[type=text],.img-input-row > input:not([type]){flex:1}
.postcard-actions{display:flex;gap:5px;align-items:center}

/* editor drawer */
.gd-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:300;opacity:0;
  pointer-events:none;transition:opacity .22s;backdrop-filter:blur(2px)}
.gd-overlay.open{opacity:1;pointer-events:auto}
.gd-drawer{position:fixed;top:0;right:0;bottom:0;width:400px;background:var(--surface);
  border-left:1px solid rgba(255,255,255,.1);z-index:301;transform:translateX(100%);
  transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;overflow:hidden}
.gd-drawer.open{transform:translateX(0)}
.gd-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;
  border-bottom:1px solid rgba(255,255,255,.07)}
.gd-drawer-tag{font-family:var(--mono);font-size:.7rem;color:var(--green-soft);letter-spacing:.04em}
.gd-x{background:none;border:none;color:var(--text3);font-size:1.4rem;cursor:pointer;line-height:1}
.gd-x:hover{color:var(--text)}
.gd-drawer-body{flex:1;overflow-y:auto;padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.gd-drawer-body label{display:flex;flex-direction:column;gap:5px;font-size:.78rem;color:var(--text2)}
.gd-drawer-body label small{color:var(--text3);font-weight:400}
.gd-drawer-body input,.gd-drawer-body select,.gd-drawer-body textarea{background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text);padding:8px 10px;
  font-size:.82rem;outline:none;font-family:'Inter',sans-serif;resize:vertical}
.gd-drawer-body input:focus,.gd-drawer-body select:focus,.gd-drawer-body textarea:focus{border-color:rgba(52,211,153,.35)}
.gd-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.gd-edit-preview{aspect-ratio:1;border-radius:12px;overflow:hidden;background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center}
.gd-edit-preview img{width:100%;height:100%;object-fit:cover}
.gd-edit-ph{color:var(--text-muted)}
.gd-drawer-foot{padding:14px 20px;border-top:1px solid rgba(255,255,255,.07);display:flex;gap:8px;justify-content:flex-end}

/* diseñador modal */
.dz-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:320;display:none;
  align-items:center;justify-content:center;backdrop-filter:blur(4px);padding:20px}
.dz-overlay.open{display:flex}
.dz-modal{width:min(960px,96vw);max-height:92vh;background:var(--surface);border:1px solid rgba(255,255,255,.1);
  border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-float)}
.dz-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;
  border-bottom:1px solid rgba(255,255,255,.07);font-family:'Space Grotesk';font-weight:600;font-size:.9rem}
.dz-head b{color:var(--green-soft)}
.dz-body{display:grid;grid-template-columns:1fr 320px;gap:0;flex:1;overflow:hidden;min-height:0}
.dz-canvas-wrap{display:flex;align-items:center;justify-content:center;padding:24px;background:
  radial-gradient(600px 400px at 50% 40%,rgba(52,211,153,.05),transparent),#070a09;overflow:auto}
#dz-canvas{width:min(440px,46vw);height:min(440px,46vw);border-radius:8px;box-shadow:0 12px 40px rgba(0,0,0,.5)}
.dz-controls{overflow-y:auto;padding:18px;border-left:1px solid rgba(255,255,255,.07);
  display:flex;flex-direction:column;gap:9px;scrollbar-width:thin}
.dz-sec{font-family:var(--mono);font-size:.62rem;color:var(--green-soft);letter-spacing:.06em;
  text-transform:uppercase;margin:8px 0 2px;padding-bottom:4px;border-bottom:1px solid rgba(52,211,153,.15)}
.dz-sec:first-child{margin-top:0}
.dz-bg-types{display:flex;gap:5px}
.dz-chip{flex:1;font-family:var(--mono);font-size:.64rem;padding:6px;border-radius:7px;cursor:pointer;
  border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:var(--text3);transition:all .15s}
.dz-chip.on{background:rgba(52,211,153,.12);color:var(--green-soft);border-color:rgba(52,211,153,.3)}
.dz-swatches{display:flex;flex-wrap:wrap;gap:6px}
.dz-sw{width:30px;height:30px;border-radius:7px;cursor:pointer;border:2px solid transparent;transition:all .15s}
.dz-sw.on{border-color:var(--green);transform:scale(1.08)}
.dz-toggle-row{display:flex;align-items:center;justify-content:space-between;font-size:.8rem;color:var(--text2)}
.dz-pos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;width:90px}
.dz-pos{aspect-ratio:1;border-radius:5px;cursor:pointer;border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);transition:all .15s}
.dz-pos.on{background:rgba(52,211,153,.3);border-color:var(--green)}
.dz-range{display:flex;align-items:center;gap:8px;font-size:.74rem;color:var(--text3)}
.dz-range input{flex:1}
.dz-controls textarea{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
  border-radius:8px;color:var(--text);padding:8px 10px;font-size:.82rem;outline:none;
  font-family:'Inter',sans-serif;resize:vertical}
.dz-field{display:flex;flex-direction:column;gap:4px;font-size:.72rem;color:var(--text3)}
.dz-field select,.dz-field input{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
  border-radius:7px;color:var(--text);padding:6px 8px;font-size:.78rem;outline:none}
.dz-row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dz-save{width:100%;justify-content:center;margin-top:6px}

/* ===================== Configuración ===================== */
.cfg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.cfg-grid .an-wide{grid-column:1 / -1}
.cfg-integs{display:flex;flex-direction:column;gap:10px}
.cfg-integ{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:12px 14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:11px}
.cfg-integ-l{display:flex;align-items:center;gap:11px;min-width:0}
.cfg-dot{width:9px;height:9px;border-radius:50%;background:var(--text-muted);flex-shrink:0}
.cfg-dot.on{background:var(--green);box-shadow:0 0 8px var(--green)}
.cfg-integ-name{font-size:.86rem;color:var(--text);font-weight:600}
.cfg-integ-desc{font-size:.74rem;color:var(--text3);margin-top:2px}
.cfg-integ-r{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.cfg-badge{font-family:var(--mono);font-size:.6rem;padding:3px 8px;border-radius:6px;
  background:rgba(255,255,255,.06);color:var(--text3);white-space:nowrap}
.cfg-badge.ok{background:rgba(52,211,153,.14);color:var(--green-soft)}
.cfg-como{font-family:var(--mono);font-size:.58rem;color:var(--text-muted);max-width:220px;text-align:right}
.cfg-users{display:flex;flex-direction:column;gap:8px}
.cfg-user{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.cfg-user:last-child{border-bottom:none}
.cfg-av{width:30px;height:30px;border-radius:9px;background:var(--gradient);color:#06281c;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.82rem;flex-shrink:0}
.cfg-user-info{flex:1;min-width:0}
.cfg-user-name{font-size:.82rem;color:var(--text)}
.cfg-user-email{font-family:var(--mono);font-size:.62rem;color:var(--text3)}
.cfg-rol{font-family:var(--mono);font-size:.6rem;color:var(--green-soft);background:rgba(52,211,153,.1);
  padding:2px 8px;border-radius:6px}

/* ===================== Facturación ===================== */
.fac-table{width:100%;border-collapse:collapse;background:var(--glass-card);
  border:1px solid rgba(255,255,255,.08);border-radius:14px;overflow:hidden}
.fac-table th{font-family:var(--mono);font-size:.62rem;color:var(--text3);text-transform:uppercase;
  letter-spacing:.04em;text-align:left;padding:11px 14px;border-bottom:1px solid rgba(255,255,255,.07);font-weight:600}
.fac-table td{padding:11px 14px;font-size:.84rem;color:var(--text2);border-bottom:1px solid rgba(255,255,255,.04)}
.fac-table tbody tr:hover{background:rgba(255,255,255,.03)}
.fac-table tbody tr:last-child td{border-bottom:none}
.fac-table .mono{font-family:var(--mono);font-size:.78rem}
.fac-split{display:grid;grid-template-columns:1fr 280px;gap:20px;align-items:start}
.fac-side{position:sticky;top:80px}
.fac-totals{background:var(--glass-card);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:16px 18px}
.fac-trow{display:flex;justify-content:space-between;padding:7px 0;font-size:.84rem;color:var(--text2)}
.fac-trow b{font-family:var(--mono)}
.fac-trow.total{border-top:1px solid rgba(255,255,255,.1);margin-top:6px;padding-top:12px;font-size:1.05rem;color:var(--text)}
.fac-trow.total b{color:var(--green-soft);font-size:1.2rem;font-weight:700}
.fac-actions{margin-top:16px;display:flex;flex-direction:column;gap:10px}
.fac-actions form{width:100%}.fac-actions .ps-btn-lg{width:100%;justify-content:center}
.fac-nota{font-size:.78rem;color:var(--text3);background:rgba(255,255,255,.03);padding:10px 12px;border-radius:9px}

/* ── Nuevo cargo: form app-like interactivo ── */
.nc-card{background:var(--glass-card);border:1px solid rgba(255,255,255,.09);border-radius:20px;
  padding:22px 24px;margin-bottom:22px;box-shadow:var(--shadow-soft);position:relative;overflow:hidden}
.nc-card::before{content:'';position:absolute;inset:0 0 auto 0;height:2px;background:var(--gradient);opacity:.7}
.nc-head{display:flex;flex-direction:column;gap:2px;margin-bottom:18px}
.nc-title{font-family:'Space Grotesk';font-weight:700;font-size:1.1rem;color:var(--text);display:flex;align-items:center;gap:9px}
.nc-title i{color:var(--green-soft)}
.nc-sub{font-family:var(--mono);font-size:.66rem;color:var(--text3);padding-left:27px}
.nc-step{margin-bottom:18px}
.nc-label{display:flex;align-items:center;gap:8px;font-size:.84rem;font-weight:600;color:var(--text2);margin-bottom:10px}
.nc-n{width:20px;height:20px;border-radius:50%;background:rgba(52,211,153,.14);color:var(--green-soft);
  font-family:var(--mono);font-size:.66rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
/* clientes: chips con avatar */
.nc-clients{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.1) transparent}
.nc-client{display:flex;align-items:center;gap:9px;flex-shrink:0;background:rgba(255,255,255,.04);
  border:1.5px solid rgba(255,255,255,.08);border-radius:100px;padding:6px 14px 6px 6px;cursor:pointer;
  transition:all .18s;color:var(--text2)}
.nc-client:hover{border-color:rgba(255,255,255,.2);transform:translateY(-1px)}
.nc-client.on{border-color:var(--green);background:rgba(52,211,153,.1);color:var(--text)}
.nc-av{width:30px;height:30px;border-radius:50%;background:var(--gradient);color:#06281c;font-weight:700;
  font-size:.82rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nc-cname{font-size:.82rem;font-weight:500;white-space:nowrap}
/* inputs */
.nc-input{width:100%;background:rgba(255,255,255,.04);border:1.5px solid rgba(255,255,255,.1);
  border-radius:12px;color:var(--text);padding:12px 14px;font-size:.92rem;outline:none;
  font-family:'Inter',sans-serif;transition:border-color .15s}
.nc-input:focus{border-color:rgba(52,211,153,.4)}
.nc-input.sm{padding:10px 12px;font-size:.84rem}
.nc-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.nc-chip{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);color:var(--text3);
  font-size:.76rem;padding:6px 13px;border-radius:100px;cursor:pointer;transition:all .15s}
.nc-chip:hover{border-color:rgba(52,211,153,.35);color:var(--green-soft);background:rgba(52,211,153,.06)}
.nc-grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
/* monto grande */
.nc-money{display:flex;align-items:center;background:rgba(255,255,255,.04);border:1.5px solid rgba(255,255,255,.1);
  border-radius:12px;padding:6px 16px;transition:border-color .15s}
.nc-money:focus-within{border-color:rgba(52,211,153,.4)}
.nc-cur{font-family:'Space Grotesk';font-size:1.6rem;font-weight:700;color:var(--text3);margin-right:6px}
.nc-money input{flex:1;background:none;border:none;outline:none;color:var(--text);
  font-family:'Space Grotesk';font-size:1.8rem;font-weight:700;width:100%}
.nc-money input::-webkit-outer-spin-button,.nc-money input::-webkit-inner-spin-button{-webkit-appearance:none}
/* segmented tipo */
.nc-seg{display:flex;gap:4px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:12px;padding:4px}
.nc-seg-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;background:none;border:none;
  color:var(--text3);font-size:.8rem;font-weight:500;padding:9px;border-radius:9px;cursor:pointer;transition:all .15s}
.nc-seg-btn.on{background:rgba(52,211,153,.14);color:var(--green-soft)}
.nc-extra-row{display:flex;align-items:center;gap:12px;margin-top:10px}
.nc-extra-row .nc-input{flex:1}
.nc-toggle-row{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--text2);cursor:pointer;white-space:nowrap}
.nc-toggle{width:42px;height:24px;border-radius:100px;border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);position:relative;cursor:pointer;transition:all .2s;flex-shrink:0;padding:0}
.nc-toggle span{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--text3);transition:all .2s}
.nc-toggle.on{background:rgba(52,211,153,.25);border-color:rgba(52,211,153,.4)}
.nc-toggle.on span{left:22px;background:var(--green)}
/* resumen en vivo */
.nc-summary{background:linear-gradient(160deg,rgba(52,211,153,.08),rgba(0,229,199,.03));
  border:1px solid rgba(52,211,153,.2);border-radius:14px;padding:16px 18px;margin:6px 0 16px}
.nc-sum-head{font-family:var(--mono);font-size:.72rem;color:var(--green-soft);margin-bottom:12px;text-transform:capitalize}
.nc-sum-rows{display:flex;flex-direction:column;gap:7px}
.nc-sum-r{display:flex;justify-content:space-between;font-size:.86rem;color:var(--text2)}
.nc-sum-r b{font-family:var(--mono)}
.nc-sum-r.total{border-top:1px solid rgba(255,255,255,.1);margin-top:5px;padding-top:11px;font-size:1.05rem;color:var(--text)}
.nc-sum-r.total b{font-family:'Space Grotesk';font-size:1.5rem;font-weight:700;color:var(--green-soft)}
/* submit */
.nc-submit{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;
  background:var(--gradient);border:none;color:#06281c;font-family:'Inter',sans-serif;font-weight:700;
  font-size:.96rem;padding:14px;border-radius:13px;cursor:pointer;transition:all .18s}
.nc-submit:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 0 28px rgba(52,211,153,.4);transform:translateY(-1px)}
.nc-submit:disabled{opacity:.4;cursor:not-allowed;background:rgba(255,255,255,.08);color:var(--text3)}
@media(max-width:640px){.nc-grid2{grid-template-columns:1fr}}

/* facturación: tipo badge, itbms checkbox, progreso de pago, cuenta */
.fac-tipo{font-family:var(--mono);font-size:.6rem;color:var(--text3);background:rgba(255,255,255,.06);
  padding:2px 8px;border-radius:5px;text-transform:capitalize}
.fac-itbms-row{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;
  font-size:.82rem;color:var(--text2);cursor:pointer}
.fac-itbms-row input{width:auto!important}
.fac-prog{background:var(--glass-card);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:16px 18px}
.fac-prog-top{display:flex;justify-content:space-between;align-items:baseline;font-size:.82rem;color:var(--text2);margin-bottom:8px}
.fac-prog-pct{font-family:'Space Grotesk';font-size:1.3rem;font-weight:700;color:var(--green-soft)}
.fac-prog-bar{height:8px;background:rgba(255,255,255,.08);border-radius:5px;overflow:hidden}
.fac-prog-bar div{height:100%;background:var(--gradient);border-radius:5px;transition:width .5s}
.fac-saldo{font-family:var(--mono);font-size:.78rem;color:var(--text3);margin-top:10px}
.fac-saldo b{color:#FBBF24}
.fac-saldo.ok{color:var(--green-soft)}
.cuenta-resumen{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.cuenta-resumen.cols-4{grid-template-columns:repeat(4,1fr)}
.cuenta-resumen>div{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:10px 12px}
.cuenta-resumen span{font-family:var(--mono);font-size:.58rem;color:var(--text3);text-transform:uppercase;display:block}
.cuenta-resumen b{font-family:'Space Grotesk';font-size:1.05rem;font-weight:700;color:var(--text);display:block;margin-top:3px}

/* ===================== Analítica (dashboard ejecutivo) ===================== */
.an-head{margin-bottom:20px}
.an-head .k{font-family:var(--mono);font-size:.72rem;color:var(--green);letter-spacing:.16em;text-transform:uppercase}
.an-head h1{font-size:1.9rem;margin:6px 0 4px}
.an-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:22px}
.an-kpi{background:var(--glass-card);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:16px 18px}
.an-kpi-v{font-family:'Space Grotesk';font-size:1.7rem;font-weight:700;line-height:1}
.an-kpi-l{font-family:var(--mono);font-size:.6rem;color:var(--text3);margin-top:6px;text-transform:uppercase;letter-spacing:.04em}
.an-charts{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.an-card{background:var(--glass-card);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:18px;min-width:0}
.an-card.an-wide{grid-column:1 / -1}
.an-card-h{font-family:'Space Grotesk';font-weight:700;font-size:.92rem;color:var(--text);margin-bottom:14px}
.an-empty{font-family:var(--mono);font-size:.72rem;color:var(--text-muted);padding:20px 0;text-align:center}
.an-proy-list{display:flex;flex-direction:column;gap:12px}
.an-proy-top{display:flex;justify-content:space-between;font-size:.82rem;color:var(--text2);margin-bottom:5px}
.an-proy-pct{font-family:var(--mono);font-size:.66rem;color:var(--text3)}
.an-proy-bar{height:6px;background:rgba(255,255,255,.07);border-radius:4px;overflow:hidden}
.an-proy-bar div{height:100%;background:var(--gradient);border-radius:4px;transition:width .5s}
.an-budget{text-align:center;padding:10px 0}
.an-budget-big{font-family:'Space Grotesk';font-size:2.6rem;font-weight:700;line-height:1}
.an-budget-bar{height:7px;background:rgba(255,255,255,.08);border-radius:4px;overflow:hidden;margin:14px 0 10px}
.an-budget-bar div{height:100%;border-radius:4px;transition:width .6s}
.an-budget-txt{font-family:var(--mono);font-size:.68rem;color:var(--text3)}

/* portal: barra de nombre del cliente */
.portal-name-row{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-family:var(--mono);
  font-size:.74rem;color:var(--text3)}
.portal-name-row input{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
  border-radius:8px;color:var(--text);padding:6px 10px;font-size:.82rem;outline:none;
  font-family:'Inter',sans-serif;max-width:200px}
.portal-name-row input:focus{border-color:rgba(52,211,153,.35)}

/* editor: tabs + guion + storyboard */
.gd-tabs{display:flex;gap:2px;padding:0 16px;border-bottom:1px solid rgba(255,255,255,.07);flex-shrink:0}
.gd-tab{background:none;border:none;color:var(--text3);font-size:.78rem;padding:11px 12px;cursor:pointer;
  border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s}
.gd-tab:hover{color:var(--text2)}
.gd-tab.on{color:var(--green-soft);border-bottom-color:var(--green)}
.gd-pane{display:none}
.gd-pane.on{display:block}
.gd-hint{font-size:.76rem;color:var(--text3);margin-bottom:10px;line-height:1.45}
.gd-guion{width:100%;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
  border-radius:10px;color:var(--text);padding:12px;font-family:var(--mono);font-size:.78rem;
  line-height:1.6;outline:none;resize:vertical}
.gd-guion:focus{border-color:rgba(52,211,153,.3)}
.sb-list{display:flex;flex-direction:column;gap:10px}
.sb-empty{font-family:var(--mono);font-size:.72rem;color:var(--text-muted);padding:16px 0;text-align:center}
.sb-card{display:flex;gap:10px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);
  border-radius:12px;padding:10px;position:relative}
.sb-num{position:absolute;top:-7px;left:-7px;width:22px;height:22px;border-radius:50%;background:var(--gradient);
  color:#06281c;font-weight:700;font-size:.72rem;display:flex;align-items:center;justify-content:center;z-index:2}
.sb-thumb{width:64px;height:64px;border-radius:9px;background:rgba(255,255,255,.05);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;color:var(--text-muted);
  border:1px dashed rgba(255,255,255,.12)}
.sb-thumb img{width:100%;height:100%;object-fit:cover}
.sb-thumb:hover{border-color:rgba(52,211,153,.3)}
.sb-fields{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0}
.sb-in{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:6px;
  color:var(--text);padding:5px 8px;font-size:.74rem;outline:none}
.sb-in:focus{border-color:rgba(52,211,153,.3)}
.sb-foot{display:flex;align-items:center;gap:6px;font-size:.66rem;color:var(--text3)}
.sb-dur{width:48px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:5px;
  color:var(--text);padding:3px 6px;font-size:.72rem;outline:none;font-family:var(--mono)}
.sb-del{margin-left:auto;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;
  padding:0 6px;border-radius:4px}
.sb-del:hover{color:var(--coral);background:rgba(255,107,107,.1)}

/* comentarios por post */
.cmt-sec{font-family:var(--mono);font-size:.62rem;color:var(--green-soft);letter-spacing:.06em;
  text-transform:uppercase;margin-top:6px;padding-bottom:5px;border-bottom:1px solid rgba(52,211,153,.15)}
.cmt-list{display:flex;flex-direction:column;gap:7px;max-height:200px;overflow-y:auto}
.cmt-empty{font-family:var(--mono);font-size:.7rem;color:var(--text-muted);padding:8px 0}
.cmt{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);border-radius:9px;padding:8px 10px}
.cmt.cliente{background:rgba(0,229,199,.06);border-color:rgba(0,229,199,.18)}
.cmt-top{display:flex;align-items:center;gap:6px;margin-bottom:3px}
.cmt-top b{font-size:.74rem;color:var(--text)}
.cmt-tag{font-family:var(--mono);font-size:.54rem;background:rgba(0,229,199,.15);color:var(--mint);
  padding:1px 5px;border-radius:4px;text-transform:uppercase}
.cmt-ts{font-family:var(--mono);font-size:.6rem;color:var(--text-muted);margin-left:auto}
.cmt-txt{font-size:.78rem;color:var(--text2);line-height:1.45}
.cmt-add{display:flex;gap:6px}
.cmt-add input{flex:1}

/* IA caption en editor */
.ia-box{background:rgba(52,211,153,.06);border:1px solid rgba(52,211,153,.18);
  border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}
.ia-row{display:flex;gap:6px}
.ia-row input{flex:1}
.ia-row select{width:110px}
.ia-btn{justify-content:center;width:100%;color:var(--green-soft);
  border-color:rgba(52,211,153,.3)!important}
.ia-btn:hover{background:rgba(52,211,153,.12)}

/* vista toggle Feed/Calendario */
.grilla-viewbar{display:flex;gap:4px;margin:18px 0 14px;background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.07);border-radius:11px;padding:3px;width:fit-content}
.gv-btn{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.72rem;
  padding:7px 14px;border-radius:8px;border:none;background:transparent;color:var(--text3);
  cursor:pointer;transition:all .15s}
.gv-btn.on{background:rgba(52,211,153,.12);color:var(--green-soft)}
.gv-btn:hover{color:var(--text2)}

/* calendario mensual */
.grilla-cal{margin-top:6px}
.cal-head{font-family:'Space Grotesk';font-weight:700;font-size:1rem;color:var(--text);margin-bottom:12px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-dow{font-family:var(--mono);font-size:.62rem;color:var(--text3);text-transform:uppercase;
  letter-spacing:.06em;text-align:center;padding:4px 0}
.cal-cell{min-height:96px;background:var(--glass-card);border:1px solid rgba(255,255,255,.06);
  border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:4px}
.cal-cell.empty{background:transparent;border:none}
.cal-day{font-family:var(--mono);font-size:.64rem;color:var(--text3);font-weight:600}
.cal-post{display:flex;align-items:center;gap:5px;background:rgba(255,255,255,.04);
  border-radius:6px;padding:3px;cursor:pointer;transition:background .15s;overflow:hidden}
.cal-post:hover{background:rgba(52,211,153,.12)}
.cal-post img{width:24px;height:24px;border-radius:4px;object-fit:cover;flex-shrink:0}
.cal-post-ph{width:24px;height:24px;border-radius:4px;background:rgba(255,255,255,.1);flex-shrink:0}
.cal-post-cap{font-size:.64rem;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-nodate{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cal-nodate span{font-family:var(--mono);font-size:.66rem;color:var(--text3)}
.cal-chip{background:rgba(251,191,36,.1);border:1px solid rgba(251,191,36,.25);color:var(--amber);
  font-size:.7rem;padding:4px 9px;border-radius:7px;cursor:pointer}
.cal-chip:hover{background:rgba(251,191,36,.18)}

@media(max-width:720px){.app{grid-template-columns:1fr}.side{display:none}.content{padding:20px}
  .dz-body{grid-template-columns:1fr}.cal-cell{min-height:60px}}

/* ═══ Harness v2 — flota de agentes ═══════════════════════════ */
.hx-fleet{margin:14px 0 4px}
.hx-fleet-row{display:flex;flex-direction:column;gap:8px;margin-top:8px}

/* ── .hx-run · componente único (bandeja + historial) ──────────
   Variantes por estado (RUN_ST): .proposed .running .review .failed …
   Modificadores: .hx-run--bandeja · .hx-run--historial · .is-live · .is-pulse */
.hx-run{display:flex;align-items:center;gap:12px;padding:10px 14px;cursor:pointer;
  background:var(--glass-card,rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.07);
  border-radius:12px;transition:border-color .15s,background .15s;--rc:#6B7280}
.hx-run:hover{border-color:color-mix(in srgb,var(--rc) 45%,transparent);
  background:color-mix(in srgb,var(--rc) 6%,transparent)}
.hx-run.proposed{border-color:rgba(251,191,36,.4)}
.hx-run.approved{border-color:rgba(251,191,36,.35)}
.hx-run.running,.hx-run.qa_running{border-color:rgba(0,229,199,.4)}
.hx-run.review{border-color:rgba(0,229,199,.4)}
.hx-run.qa_failed{border-color:rgba(251,191,36,.45)}
.hx-run.qa_escalado,.hx-run.failed{border-color:rgba(255,107,107,.4)}
.hx-run.merged{border-color:rgba(16,185,129,.35)}
.hx-run.rejected{border-color:rgba(107,114,128,.35);opacity:.85}
.hx-run.is-live{border-left:2px solid #00E5C7;align-items:flex-start}
.hx-run.is-live .hx-run-orb{margin-top:6px}
.hx-run.is-live .hx-run-side{margin-top:4px}
.hx-run.choca{border-color:rgba(255,107,107,.5);background:rgba(255,107,107,.04)}
.hx-run .hx-live-term{width:100%}
.hx-run-orb{width:11px;height:11px;border-radius:50%;background:var(--rc,#6B7280);flex-shrink:0;
  box-shadow:0 0 8px var(--rc,transparent)}
.hx-run-orb.pulse,.hx-run.is-pulse .hx-run-orb{animation:hx-run-pulse 1.6s ease-in-out infinite}
@keyframes hx-run-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.6}}
.hx-run-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.hx-run-meta{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.hx-run-st{font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.08em}
.hx-run-proj{font-family:var(--mono);font-size:.62rem;color:var(--text3)}
.hx-run-titulo{font-size:.82rem;color:var(--text1,#e8f0eb);font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hx-run-sub{font-family:var(--mono);font-size:.66rem;color:var(--text3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.hx-run-sub--live{color:#7ee0b5;display:flex;align-items:center;gap:5px;flex-wrap:wrap;white-space:normal}
.hx-run--bandeja{padding:9px 11px;border-radius:9px;background:rgba(0,0,0,.18);border-color:rgba(255,255,255,.04)}
.hx-run--bandeja:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
.hx-run--bandeja .hx-run-titulo{font-size:.78rem}
.hx-run--historial{/* densas, una por fila en el fleet-row */}
.hx-run-side{display:flex;flex-direction:row;align-items:center;gap:6px;flex-shrink:0}
.hx-run--historial .hx-run-side{flex-direction:column;align-items:flex-end;gap:5px}
.hx-run-tok{font-family:var(--mono);font-size:.62rem;color:var(--text3)}
.hx-run-go{background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.4);color:var(--green,#34D399);
  font-family:var(--mono);font-size:.66rem;padding:4px 11px;border-radius:7px;cursor:pointer}
.hx-run-go:hover{background:rgba(52,211,153,.22)}
.hx-run-go.g2{border-color:rgba(0,229,199,.5);color:#00E5C7;background:rgba(0,229,199,.1)}
.hx-run-go.g2:hover{background:rgba(0,229,199,.2)}
.hx-run-drawer .hx-drawer-body{overflow-y:auto}
.hx-run-badges{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.hx-run-badge{font-family:var(--mono);font-size:.6rem;padding:3px 8px;border-radius:6px;
  border:1px solid rgba(255,255,255,.15);color:var(--text2)}
.hx-run-pre{font-family:var(--mono);font-size:.68rem;line-height:1.5;color:var(--text2);
  background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.06);border-radius:8px;
  padding:10px;white-space:pre-wrap;word-break:break-word;max-height:260px;overflow-y:auto;margin:6px 0 14px}
.hx-run-diff{max-height:380px}

/* ═══ Modal de compuerta + toast ══════════════════════════════ */
.hx-modal-overlay{position:fixed;inset:0;background:rgba(4,8,6,.72);backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;z-index:330;
  opacity:0;pointer-events:none;transition:opacity .18s}
.hx-modal-overlay.open{opacity:1;pointer-events:auto}
.hx-modal{width:min(440px,92vw);background:#0d1411;border:1px solid rgba(255,255,255,.1);
  border-radius:18px;padding:26px 26px 20px;text-align:center;
  box-shadow:0 24px 80px rgba(0,0,0,.55);transform:translateY(10px) scale(.97);transition:transform .18s}
.hx-modal-overlay.open .hx-modal{transform:none}
.hx-modal[data-tono="verde"]{--mt:#34D399}
.hx-modal[data-tono="cian"]{--mt:#00E5C7}
.hx-modal[data-tono="ambar"]{--mt:#FBBF24}
.hx-modal[data-tono="morado"]{--mt:#00E5C7} /* legacy → cian (sin púrpura) */
.hx-modal[data-tono="rojo"]{--mt:#FF6B6B}
.hx-modal-glyph{width:52px;height:52px;margin:0 auto 12px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--mt);
  background:color-mix(in srgb,var(--mt) 12%,transparent);
  border:1px solid color-mix(in srgb,var(--mt) 35%,transparent)}
.hx-modal-kicker{font-family:var(--mono);font-size:.6rem;font-weight:700;
  letter-spacing:.14em;color:var(--mt);margin-bottom:6px}
.hx-modal-title{font-size:1rem;font-weight:700;color:var(--text1,#e8f0eb);margin-bottom:8px}
.hx-modal-text{font-size:.78rem;line-height:1.55;color:var(--text2,#9fb3a8)}
.hx-modal-text b{color:var(--text1,#e8f0eb)}
.hx-modal-stat{font-family:var(--mono);font-size:.66rem;color:var(--mt);margin-top:10px;
  background:rgba(0,0,0,.3);border-radius:8px;padding:7px 10px;display:inline-block}
.hx-modal-input{width:100%;margin-top:14px;background:rgba(0,0,0,.3);
  border:1px solid rgba(255,255,255,.12);border-radius:9px;padding:9px 12px;
  color:var(--text1,#e8f0eb);font-size:.78rem;outline:none}
.hx-modal-input:focus{border-color:var(--mt)}
.hx-modal-actions{display:flex;gap:10px;margin-top:20px}
.hx-modal-btn{flex:1;padding:10px;border-radius:10px;font-size:.78rem;font-weight:600;
  cursor:pointer;transition:filter .12s}
.hx-modal-btn:hover{filter:brightness(1.15)}
.hx-modal-btn.cancel{background:transparent;border:1px solid rgba(255,255,255,.14);
  color:var(--text2,#9fb3a8)}
.hx-modal-btn.ok{background:color-mix(in srgb,var(--mt) 18%,transparent);
  border:1px solid color-mix(in srgb,var(--mt) 55%,transparent);color:var(--mt)}
.hx-toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,12px);
  font-size:.76rem;font-weight:600;padding:11px 18px;border-radius:11px;z-index:310;
  opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:80vw}
.hx-toast.show{opacity:1;transform:translate(-50%,0)}
.hx-toast[data-tono="error"]{background:#2a1213;border:1px solid rgba(255,107,107,.4);color:#ffb3b3}
.hx-toast[data-tono="ok"]{background:#0e2018;border:1px solid rgba(52,211,153,.4);color:#7ee0b5}

/* ═══ Tablero moderno: anillo de %, badges de proyecto, vincular ═══ */
.hx-ring{position:relative;width:46px;height:46px;flex-shrink:0}
.hx-ring svg{width:46px;height:46px;transform:rotate(-90deg)}
.hx-ring .ring-bg{fill:none;stroke:rgba(255,255,255,.08);stroke-width:3.4}
.hx-ring .ring-val{fill:none;stroke-width:3.4;stroke-linecap:round;
  transition:stroke-dasharray .6s ease}
.hx-ring-pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:.66rem;font-weight:700}
.hx-ring-pct i{font-style:normal;font-size:.5rem;opacity:.7;margin-left:1px}
.hx-proj-head{display:flex;align-items:center;gap:12px}
.hx-proj-info{flex:1;min-width:0}
.hx-proj-badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:4px}
.hx-pj-badge{font-family:var(--mono);font-size:.58rem;padding:2px 7px;border-radius:6px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);color:var(--text3);
  white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.hx-pj-badge.link{color:#00E5C7;border-color:rgba(0,229,199,.3);background:rgba(0,229,199,.07)}
.hx-pj-badge.git{color:#9fb3a8}
.hx-pj-badge.git .dirty{font-style:normal;color:var(--amber,#FBBF24);margin-left:4px}
.hx-pj-badge.warn{color:var(--amber,#FBBF24);border-color:rgba(251,191,36,.3)}
.hx-pj-badge.time{color:var(--text3)}
.hx-pj-badge.agente{color:#00E5C7;border-color:rgba(0,229,199,.35);background:rgba(0,229,199,.07);
  cursor:pointer;animation:hx-badge-pulse 2s ease-in-out infinite}
@keyframes hx-badge-pulse{0%,100%{opacity:1}50%{opacity:.55}}
.hx-link-btn{background:transparent;border:1px dashed rgba(52,211,153,.4);color:var(--green-soft,#7ee0b5);
  font-family:var(--mono);font-size:.62rem;padding:3px 10px;border-radius:7px;cursor:pointer;
  transition:background .15s,border-color .15s}
.hx-link-btn:hover{background:rgba(52,211,153,.08);border-color:rgba(52,211,153,.7);border-style:solid}

/* feed de actividad: aire + color por tipo en el borde */
.hx-feed-item{border-left:2px solid transparent;padding:6px 8px;border-radius:0 8px 8px 0;
  margin-bottom:2px}
.hx-feed-item:hover{background:rgba(255,255,255,.025)}

/* ═══ /cuentas — mapa de infraestructura PHG ≠ PKSEL ════════════ */
.cu-wrap{padding:6px 0 60px}
.cu-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;
  padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:26px}
.cu-h2{font-size:1.3rem;font-weight:700;margin:0 0 6px;color:var(--text1,#e8f0eb)}
.cu-sub{font-size:.82rem;color:var(--text3);margin:0;max-width:480px;line-height:1.5}
.cu-kpis{display:flex;gap:14px;flex-shrink:0}
.cu-kpi{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);
  border-radius:12px;padding:11px 18px;text-align:center;min-width:96px}
.cu-kpi b{display:block;font-size:1.4rem;font-weight:700;color:var(--text1,#e8f0eb)}
.cu-kpi span{font-family:var(--mono);font-size:.58rem;color:var(--text3);letter-spacing:.06em;
  text-transform:uppercase}
.cu-kpi.phg b{color:#7ec8f5}
.cu-kpi.pksel b{color:#34D399}

.cu-mundo{margin-bottom:38px}
.cu-mundo-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.cu-mundo-bar{width:5px;height:42px;border-radius:3px;flex-shrink:0}
.cu-mundo-id{flex:1;min-width:0}
.cu-mundo-label{font-size:.94rem;font-weight:700;color:var(--text1,#e8f0eb)}
.cu-mundo-sub{font-family:var(--mono);font-size:.66rem;color:var(--text3);margin-top:2px}
.cu-add{background:transparent;border:1px dashed rgba(255,255,255,.18);color:var(--text2);
  font-family:var(--mono);font-size:.66rem;padding:7px 13px;border-radius:9px;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;transition:.15s}
.cu-add:hover{border-color:rgba(52,211,153,.5);border-style:solid;color:var(--green-soft,#7ee0b5);
  background:rgba(52,211,153,.06)}
.cu-add i{width:13px;height:13px}

.cu-mundo[data-mundo="phg"] .cu-add:hover{border-color:#7ec8f5;color:#7ec8f5;
  background:rgba(126,200,245,.06)}

.cu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.cu-card{background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.07);
  border-radius:14px;padding:16px 17px;cursor:pointer;transition:.15s;display:flex;
  flex-direction:column;gap:10px}
.cu-card:hover{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.04);
  transform:translateY(-1px)}
.cu-mundo[data-mundo="phg"] .cu-card:hover{border-color:rgba(126,200,245,.5);
  background:rgba(126,200,245,.04)}
.cu-mundo[data-mundo="pksel"] .cu-card:hover{border-color:rgba(52,211,153,.5);
  background:rgba(52,211,153,.04)}
.cu-card-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.cu-card-name{font-size:.92rem;font-weight:700;color:var(--text1,#e8f0eb)}
.cu-card-rel{font-family:var(--mono);font-size:.56rem;color:var(--text3);background:rgba(255,255,255,.05);
  padding:2px 7px;border-radius:5px;letter-spacing:.04em;white-space:nowrap}
.cu-card-desc{font-size:.76rem;color:var(--text2);line-height:1.45}
.cu-card-grid{display:flex;flex-direction:column;gap:5px;padding-top:8px;
  border-top:1px solid rgba(255,255,255,.05)}
.cu-card-grid > div{display:flex;align-items:center;gap:7px;font-family:var(--mono);
  font-size:.68rem;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cu-card-grid i{width:11px;height:11px;color:var(--text3);flex-shrink:0}
.cu-card-grid .money{color:var(--green-soft,#7ee0b5)}

.cu-empty{background:rgba(255,255,255,.02);border:1px dashed rgba(255,255,255,.1);
  border-radius:12px;padding:24px;text-align:center;font-size:.78rem;color:var(--text3)}

/* drawer del formulario */
.cu-overlay{position:fixed;inset:0;background:rgba(4,8,6,.68);backdrop-filter:blur(6px);
  opacity:0;pointer-events:none;transition:opacity .2s;z-index:300}
.cu-overlay.open{opacity:1;pointer-events:auto}
.cu-drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,94vw);
  background:#0d1411;border-left:1px solid rgba(255,255,255,.08);z-index:310;
  transform:translateX(100%);transition:transform .22s ease;display:flex;flex-direction:column}
.cu-drawer.open{transform:none}
.cu-drawer-head{padding:24px 28px 18px;border-bottom:1px solid rgba(255,255,255,.06);
  position:relative}
.cu-x{position:absolute;top:18px;right:22px;background:transparent;border:none;
  color:var(--text3);font-size:1.5rem;cursor:pointer;line-height:1}
.cu-x:hover{color:var(--text1,#e8f0eb)}
.cu-d-mundo{display:inline-block;font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;
  text-transform:uppercase;padding:3px 9px;border-radius:5px;border:1px solid;margin-bottom:8px}
.cu-d-title{font-size:1.15rem;font-weight:700;margin:0;color:var(--text1,#e8f0eb)}

.cu-form{flex:1;overflow-y:auto;padding:22px 28px 30px}
.cu-sec{font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--text3);margin:20px 0 10px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.05)}
.cu-sec:first-child{margin-top:0}
.cu-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:10px}
.cu-row label.cu-3{grid-column:span 3}
.cu-form label{display:flex;flex-direction:column;gap:5px;font-family:var(--mono);font-size:.6rem;
  color:var(--text3);letter-spacing:.04em;text-transform:uppercase}
.cu-form label.cu-full{display:block;margin-bottom:10px}
.cu-form label.cu-full > input,
.cu-form label.cu-full > textarea{margin-top:5px;width:100%}
.cu-form input,.cu-form select,.cu-form textarea{background:rgba(0,0,0,.3);
  border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:9px 11px;
  color:var(--text1,#e8f0eb);font-size:.78rem;font-family:inherit;outline:none;
  transition:border-color .12s}
.cu-form input:focus,.cu-form select:focus,.cu-form textarea:focus{
  border-color:rgba(52,211,153,.5)}
.cu-form textarea{resize:vertical;min-height:60px;line-height:1.5}

.cu-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:20px;margin-top:16px;
  border-top:1px solid rgba(255,255,255,.06)}
.cu-btn{padding:9px 18px;border-radius:9px;font-size:.78rem;font-weight:600;cursor:pointer;
  border:1px solid;transition:.12s}
.cu-btn.cancel{background:transparent;border-color:rgba(255,255,255,.12);color:var(--text2)}
.cu-btn.cancel:hover{background:rgba(255,255,255,.04)}
.cu-btn.save{background:rgba(52,211,153,.15);border-color:rgba(52,211,153,.55);color:#34D399}
.cu-btn.save:hover{background:rgba(52,211,153,.25)}
.cu-btn.danger{background:transparent;border-color:rgba(255,107,107,.4);color:#ff8a8a;margin-right:auto}
.cu-btn.danger:hover{background:rgba(255,107,107,.1)}

/* ═══ /crm/{slug} — sección Harness del cliente ═══════════════ */
.hx-cli-panel h2{display:flex;align-items:center;gap:8px}
.hx-cli-pct{font-family:var(--mono);font-size:.84rem;font-weight:700}

.hx-cli-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;padding-bottom:12px;
  border-bottom:1px solid rgba(255,255,255,.05)}
.hx-cli-badge{font-family:var(--mono);font-size:.6rem;color:var(--text3);background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);padding:3px 9px;border-radius:6px;display:inline-flex;
  align-items:center;gap:5px;text-decoration:none}
.hx-cli-badge i{width:10px;height:10px}
.hx-cli-badge.link{color:#00E5C7;border-color:rgba(0,229,199,.3);background:rgba(0,229,199,.06)}
.hx-cli-badge.link:hover{background:rgba(126,200,245,.12)}

.hx-cli-runs{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.hx-cli-run{display:flex;align-items:center;gap:9px;padding:8px 11px;background:rgba(255,255,255,.025);
  border:1px solid rgba(255,255,255,.06);border-radius:9px;font-size:.74rem}
.hx-cli-run-dot{width:7px;height:7px;border-radius:50%;background:#6B7280;flex-shrink:0}
.hx-cli-run-running .hx-cli-run-dot{background:#00E5C7;animation:hx-run-pulse 1.6s infinite}
.hx-cli-run-review  .hx-cli-run-dot{background:#00E5C7}
.hx-cli-run-proposed .hx-cli-run-dot{background:#FBBF24}
.hx-cli-run-merged  .hx-cli-run-dot{background:#10B981}
.hx-cli-run-failed  .hx-cli-run-dot{background:#FF6B6B}
.hx-cli-run-tit{flex:1;color:var(--text1,#e8f0eb);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hx-cli-run-est{font-family:var(--mono);font-size:.6rem;color:var(--text3);text-transform:uppercase;
  letter-spacing:.05em}
.hx-cli-run-cost{font-family:var(--mono);font-size:.62rem;color:var(--text3)}

.hx-cli-tasks{display:flex;flex-direction:column;gap:3px}
.hx-cli-task{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:8px;
  font-size:.78rem;transition:background .1s}
.hx-cli-task:hover{background:rgba(255,255,255,.03)}
.hx-cli-task[data-status="done"]{opacity:.6}
.hx-cli-task-icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:.75rem;flex-shrink:0}
.hx-cli-task-icon[data-st="done"]{color:#10B981}
.hx-cli-task-icon[data-st="doing"]{color:#FBBF24}
.hx-cli-task-icon[data-st="review"]{color:#00E5C7}
.hx-cli-task-icon[data-st="blocked"]{color:#FF6B6B}
.hx-cli-task-icon[data-st="todo"]{color:#4B5563}
.hx-cli-task-num{font-family:var(--mono);font-size:.62rem;color:var(--text3);min-width:36px}
.hx-cli-task-tit{flex:1;color:var(--text2)}
.hx-cli-go{margin-left:auto;background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.35);
  color:var(--green-soft,#7ee0b5);font-family:var(--mono);font-size:.6rem;padding:3px 9px;
  border-radius:6px;cursor:pointer;opacity:0;transition:opacity .15s,background .12s}
.hx-cli-task:hover .hx-cli-go{opacity:1}
.hx-cli-go:hover{background:rgba(52,211,153,.22)}

.hx-cli-vincular{padding:18px;text-align:center;background:rgba(255,255,255,.02);
  border:1px dashed rgba(255,255,255,.1);border-radius:11px}
.hx-cli-link-btn{margin-top:10px;background:transparent;border:1px dashed rgba(52,211,153,.45);
  color:var(--green-soft,#7ee0b5);font-family:var(--mono);font-size:.72rem;padding:8px 16px;
  border-radius:8px;cursor:pointer;transition:.15s}
.hx-cli-link-btn:hover{background:rgba(52,211,153,.08);border-style:solid}

/* ═══ CRM holdings + marcas anidadas ════════════════════════════ */
.crm-sec-label{font-family:var(--mono);font-size:.6rem;color:var(--text3);
  letter-spacing:.1em;text-transform:uppercase;margin:18px 0 10px;padding-left:4px}
.crm-sec-label:first-child{margin-top:0}
.crm-holdings{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.crm-holding-card{background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.07);
  border-radius:13px;overflow:hidden}
.crm-holding-card:hover{border-color:rgba(255,255,255,.14)}
.crm-holding-head{display:flex;align-items:center;gap:14px;padding:14px 18px;
  text-decoration:none;color:inherit;transition:background .12s}
.crm-holding-head:hover{background:rgba(255,255,255,.025)}
.crm-h-avatar{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;
  justify-content:center;font-weight:700;font-size:1.05rem;flex-shrink:0}
.crm-h-id{flex:1;min-width:0}
.crm-h-name{font-size:.95rem;font-weight:700;color:var(--text1,#e8f0eb);display:flex;
  align-items:center;gap:9px}
.crm-h-badge{font-family:var(--mono);font-size:.54rem;font-weight:700;letter-spacing:.1em;
  background:rgba(126,200,245,.12);color:#7ec8f5;padding:2px 7px;border-radius:5px;
  border:1px solid rgba(126,200,245,.3)}
.crm-h-meta{font-family:var(--mono);font-size:.66rem;color:var(--text3);margin-top:3px}
.crm-h-chev{color:var(--text3)}
.crm-marcas{border-top:1px solid rgba(255,255,255,.05);
  background:rgba(0,0,0,.15)}
.crm-marca{display:flex;align-items:center;gap:10px;padding:9px 18px 9px 30px;
  text-decoration:none;color:inherit;transition:background .12s;
  border-left:2px solid transparent}
.crm-marca + .crm-marca{border-top:1px solid rgba(255,255,255,.03)}
.crm-marca:hover{background:rgba(52,211,153,.06);border-left-color:rgba(52,211,153,.5)}
.crm-marca-bullet{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.crm-marca-name{font-size:.82rem;font-weight:600;color:var(--text1,#e8f0eb);min-width:140px}
.crm-marca-meta{flex:1;font-family:var(--mono);font-size:.66rem;color:var(--text3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crm-marca-chev{color:var(--text3);opacity:.5}
.crm-marca:hover .crm-marca-chev{opacity:1}

/* breadcrumb del holding en detalle de marca */
.crm-padre-link{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);
  font-size:.7rem;color:#7ec8f5;text-decoration:none;margin-bottom:8px;
  padding:4px 10px;background:rgba(126,200,245,.08);border:1px solid rgba(126,200,245,.25);
  border-radius:7px}
.crm-padre-link:hover{background:rgba(126,200,245,.16)}

/* tablero de marcas dentro del detalle de un holding */
.crm-marcas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:12px;margin-top:14px}
.crm-marca-card{background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.07);
  border-radius:12px;padding:14px;text-decoration:none;color:inherit;display:flex;
  flex-direction:column;gap:9px;transition:.15s;border-left:3px solid var(--mc,#7ec8f5)}
.crm-marca-card:hover{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.04);
  transform:translateY(-1px)}
.crm-mc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.crm-mc-name{font-weight:700;color:var(--text1,#e8f0eb);font-size:.86rem}
.crm-mc-rubro{font-family:var(--mono);font-size:.6rem;color:var(--text3);margin-top:2px}
.crm-mc-pct{font-family:var(--mono);font-size:.7rem;font-weight:700;flex-shrink:0}
.crm-mc-gerente{display:flex;align-items:center;gap:7px;font-size:.74rem;color:var(--text2);
  padding-top:8px;border-top:1px solid rgba(255,255,255,.05)}
.crm-mc-gerente i{width:12px;height:12px;color:var(--text3)}
.crm-mc-gerente em{font-style:normal;color:var(--text3);font-family:var(--mono);font-size:.64rem}
.crm-mc-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;
  font-family:var(--mono);font-size:.64rem}
.crm-mc-pend{color:var(--amber,#FBBF24)}
.crm-mc-pend.none{color:var(--text3)}
.crm-mc-saldo{color:var(--text2)}
.crm-mc-saldo.cero{color:var(--text3)}

/* ─── CRM: filtro de cuenta Hostinger ──────────────────────────────────── */
.crm-filter-bar{display:flex;gap:6px;padding:10px 18px;border-bottom:1px solid rgba(255,255,255,.04)}
.crm-filter-tab{font-family:var(--mono);font-size:.65rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;padding:4px 12px;border-radius:7px;
  border:1px solid rgba(255,255,255,.08);color:var(--text3);text-decoration:none;
  transition:background .13s,color .13s,border-color .13s}
.crm-filter-tab:hover,.crm-filter-tab.active{background:rgba(255,255,255,.07);
  color:var(--text1,#e8f0eb);border-color:rgba(255,255,255,.18)}
.crm-filter-tab.phg.active{background:rgba(126,200,245,.12);color:#7ec8f5;border-color:rgba(126,200,245,.35)}
.crm-filter-tab.pksel.active{background:rgba(52,211,153,.12);color:var(--green-soft);border-color:rgba(52,211,153,.35)}

/* ─── CRM: badge cuenta Hostinger en tarjetas ──────────────────────────── */
.crm-cuenta-badge{font-family:var(--mono);font-size:.54rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;padding:2px 7px;border-radius:5px;vertical-align:middle}
.crm-cuenta-phg{background:rgba(126,200,245,.15);color:#7ec8f5}
.crm-cuenta-pksel{background:rgba(52,211,153,.15);color:var(--green-soft)}

/* ═══ /evoluciona — bandeja de auto-mejoras ════════════════════ */
.ev-wrap{padding:6px 0 60px}
.ev-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;
  padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:22px}
.ev-h2{font-size:1.3rem;font-weight:700;margin:0 0 6px;color:var(--text1,#e8f0eb)}
.ev-sub{font-size:.82rem;color:var(--text3);max-width:520px;margin:0;line-height:1.55}
.ev-analizar{background:linear-gradient(120deg,#34D399,#00E5C7);border:none;
  color:#06281c;font-weight:700;font-size:.84rem;padding:11px 22px;border-radius:11px;
  cursor:pointer;display:flex;align-items:center;gap:9px;
  box-shadow:0 8px 24px rgba(52,211,153,.3);transition:transform .12s,box-shadow .12s}
.ev-analizar:hover{transform:translateY(-1px);box-shadow:0 10px 30px rgba(18,181,166,.4)}
.ev-analizar:disabled{opacity:.7;cursor:wait}
.ev-analizar.thinking i{animation:ev-spin 1.4s linear infinite}
@keyframes ev-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.ev-analizar i{width:15px;height:15px}

.ev-kpis{display:flex;gap:14px;margin-bottom:26px}
.ev-kpi{flex:1;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.07);
  border-radius:12px;padding:14px 18px;text-align:center}
.ev-kpi b{display:block;font-size:1.5rem;font-weight:700;color:var(--text1,#e8f0eb)}
.ev-kpi span{font-family:var(--mono);font-size:.58rem;color:var(--text3);letter-spacing:.06em;
  text-transform:uppercase}
.ev-kpi.alta b{color:#FF8A8A}

.ev-sec-label{font-family:var(--mono);font-size:.6rem;color:var(--text3);
  letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px;padding-left:4px}

.ev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.ev-card{background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.08);
  border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:10px;
  border-left:3px solid rgba(255,255,255,.1);transition:.15s}
.ev-card:hover{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.04)}
.ev-card.prio-alta{border-left-color:#FF6B6B}
.ev-card.prio-media{border-left-color:#FBBF24}
.ev-card.prio-baja{border-left-color:#4B5563}

.ev-card-head{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ev-area{font-family:var(--mono);font-size:.58rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;padding:3px 8px;border-radius:6px;border:1px solid;
  display:inline-flex;align-items:center;gap:5px}
.ev-area i{width:10px;height:10px}
.ev-prio{font-family:var(--mono);font-size:.56rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;padding:3px 7px;border-radius:5px}
.ev-prio.prio-alta{background:rgba(255,107,107,.12);color:#FF8A8A;border:1px solid rgba(255,107,107,.3)}
.ev-prio.prio-media{background:rgba(251,191,36,.1);color:#FBBF24;border:1px solid rgba(251,191,36,.3)}
.ev-prio.prio-baja{background:rgba(75,85,99,.2);color:#9CA3AF;border:1px solid rgba(75,85,99,.4)}
.ev-esf{font-family:var(--mono);font-size:.6rem;color:var(--text3);margin-left:auto}

.ev-titulo{font-size:.95rem;font-weight:700;color:var(--text1,#e8f0eb);line-height:1.35}
.ev-motivo{font-size:.78rem;color:var(--text2);line-height:1.5}

.ev-plan{margin-top:4px}
.ev-plan summary{font-family:var(--mono);font-size:.64rem;color:var(--text3);
  cursor:pointer;list-style:none;display:flex;align-items:center;gap:5px;
  transition:color .12s}
.ev-plan summary::before{content:'›';transition:transform .12s;display:inline-block}
.ev-plan[open] summary::before{transform:rotate(90deg)}
.ev-plan summary:hover{color:var(--text2)}
.ev-plan-body{font-size:.76rem;color:var(--text2);line-height:1.55;padding:10px 0 6px;
  white-space:pre-wrap;font-family:inherit}
.ev-archivos{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.ev-archivos code{font-family:var(--mono);font-size:.62rem;color:var(--text3);
  background:rgba(0,0,0,.3);padding:2px 7px;border-radius:5px;
  border:1px solid rgba(255,255,255,.06)}

.ev-foot{display:flex;gap:8px;justify-content:flex-end;margin-top:auto;padding-top:10px;
  border-top:1px solid rgba(255,255,255,.05)}
.ev-btn{padding:7px 14px;border-radius:8px;font-size:.74rem;font-weight:600;cursor:pointer;
  border:1px solid;transition:.12s;display:inline-flex;align-items:center;gap:5px}
.ev-btn i{width:12px;height:12px}
.ev-btn.cancel{background:transparent;border-color:rgba(255,255,255,.12);color:var(--text2)}
.ev-btn.cancel:hover{background:rgba(255,255,255,.04)}
.ev-btn.go{background:rgba(52,211,153,.15);border-color:rgba(52,211,153,.5);color:#34D399}
.ev-btn.go:hover{background:rgba(52,211,153,.25)}

.ev-empty{text-align:center;padding:50px 30px;background:rgba(255,255,255,.02);
  border:1px dashed rgba(255,255,255,.1);border-radius:14px;color:var(--text3)}
.ev-empty i{width:34px;height:34px;color:#A855F7;margin-bottom:10px}
.ev-empty h3{margin:6px 0;color:var(--text1,#e8f0eb);font-size:1rem}
.ev-empty p{font-size:.82rem;max-width:380px;margin:0 auto;line-height:1.5}

.ev-lanzadas{display:flex;flex-direction:column;gap:5px}
.ev-lanz{display:flex;align-items:center;gap:11px;padding:9px 14px;background:rgba(255,255,255,.025);
  border:1px solid rgba(255,255,255,.06);border-radius:9px;text-decoration:none;
  color:inherit;transition:.12s}
.ev-lanz:hover{background:rgba(255,255,255,.04);border-color:rgba(52,211,153,.3)}
.ev-lanz-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.ev-lanz-tit{flex:1;font-size:.8rem;color:var(--text1,#e8f0eb);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.ev-lanz-area{font-family:var(--mono);font-size:.6rem;color:var(--text3)}
.ev-lanz-run{font-family:var(--mono);font-size:.62rem;color:var(--green-soft,#7ee0b5);
  background:rgba(52,211,153,.08);padding:2px 8px;border-radius:5px}

/* costo USD pegado al contador de tokens del Harness */
.hx-cost{color:var(--green-soft,#7ee0b5);font-weight:600;margin-left:3px}
.hx-cost:empty{display:none}

/* KPI del costo en /evoluciona */
.ev-kpi.cost b{color:var(--green-soft,#7ee0b5)}

/* ═══════════════════════════════════════════════════════════════
   REDISEÑO MODERNO DEL HARNESS — 2 columnas, más aire, jerarquía
   ═══════════════════════════════════════════════════════════════ */

/* Layout principal: scroll natural, sin altura forzada */
.hx-wrap{display:flex;flex-direction:column;height:auto;min-height:calc(100vh - 95px);
  margin:-28px -28px -50px;padding:24px 32px 60px;overflow:visible;gap:20px}

/* Header del agente — más limpio y aireado */
.hx-agent{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;
  padding:14px 20px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06);
  border-radius:14px;backdrop-filter:none;font-size:.84rem}
.hx-agent-id{gap:12px}
.hx-agent-mid{display:flex;align-items:center;gap:14px;justify-self:start;justify-content:flex-start;min-width:0;overflow:hidden}
.hx-agent-task{font-size:.86rem;color:var(--text2);max-width:none}
.hx-agent-task.has-task{color:var(--text1,#e8f0eb);font-weight:500}
.hx-view-switch{margin-left:8px;background:rgba(0,0,0,.25);padding:3px;border-radius:9px;
  border:1px solid rgba(255,255,255,.05)}
.hx-view-btn{padding:5px 11px;font-size:.7rem;border-radius:7px}
.hx-agent-r{gap:14px}
.hx-token-wrap{min-width:140px}
.hx-token-bar{height:4px;border-radius:2px;background:rgba(255,255,255,.06)}
.hx-token-label{font-size:.66rem;margin-top:4px}

/* Flota de agentes */
.hx-fleet{margin:0}
.hx-fleet .hx-sec-label{margin-bottom:10px}

/* BODY: 2 columnas (main + sidebar 340px) — definición única */
.hx-body{display:grid;grid-template-columns:1fr 340px;gap:22px;min-height:auto;
  height:auto;padding:0;overflow:visible;flex:1}
@media(max-width:1100px){.hx-body{grid-template-columns:1fr}}

/* Sidebar derecho: cola arriba, feed abajo, ambos en stack */
.hx-side{display:flex;flex-direction:column;gap:18px;min-width:0}
.hx-side > .hx-queue-col,
.hx-side > .hx-feed-col{flex:none;background:rgba(255,255,255,.02);
  border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:14px 16px;
  display:flex;flex-direction:column;gap:8px;min-width:0}
.hx-side .hx-queue{max-height:240px;overflow-y:auto;background:transparent;border:none;padding:0}
.hx-side .hx-feed{max-height:380px;overflow-y:auto;background:transparent;border:none;padding:0;
  font-size:.76rem;line-height:1.5}
.hx-side .hx-queue-foot{padding:0;margin-top:6px}
.hx-side .hx-cmd-bar{padding:0;margin-top:6px;background:transparent;border:none}

/* Cards de proyecto: limpias, con aire, jerarquía clara */
.hx-projects{background:transparent;border:none;padding:0;min-width:0;display:flex;
  flex-direction:column;gap:12px}
.hx-projects .hx-sec-label{display:flex;justify-content:space-between;align-items:center;
  margin:0 0 6px;padding:0}
#hx-project-list{display:flex;flex-direction:column;gap:12px}
.hx-project{background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06);
  border-radius:14px;padding:18px 20px;transition:border-color .15s}
.hx-project:hover{border-color:rgba(255,255,255,.12)}
.hx-project[data-estado="playing"]{border-left:3px solid rgba(52,211,153,.45)}
.hx-proj-head{padding:0;margin:0 0 12px;border:none;background:transparent}
.hx-tasks{display:flex;flex-direction:column;gap:2px;margin:8px 0 0;padding:0;background:transparent}
.hx-task{padding:7px 10px;border-radius:8px;background:transparent;border:none;
  transition:background .12s;font-size:.8rem}
.hx-task:hover{background:rgba(255,255,255,.03)}
.hx-task.current{background:rgba(251,191,36,.08);border-left:2px solid rgba(251,191,36,.5)}

/* Secciones — labels más legibles, sin fondo de "terminal" */
.hx-sec-label{font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--text3);background:transparent;padding:0;margin:0 0 8px}
.hx-sec-label > span:first-child{color:var(--text2)}

/* Grafo: que herede el espacio sin saltos */
.hx-graph{margin-top:0;border-radius:14px}

/* Sticky agent header al hacer scroll — arranca DEBAJO del topbar (que gana en z),
   fondo SÓLIDO para que el código decorativo del stage no se filtre por detrás */
.hx-agent{position:sticky;top:var(--topbar-h);z-index:30;background:#0d1411;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}

/* Form de nueva tarea, link-btn — más sutiles */
.hx-new-task-form{margin-top:8px;background:transparent;border:1px dashed rgba(255,255,255,.08);
  border-radius:8px}
.hx-link-btn{font-size:.62rem;padding:4px 10px}

/* ═══ Stream de pasos del agente en vivo (drawer del run) ═══════ */
.hx-run-steps{background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.06);
  border-radius:10px;padding:8px;max-height:420px;overflow-y:auto;
  display:flex;flex-direction:column;gap:2px;margin-bottom:14px}
.hx-step-empty{font-family:var(--mono);font-size:.7rem;color:var(--text3);
  padding:14px;text-align:center;font-style:italic}
.hx-step{display:grid;grid-template-columns:54px 22px 1fr;gap:8px;
  padding:6px 8px;border-radius:7px;font-size:.74rem;line-height:1.5;
  border-left:2px solid transparent;transition:background .12s}
.hx-step:hover{background:rgba(255,255,255,.025)}
.hx-step.inicio{border-left-color:var(--green,#34D399);background:rgba(52,211,153,.04)}
.hx-step.fin-ok{border-left-color:#10B981;background:rgba(16,185,129,.05)}
.hx-step.fin-err{border-left-color:#FF6B6B;background:rgba(255,107,107,.06)}
.hx-step.tool{border-left-color:rgba(255,255,255,.08)}
.hx-step.texto{border-left-color:rgba(18,181,166,.4);background:rgba(18,181,166,.03)}
.hx-step-ts{font-family:var(--mono);font-size:.6rem;color:var(--text3);align-self:center;
  white-space:nowrap}
.hx-step-ic{font-size:.82rem;text-align:center;align-self:center;line-height:1}
.hx-step-body{min-width:0;display:flex;flex-direction:column;gap:2px;align-self:center}
.hx-step-verbo{font-family:var(--mono);font-size:.6rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--text2)}
.hx-step-detalle{font-family:var(--mono);font-size:.7rem;color:var(--text1,#e8f0eb);
  background:rgba(255,255,255,.04);padding:1px 6px;border-radius:4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  display:inline-block;max-width:100%;margin-left:6px}
.hx-step-texto{color:var(--text2);font-size:.76rem;line-height:1.55;margin-top:2px;
  padding:6px 9px;background:rgba(18,181,166,.06);border-radius:6px;
  white-space:pre-wrap;word-break:break-word}
.hx-step-stats{font-family:var(--mono);font-size:.62rem;color:var(--text3);margin-left:6px}

/* live dot reutilizado del feed */
.hx-run-steps + .hx-drawer-lbl{margin-top:12px}
#hx-run-live{display:inline-block;width:6px;height:6px;border-radius:50%;background:#34D399;
  animation:hx-live-blink 1.4s ease-in-out infinite;vertical-align:middle}
@keyframes hx-live-blink{0%,100%{opacity:1}50%{opacity:.3}}

/* ═══ Bandeja de atención (arriba del Harness) ═══════════════════ */
.hx-bandeja{display:flex;flex-direction:column;gap:14px;margin-bottom:6px}
.hx-bandeja-grid{display:grid;gap:14px;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.hx-band-bloque{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);
  border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:9px}
.hx-band-bloque.g1{border-color:rgba(251,191,36,.4);
  background:linear-gradient(135deg,rgba(251,191,36,.06),rgba(251,191,36,.02))}
.hx-band-bloque.run{border-color:rgba(0,229,199,.45);
  background:linear-gradient(135deg,rgba(0,229,199,.07),rgba(0,229,199,.02))}
.hx-band-bloque.g2{border-color:rgba(0,229,199,.45);
  background:linear-gradient(135deg,rgba(0,229,199,.07),rgba(0,229,199,.02))}
.hx-band-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0;padding-bottom:8px;
  border-bottom:1px solid rgba(255,255,255,.06)}
.hx-band-ico{width:10px;height:10px;border-radius:50%;flex-shrink:0;background:var(--dc,#6B7280);box-shadow:0 0 10px var(--dc,transparent)}
.hx-band-ico.pulse{animation:hx-live-blink 1.4s ease-in-out infinite}
.hx-band-titulo{font-size:.86rem;font-weight:700;color:var(--text1,#e8f0eb)}
.hx-band-sub{font-family:var(--mono);font-size:.6rem;color:var(--text3);margin-left:auto;
  flex:1 1 100%;order:9;white-space:normal;line-height:1.5}
.hx-band-item{display:flex;align-items:center;gap:10px;padding:9px 11px;
  background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.04);border-radius:9px;
  cursor:pointer;transition:.12s}
.hx-band-item:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
.hx-band-item.live{border-left:2px solid #00E5C7}
.hx-band-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.hx-band-item-titulo{font-size:.78rem;font-weight:600;color:var(--text1,#e8f0eb);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hx-band-item-proj,.hx-band-item-prog,.hx-band-item-stats{font-family:var(--mono);
  font-size:.62rem;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hx-band-item-prog{color:#7ee0b5}
.hx-band-btn{padding:6px 11px;border-radius:7px;font-size:.7rem;font-weight:600;
  cursor:pointer;border:1px solid;transition:.12s;flex-shrink:0;white-space:nowrap}
.hx-band-btn.g1{background:rgba(251,191,36,.18);border-color:rgba(251,191,36,.55);color:#FBBF24}
.hx-band-btn.g1:hover{background:rgba(251,191,36,.3)}
.hx-band-btn.run{background:rgba(0,229,199,.16);border-color:rgba(0,229,199,.5);color:#00E5C7}
.hx-band-btn.run:hover{background:rgba(0,229,199,.28)}
.hx-band-btn.g2{background:rgba(0,229,199,.16);border-color:rgba(0,229,199,.5);color:#00E5C7}
.hx-band-btn.g2:hover{background:rgba(0,229,199,.28)}

/* botón X en items de la bandeja para descartar rápido */
.hx-band-x{width:24px;height:24px;border-radius:6px;background:transparent;
  border:1px solid rgba(255,255,255,.1);color:var(--text3);cursor:pointer;
  font-size:1rem;line-height:1;flex-shrink:0;padding:0;transition:.12s}
.hx-band-x:hover{background:rgba(255,107,107,.12);border-color:rgba(255,107,107,.4);
  color:#FF8A8A}

/* ═══════════════════════════════════════════════════════════════
   GENERADOR — Blueprints versionados por rubro (.gen-*)
   ══════════════════════════════════════════════════════════════ */

/* Layout wrapper */
.gen-wrap{display:flex;flex-direction:column;gap:28px;max-width:1080px}

/* Hero */
.gen-hero{display:flex;align-items:flex-start;justify-content:space-between;
  gap:24px;flex-wrap:wrap}
.gen-h2{font-size:1.5rem;font-weight:700;color:var(--text)}
.gen-sub{color:var(--text2);font-size:.9rem;margin-top:4px;max-width:560px;line-height:1.55}
.gen-kpis{display:flex;gap:12px;flex-wrap:wrap}
.gen-kpi{display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:90px;padding:10px 18px;background:rgba(255,255,255,.04);
  border:1px solid var(--border);border-radius:12px;text-align:center}
.gen-kpi b{font-size:1.6rem;font-weight:700;color:var(--text);line-height:1.1}
.gen-kpi span{font-size:.68rem;color:var(--text3);margin-top:2px;font-family:var(--mono)}
.gen-kpi.accent{border-color:rgba(52,211,153,.3);background:rgba(52,211,153,.06)}
.gen-kpi.accent b{color:var(--green-soft)}

/* Toolbar */
.gen-toolbar{display:flex;gap:10px;align-items:center}
.gen-btn-new{display:inline-flex;align-items:center;gap:7px;
  padding:9px 18px;border-radius:10px;font-size:.85rem;font-weight:600;
  background:rgba(52,211,153,.18);border:1px solid rgba(52,211,153,.45);color:var(--green-soft);
  cursor:pointer;transition:.15s}
.gen-btn-new:hover{background:rgba(52,211,153,.28)}
.gen-btn-new i{width:15px;height:15px}

/* Rubro grouping */
.gen-rubro{display:flex;flex-direction:column;gap:12px}
.gen-rubro-head{display:flex;align-items:center;gap:10px;padding:4px 0}
.gen-rubro-bar{display:inline-block;width:3px;height:18px;border-radius:2px;flex-shrink:0}
.gen-rubro-icon{width:16px;height:16px;flex-shrink:0}
.gen-rubro-label{font-size:.82rem;font-weight:700;color:var(--text2);
  font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase}
.gen-rubro-count{font-size:.72rem;color:var(--text3);font-family:var(--mono);
  background:rgba(255,255,255,.06);border:1px solid var(--border);
  border-radius:20px;padding:1px 9px;margin-left:4px}

/* Cards grid */
.gen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.gen-card{display:flex;flex-direction:column;gap:10px;
  padding:16px 18px;border-radius:14px;
  background:rgba(255,255,255,.03);border:1px solid var(--border);
  border-left:3px solid var(--gc,var(--border));
  transition:background .14s,transform .14s,border-color .14s;
  cursor:pointer;text-decoration:none;color:inherit}
.gen-card:hover{background:rgba(255,255,255,.055);transform:translateY(-2px);
  border-color:rgba(255,255,255,.16)}
.gen-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.gen-card-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.gen-card-name{font-weight:600;font-size:.9rem;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gen-card-version{font-family:var(--mono);font-size:.65rem;color:var(--text3)}
.gen-card-rubro{font-size:.62rem;font-weight:600;font-family:var(--mono);letter-spacing:.06em;
  text-transform:uppercase;padding:2px 8px;border-radius:20px;
  border:1px solid;white-space:nowrap;flex-shrink:0}
.gen-card-desc{font-size:.8rem;color:var(--text2);line-height:1.5;
  font-family:var(--mono);opacity:.85}
.gen-card-stats{display:flex;align-items:center;gap:12px;
  font-size:.7rem;color:var(--text3);font-family:var(--mono);margin-top:2px}
.gen-card-stats span{display:flex;align-items:center;gap:4px}
.gen-card-chev{margin-left:auto;color:var(--text3)}
.gen-card-chev i{width:14px;height:14px}

/* Empty state */
.gen-empty{display:flex;flex-direction:column;align-items:center;gap:14px;
  padding:60px 20px;text-align:center;color:var(--text2)}

/* Drawer overlay */
.gen-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:100;
  opacity:0;pointer-events:none;transition:opacity .2s}
.gen-overlay.open{opacity:1;pointer-events:all}
.gen-drawer{position:fixed;top:0;right:0;width:min(480px,96vw);height:100dvh;
  background:var(--elevated);border-left:1px solid var(--border-light);
  z-index:101;display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform .22s cubic-bezier(.4,0,.2,1)}
.gen-drawer.open{transform:translateX(0)}
.gen-drawer-head{display:flex;align-items:center;gap:12px;
  padding:16px 20px;border-bottom:1px solid var(--border)}
.gen-x{width:28px;height:28px;background:transparent;border:1px solid var(--border);
  border-radius:7px;color:var(--text2);cursor:pointer;font-size:1.1rem;line-height:1;
  flex-shrink:0;transition:.12s}
.gen-x:hover{background:rgba(255,255,255,.06);color:var(--text)}
.gen-d-title{font-size:.95rem;font-weight:700;color:var(--text)}
.gen-form{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:16px 20px}

/* Form helpers reutilizables */
.gen-sec{font-family:var(--mono);font-size:.62rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--text3);
  padding-top:6px;margin-bottom:2px;border-top:1px solid var(--border)}
.gen-sec:first-child{border-top:none;padding-top:0}
.gen-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gen-full{display:flex;flex-direction:column;gap:4px}
.gen-form label,.gen-full,.bib-det-main label{color:var(--text2);font-size:.8rem;font-weight:500;
  display:flex;flex-direction:column;gap:4px}
.gen-form input,.gen-form select,.gen-form textarea,
.gen-det-main input,.gen-det-main select,.gen-det-main textarea,
.bib-det-main input,.bib-det-main select,.bib-det-main textarea{
  background:rgba(255,255,255,.05);border:1px solid var(--border);
  border-radius:8px;padding:8px 11px;color:var(--text);font-size:.85rem;
  font-family:inherit;resize:vertical;transition:border-color .14s}
.gen-form input:focus,.gen-form select:focus,.gen-form textarea:focus,
.gen-det-main input:focus,.gen-det-main select:focus,.gen-det-main textarea:focus,
.bib-det-main input:focus,.bib-det-main select:focus,.bib-det-main textarea:focus{
  outline:none;border-color:var(--border-accent)}
.bib-det-main select option{background:var(--panel,#12181f);color:var(--text)}
.gen-mono{font-family:var(--mono);font-size:.78rem;line-height:1.6}
.gen-actions,.gen-edit-actions{display:flex;gap:8px;justify-content:flex-end;
  padding-top:12px;border-top:1px solid var(--border);margin-top:4px}
.gen-btn{padding:8px 20px;border-radius:9px;font-size:.82rem;font-weight:600;
  cursor:pointer;border:1px solid;transition:.14s}
.gen-btn.save{background:rgba(52,211,153,.18);border-color:rgba(52,211,153,.45);
  color:var(--green-soft)}
.gen-btn.save:hover{background:rgba(52,211,153,.28)}
.gen-btn.cancel{background:transparent;border-color:var(--border);color:var(--text2);
  text-decoration:none;display:inline-flex;align-items:center}
.gen-btn.cancel:hover{background:rgba(255,255,255,.05)}
.gen-btn.danger{background:rgba(255,107,107,.12);border-color:rgba(255,107,107,.4);
  color:#FF8A8A}
.gen-btn.danger:hover{background:rgba(255,107,107,.22)}
.gen-btn-icon{display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:9px;cursor:pointer;border:1px solid;transition:.14s}
.gen-btn-icon i{width:16px;height:16px}

/* ─── Detalle del blueprint ─────────────────────────────────── */
.gen-det-wrap{display:flex;flex-direction:column;gap:0}
.gen-det-head{display:flex;align-items:flex-start;justify-content:space-between;
  gap:16px;margin-bottom:20px;flex-wrap:wrap}
.gen-det-actions{display:flex;gap:8px;align-items:center;padding-top:8px}
.gen-det-cols{display:grid;grid-template-columns:1fr 340px;gap:20px;align-items:start}
@media(max-width:900px){.gen-det-cols{grid-template-columns:1fr}}

/* Editor por secciones */
.gen-det-main{display:flex;flex-direction:column;gap:8px}
.gen-sec-block{background:rgba(255,255,255,.025);border:1px solid var(--border);
  border-radius:12px;overflow:hidden}
.gen-sec-block[open]{border-color:var(--border-light)}
.gen-sec-sum{display:flex;align-items:center;gap:8px;padding:12px 16px;
  cursor:pointer;font-weight:600;font-size:.85rem;color:var(--text2);
  list-style:none;user-select:none;transition:background .12s}
.gen-sec-sum::-webkit-details-marker{display:none}
.gen-sec-block[open] .gen-sec-sum{color:var(--text);background:rgba(255,255,255,.02);
  border-bottom:1px solid var(--border)}
.gen-sec-sum:hover{background:rgba(255,255,255,.04)}
.gen-sec-sum i{width:15px;height:15px;flex-shrink:0}
.gen-sec-body{padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.gen-sec-hint{font-size:.75rem;color:var(--text3);font-family:var(--mono);
  margin-bottom:2px}
.gen-edit-actions{margin-top:8px}

/* Panel instancias en columna derecha */
.gen-inst-panel label{display:flex;flex-direction:column;gap:4px;
  font-size:.8rem;color:var(--text2);font-weight:500;margin-bottom:10px}
.gen-inst-panel input,.gen-inst-panel select{
  background:rgba(255,255,255,.05);border:1px solid var(--border);
  border-radius:8px;padding:7px 10px;color:var(--text);font-size:.83rem;
  font-family:inherit;transition:border-color .14s}
.gen-inst-panel input:focus,.gen-inst-panel select:focus{
  outline:none;border-color:var(--border-accent)}
.gen-inst-form{display:flex;flex-direction:column;gap:2px}
.gen-inst-list{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.gen-inst-row{padding:10px 12px;border-radius:9px;
  background:rgba(255,255,255,.03);border:1px solid var(--border)}
.gen-inst-name{display:flex;align-items:center;gap:6px;
  font-size:.82rem;font-weight:600;color:var(--green-soft);text-decoration:none}
.gen-inst-name:hover{text-decoration:underline}
.gen-inst-meta{display:flex;gap:10px;font-family:var(--mono);font-size:.65rem;
  color:var(--text3);margin-top:3px}
.gen-inst-nota{font-size:.75rem;color:var(--text2);margin-top:4px;
  font-style:italic;opacity:.8}

/* Metadata panel */
.gen-det-meta .det-feat code{font-size:.74rem}

/* Panel generador en CRM detalle */
.gen-crm-panel label{display:flex;flex-direction:column;gap:4px;
  font-size:.8rem;color:var(--text2);font-weight:500;margin-bottom:8px}
.gen-crm-panel select,.gen-crm-panel input{
  background:rgba(255,255,255,.05);border:1px solid var(--border);
  border-radius:8px;padding:7px 10px;color:var(--text);font-size:.83rem;
  font-family:inherit;transition:border-color .14s}
.gen-crm-panel select:focus,.gen-crm-panel input:focus{
  outline:none;border-color:var(--border-accent)}
.gen-crm-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.gen-crm-inst{display:flex;align-items:center;gap:8px;
  padding:8px 10px;border-radius:8px;
  background:rgba(52,211,153,.06);border:1px solid rgba(52,211,153,.2)}
.gen-crm-inst-name{font-size:.8rem;font-weight:600;color:var(--green-soft)}
.gen-crm-inst-ver{font-family:var(--mono);font-size:.65rem;color:var(--text3);margin-left:auto}

/* ═══ QA en el drawer del run ════════════════════════════════════ */
.hx-run-qa{background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.06);
  border-radius:10px;padding:8px;margin-bottom:14px;display:flex;flex-direction:column;gap:8px}
.qa-vuelta{background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06);
  border-radius:8px;padding:9px 11px;border-left:3px solid #6B7280}
.qa-vuelta.paso{border-left-color:#10B981}
.qa-vuelta.fail{border-left-color:#FF6B6B}
.qa-vuelta-head{display:flex;align-items:center;gap:10px;margin-bottom:7px}
.qa-vuelta-num{font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.08em;color:var(--text3)}
.qa-vuelta-est{font-size:.78rem;font-weight:600;color:var(--text1,#e8f0eb)}
.qa-vuelta-dur{font-family:var(--mono);font-size:.62rem;color:var(--text3);margin-left:auto}
.qa-checks{display:flex;flex-direction:column;gap:2px}
.qa-check{display:grid;grid-template-columns:18px 80px 60px 1fr;gap:6px;
  padding:3px 0;font-size:.7rem;align-items:center}
.qa-ic{text-align:center;font-weight:700;font-size:.86rem}
.qa-k{font-family:var(--mono);font-size:.6rem;color:var(--text2);text-transform:uppercase;letter-spacing:.05em}
.qa-r{font-family:var(--mono);font-size:.6rem;font-weight:700;text-transform:uppercase}
.qa-d{font-family:var(--mono);font-size:.68rem;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qa-fb{margin-top:8px;border-top:1px solid rgba(255,255,255,.05);padding-top:7px}
.qa-fb summary{font-family:var(--mono);font-size:.6rem;color:var(--text3);cursor:pointer;letter-spacing:.06em;text-transform:uppercase}
.qa-fb pre{font-family:var(--mono);font-size:.68rem;color:var(--text2);background:rgba(0,0,0,.3);border-radius:6px;padding:8px;margin-top:6px;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}

/* bloque escalado en la bandeja */
.hx-band-bloque.escalado{border-color:rgba(255,107,107,.45);
  background:linear-gradient(135deg,rgba(255,107,107,.08),rgba(255,107,107,.02))}
.hx-band-item.escalado{border-left:2px solid #FF6B6B}
.hx-band-btn.escalado{background:rgba(255,107,107,.16);border-color:rgba(255,107,107,.5);color:#ff8a8a}
.hx-band-btn.escalado:hover{background:rgba(255,107,107,.28)}

/* ─── tabs Ahora / Historial ───────────────────────────────── */
.hx-tabs{display:flex;gap:4px;margin:14px 0 12px;
  border-bottom:1px solid rgba(255,255,255,.06);padding-bottom:0}
.hx-tab{display:inline-flex;align-items:center;gap:8px;
  background:transparent;border:0;color:var(--text3);
  padding:10px 16px 11px;cursor:pointer;
  font-family:inherit;font-size:.78rem;letter-spacing:.02em;
  position:relative;transition:color .15s ease}
.hx-tab:hover{color:var(--text2)}
.hx-tab.active{color:var(--text1)}
.hx-tab.active::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;
  height:2px;background:var(--green-soft,#34D399);border-radius:2px 2px 0 0}
.hx-tab-label{font-weight:500}
.hx-tab-badge{display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:18px;padding:0 6px;border-radius:9px;
  background:rgba(255,255,255,.07);color:var(--text2);
  font-family:var(--mono);font-size:.62rem;line-height:1}
.hx-tab.active .hx-tab-badge{background:rgba(52,211,153,.18);color:#34D399}

.hx-tab-pane{display:none}
.hx-tab-pane.active{display:block}

.hx-tab-empty{display:flex;align-items:flex-start;gap:14px;
  background:rgba(255,255,255,.02);border:1px dashed rgba(255,255,255,.07);
  border-radius:12px;padding:18px 20px;margin:6px 0 10px;color:var(--text3)}
.hx-tab-empty-ico{flex:0 0 auto;color:var(--text3);opacity:.7;margin-top:1px}
.hx-tab-empty-txt{flex:1}
.hx-tab-empty-t{color:var(--text2);font-size:.86rem;margin-bottom:3px}
.hx-tab-empty-s{font-size:.74rem;line-height:1.45;color:var(--text3)}
.hx-tab-empty-s a{color:var(--green-soft,#34D399);text-decoration:none;border-bottom:1px dashed rgba(52,211,153,.35)}
.hx-tab-empty-s a:hover{border-bottom-style:solid}

/* ─── Robot osito — mascota del capataz (compacto, reacciona en vivo) ─ */
.hx-robot{--rb-accent:#34D399;position:relative;width:36px;height:36px;flex:0 0 auto;
  filter:drop-shadow(0 0 6px color-mix(in srgb,var(--rb-accent) 35%,transparent))}
.hx-robot-mascota{width:36px;height:36px}
.hx-robot-mascota svg{width:36px;height:36px;display:block}
.hx-robot .rb-shadow{fill:var(--rb-accent);opacity:.14}
.hx-robot .rb-head{fill:#0e1814;stroke:var(--rb-accent);stroke-width:2}
.hx-robot .rb-ear{fill:#13201b;stroke:var(--rb-accent);stroke-width:1.6}
.hx-robot .rb-visor{fill:#06100c;stroke:color-mix(in srgb,var(--rb-accent) 28%,transparent);stroke-width:1}
.hx-robot .rb-eye{fill:var(--rb-accent);transition:cy .25s,r .25s,fill .25s}
.hx-robot .rb-mouth{stroke:var(--rb-accent);stroke-width:1.8;fill:none;stroke-linecap:round;transition:d .25s}
.hx-robot .rb-antline{stroke:var(--rb-accent);stroke-width:1.6}
.hx-robot .rb-ant{fill:var(--mint,#00E5C7)}
/* parpadeo natural */
@keyframes rb-blink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
.hx-robot .rb-eye{transform-box:fill-box;transform-origin:center}
.hx-robot[data-act="idle"] .rb-eye{animation:rb-blink 5s infinite}
/* antena: pulso cuando activo */
@keyframes rb-antpulse{0%,100%{opacity:.4}50%{opacity:1}}
.hx-robot[data-act="idle"] .rb-ant{opacity:.35;animation:none}
.hx-robot:not([data-act="idle"]) .rb-ant{animation:rb-antpulse 1.1s infinite}
/* núcleo flotante del robot cuando trabaja: leve bob */
@keyframes rb-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.5px)}}
.hx-robot:not([data-act="idle"]) svg{animation:rb-bob 2.2s ease-in-out infinite}
/* estados de actividad → color del acento */
.hx-robot[data-act="thinking"]{--rb-accent:#FBBF24}
.hx-robot[data-act="reading"] {--rb-accent:#6EE7B7}
.hx-robot[data-act="searching"]{--rb-accent:#00E5C7}
.hx-robot[data-act="writing"] {--rb-accent:#34D399}
.hx-robot[data-act="executing"]{--rb-accent:#00E5C7}
.hx-robot[data-act="happy"]   {--rb-accent:#34D399}
.hx-robot[data-act="error"]   {--rb-accent:#FF6B6B}
/* ojos mirando arriba al pensar */
.hx-robot[data-act="thinking"] .rb-eye{cy:21}
/* ojos entornados (lectura/exec) */
.hx-robot[data-act="reading"] .rb-eye,
.hx-robot[data-act="executing"] .rb-eye{r:2}


/* ─── Terminal del agente (drawer de pasos sofisticado) ─────────── */
.hx-term{position:relative;border:1px solid rgba(52,211,153,.18);border-radius:13px;
  overflow:hidden;background:#080c0a;margin:2px 0 18px;box-shadow:0 18px 50px rgba(0,0,0,.5)}
.hx-term-bg{position:absolute;inset:-10% -4%;margin:0;z-index:0;pointer-events:none;
  font-family:var(--mono,'JetBrains Mono',monospace);font-size:12px;line-height:1.8;
  color:#9aa8af;opacity:.07;white-space:pre-wrap;word-break:break-all}
.hx-term-bar{position:relative;z-index:2;display:flex;align-items:center;gap:7px;
  padding:9px 13px;border-bottom:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02)}
.hx-term-dot{width:10px;height:10px;border-radius:50%}
.hx-term-dot.r{background:#FF5F57}.hx-term-dot.y{background:#FEBC2E}.hx-term-dot.g{background:#28C840}
.hx-term-file{margin-left:8px;font-family:var(--mono);font-size:.72rem;color:var(--text3,#69737a)}
.hx-term-live{margin-left:auto;display:inline-flex;align-items:center;gap:6px;
  font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;color:#34D399}
.hx-term-livedot{width:7px;height:7px;border-radius:50%;background:#34D399;
  box-shadow:0 0 8px #34D399;animation:pulse 1.4s infinite}
.hx-term-prog{position:relative;z-index:2;padding:13px 15px 11px}
.hx-term-prog-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px}
.hx-term-phase{font-size:.9rem;color:var(--text1,#eaf2ec)}
.hx-term-pct{font-family:var(--mono);font-size:1.05rem;font-weight:600;color:#34D399}
.hx-term-track{height:6px;border-radius:4px;background:rgba(255,255,255,.07);overflow:hidden}
.hx-term-fill{height:100%;border-radius:4px;background:#34D399;
  transition:width .8s cubic-bezier(.4,0,.2,1),background .4s;
  background-image:linear-gradient(90deg,transparent 0,transparent 50%,rgba(255,255,255,.18) 50%,rgba(255,255,255,.18) 75%,transparent 75%);
  background-size:18px 18px;animation:term-stripes 1s linear infinite}
@keyframes term-stripes{to{background-position:18px 0}}
.hx-term-meta{margin-top:7px;font-family:var(--mono);font-size:.66rem;color:var(--text3,#69737a)}
.hx-term-steps{position:relative;z-index:2;max-height:300px;overflow-y:auto;
  padding:10px 14px 14px;font-family:var(--mono);font-size:.74rem;line-height:1.5;
  border-top:1px solid rgba(255,255,255,.05)}
.hx-tline{display:flex;gap:9px;align-items:baseline;padding:2.5px 0;animation:sf-in .3s}
.hx-tts{color:#46524c;flex:0 0 auto;font-size:.66rem}
.hx-tprompt{color:#34D399;flex:0 0 auto;font-weight:500}
.hx-tcmd{color:#cbd6d0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.hx-tcmt{color:#7d8a82;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hx-tdim{color:#56635c}
.hx-tline.ok .hx-tcmd{color:#9fe6c8}
.hx-tline.err{color:#ff9494}
.hx-tcur{display:inline-block;width:8px;height:14px;background:#34D399;
  vertical-align:-2px;animation:blink 1.05s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
/* ─── Badge PM: tareas creadas desde el Asistente PM ─── */
.hx-task-pm-badge {
  display: inline-block;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .08em;
  padding: 1px 5px;
  border-radius: 3px;
  background: rgba(0,229,199,.14);
  color: #00E5C7;
  border: 1px solid rgba(0,229,199,.3);
  text-transform: uppercase;
  flex-shrink: 0;
}
.hx-task.pm-task { border-left: 2px solid rgba(0,229,199,.35); }



/* ═══════════════════════════════════════════════════════════════
   BIBLIOTECA — Módulos reutilizables (.bib-*)
   ══════════════════════════════════════════════════════════════ */

/* Layout wrapper */
.bib-wrap{display:flex;flex-direction:column;gap:28px;max-width:1080px}

/* Hero */
.bib-hero{display:flex;align-items:flex-start;justify-content:space-between;
  gap:24px;flex-wrap:wrap}
.bib-h2{font-size:1.5rem;font-weight:700;color:var(--text)}
.bib-sub{color:var(--text2);font-size:.9rem;margin-top:4px;max-width:560px;line-height:1.55}
.bib-kpis{display:flex;gap:12px;flex-wrap:wrap}
.bib-kpi{display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:90px;padding:10px 18px;background:rgba(255,255,255,.04);
  border:1px solid var(--border);border-radius:12px;text-align:center}
.bib-kpi b{font-size:1.6rem;font-weight:700;color:var(--text);line-height:1.1}
.bib-kpi span{font-size:.68rem;color:var(--text3);margin-top:2px;font-family:var(--mono)}
.bib-kpi.accent{border-color:rgba(52,211,153,.3);background:rgba(52,211,153,.06)}
.bib-kpi.accent b{color:var(--green-soft)}

/* Toolbar */
.bib-toolbar{display:flex;gap:10px;align-items:center}
.bib-btn-new{display:inline-flex;align-items:center;gap:7px;
  padding:9px 18px;border-radius:10px;font-size:.85rem;font-weight:600;
  background:rgba(52,211,153,.18);border:1px solid rgba(52,211,153,.45);color:var(--green-soft);
  cursor:pointer;transition:.15s}
.bib-btn-new:hover{background:rgba(52,211,153,.28)}
.bib-btn-new i{width:15px;height:15px}

/* Categoría grouping */
.bib-cat-group{display:flex;flex-direction:column;gap:12px}
.bib-cat-head{display:flex;align-items:center;gap:10px;padding:4px 0}
.bib-cat-bar{display:inline-block;width:3px;height:18px;border-radius:2px;flex-shrink:0}
.bib-cat-icon{width:16px;height:16px;flex-shrink:0}
.bib-cat-label{font-size:.82rem;font-weight:700;color:var(--text2);
  font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase}
.bib-cat-count{font-size:.72rem;color:var(--text3);font-family:var(--mono);
  background:rgba(255,255,255,.06);border:1px solid var(--border);
  border-radius:20px;padding:1px 9px;margin-left:4px}

/* Cards grid */
.bib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.bib-card{display:flex;flex-direction:column;gap:10px;
  padding:16px 18px;border-radius:14px;
  background:rgba(255,255,255,.03);border:1px solid var(--border);
  border-left:3px solid var(--bc,rgba(52,211,153,.4));
  transition:background .14s,transform .14s,border-color .14s;
  cursor:pointer;text-decoration:none;color:inherit}
.bib-card:hover{background:rgba(255,255,255,.055);transform:translateY(-2px);
  border-color:rgba(255,255,255,.16)}
.bib-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.bib-card-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.bib-card-name{font-weight:600;font-size:.9rem;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bib-card-version{font-family:var(--mono);font-size:.65rem;color:var(--text3)}
.bib-card-desc{font-size:.8rem;color:var(--text2);line-height:1.5;
  font-family:var(--mono);opacity:.85}
.bib-card-stats{display:flex;align-items:center;gap:12px;
  font-size:.7rem;color:var(--text3);font-family:var(--mono);margin-top:2px}
.bib-card-stats span{display:flex;align-items:center;gap:4px}
.bib-card-chev{margin-left:auto;color:var(--text3)}
.bib-card-chev i{width:14px;height:14px}

/* Badge de estado */
.bib-badge{display:inline-block;font-size:.65rem;font-weight:700;font-family:var(--mono);
  letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:20px;
  border:1px solid;white-space:nowrap;flex-shrink:0}
.bib-badge--draft{color:#9fb3a8;border-color:#9fb3a833;background:rgba(159,179,168,.08)}
.bib-badge--estable{color:var(--green-soft);border-color:rgba(52,211,153,.35);background:rgba(52,211,153,.08)}
.bib-badge--deprecado{color:#ff9494;border-color:rgba(255,107,107,.35);background:rgba(255,107,107,.08)}

/* Cat pill (inline) */
.bib-cat-pill{font-size:.62rem;font-weight:600;font-family:var(--mono);letter-spacing:.06em;
  text-transform:uppercase;padding:2px 8px;border-radius:20px;border:1px solid;white-space:nowrap}

/* ── Lista estilo terminal (línea gráfica de /proyectos) ── */
.bib-stats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.bib-stat{display:flex;align-items:baseline;gap:7px;padding:8px 14px;border-radius:11px;
  border:1px solid var(--border);background:rgba(255,255,255,.02)}
.bib-stat b{font-family:'Space Grotesk';font-size:1.15rem;font-weight:700;color:var(--text);line-height:1}
.bib-stat span{font-family:var(--mono);font-size:.66rem;color:var(--text3);text-transform:uppercase;letter-spacing:.07em}
.bib-stat.accent{border-color:rgba(52,211,153,.3);background:rgba(52,211,153,.06)}
.bib-stat.accent b{color:var(--green-soft)}
/* separador de categoría dentro de la terminal */
.bib-sep{display:flex;align-items:center;gap:8px;padding:14px 4px 5px;margin-top:4px}
.bib-sep:first-child{margin-top:0;padding-top:4px}
.bib-sep-bar{width:3px;height:13px;border-radius:2px;flex:none}
.bib-sep-label{font-family:var(--mono);font-size:.7rem;font-weight:700;color:var(--text2);
  text-transform:uppercase;letter-spacing:.1em}
.bib-sep-count{font-family:var(--mono);font-size:.64rem;color:var(--text-muted);
  background:rgba(255,255,255,.05);border-radius:20px;padding:1px 8px}
.bib-row-desc{color:var(--text-muted);max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cli-meta .mono{color:var(--text2)}
/* updater (F-B4) */
.bib-ver-old{color:#FBBF24}
.bib-ver-old b{color:var(--green-soft)}
.bib-upd-gate{margin-top:14px;padding:13px;border-radius:11px;border:1px solid rgba(251,191,36,.25);
  background:rgba(251,191,36,.05)}
.bib-upd-gate p{font-size:.8rem;color:var(--text2);line-height:1.5;margin-bottom:10px}

/* Empty state */
.bib-empty{display:flex;flex-direction:column;align-items:center;gap:14px;
  padding:60px 20px;text-align:center;color:var(--text2)}

/* ── Detalle ─────────────────────────────────────────── */
.bib-det-wrap{display:flex;flex-direction:column;gap:24px;max-width:1080px}
.bib-det-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.bib-det-actions{display:flex;gap:8px;flex-shrink:0}
.bib-det-cols{display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start}
@media(max-width:900px){.bib-det-cols{grid-template-columns:1fr}}
.bib-det-main{display:flex;flex-direction:column;gap:0}
.bib-det-side{display:flex;flex-direction:column;gap:16px}
.bib-det-meta .det-feats{grid-template-columns:1fr}
.bib-det-meta .det-feat code{overflow-wrap:normal}

/* Instalaciones panel */
.bib-inst-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.bib-inst-row{display:flex;flex-direction:column;gap:4px;
  padding:8px 10px;border-radius:8px;background:rgba(255,255,255,.03);
  border:1px solid var(--border)}
.bib-inst-name{font-size:.82rem;font-weight:600;color:var(--text);text-decoration:none;
  display:flex;align-items:center;gap:5px}
.bib-inst-name:hover{color:var(--green-soft)}
.bib-inst-meta{display:flex;align-items:center;gap:8px;
  font-size:.7rem;color:var(--text3);font-family:var(--mono)}

/* Mono textarea */
.bib-mono{font-family:var(--mono);font-size:.8rem}

/* Delete button */
.bib-btn-del{display:inline-flex;align-items:center;gap:6px;margin-top:16px;
  padding:8px 14px;border-radius:8px;font-size:.82rem;font-weight:600;
  background:rgba(255,107,107,.1);border:1px solid rgba(255,107,107,.3);color:#ff9494;
  cursor:pointer;transition:.15s;width:100%;justify-content:center}
.bib-btn-del:hover{background:rgba(255,107,107,.2)}

/* ── Consumo IA (crm_detalle) ─────────────────────────── */
.ai-uso-panel h2{margin-bottom:12px}
.ai-uso-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.ai-uso-card{
  padding:10px 14px;border-radius:8px;
  background:rgba(52,211,153,.05);
  border:1px solid rgba(52,211,153,.18);
  display:flex;flex-direction:column;gap:2px}
.ai-uso-label{font-size:.65rem;font-family:var(--mono);color:var(--text3);
  text-transform:uppercase;letter-spacing:.06em}
.ai-uso-val{font-size:1.1rem;font-weight:700;color:var(--text);letter-spacing:-.01em}
.ai-uso-hint{font-size:.72rem;color:var(--text3);margin-top:6px;
  display:flex;align-items:center;gap:4px}

/* ─── Monitor de Bugs ───────────────────────────────────────────── */
.mon-wrap{max-width:1100px}
.mon-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;flex-wrap:wrap}
.mon-h2{font-size:1.5rem;color:var(--text1);margin:0 0 4px}
.mon-sub{color:var(--text3);font-size:.86rem;max-width:560px;line-height:1.5}
.mon-kpis{display:flex;gap:12px}
.mon-kpi{background:var(--surface2);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:12px 18px;text-align:center;min-width:84px}
.mon-kpi b{display:block;font-size:1.7rem;color:var(--text1);line-height:1}
.mon-kpi span{font-size:.66rem;color:var(--text3);text-transform:uppercase;letter-spacing:.08em}
.mon-kpi.rojo b{color:var(--coral,#FF6B6B)}
.mon-card{background:var(--surface,#0e1411);border:1px solid rgba(255,255,255,.07);border-radius:14px;margin-bottom:18px;overflow:hidden}
.mon-card-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.05)}
.mon-card-title{font-size:.95rem;color:var(--text1);font-weight:500}
.mon-btn{background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.35);color:var(--green-soft,#6EE7B7);
  font-family:inherit;font-size:.78rem;padding:7px 14px;border-radius:9px;cursor:pointer;transition:.15s}
.mon-btn:hover{background:rgba(52,211,153,.2)}
.mon-btn:disabled{opacity:.5;cursor:default}
.mon-btn.ghost{background:transparent;border-color:rgba(255,255,255,.14);color:var(--text3)}
.mon-diag{padding:8px 10px}
.mon-chk{display:flex;align-items:baseline;gap:12px;padding:9px 10px;border-radius:8px}
.mon-chk:hover{background:rgba(255,255,255,.02)}
.mon-chk-ic{font-family:var(--mono);font-size:1rem;flex:0 0 auto;width:14px;text-align:center}
.mon-chk-name{color:var(--text1);font-size:.86rem;flex:0 0 200px}
.mon-chk-det{color:var(--text3);font-size:.78rem;font-family:var(--mono)}
.mon-errs{padding:6px 10px}
.mon-err{padding:12px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.05);margin:8px 0;background:rgba(255,107,107,.03)}
.mon-err-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.mon-err-tipo{font-family:var(--mono);font-size:.74rem;font-weight:600;color:#ff9494;background:rgba(255,107,107,.12);padding:2px 8px;border-radius:6px}
.mon-err-tipo.diagnostico{color:#FBBF24;background:rgba(251,191,36,.12)}
.mon-err-tipo.harness{color:#00E5C7;background:rgba(0,229,199,.12)}
.mon-err-veces{font-family:var(--mono);font-size:.7rem;color:var(--coral,#FF6B6B);font-weight:600}
.mon-err-ruta{font-family:var(--mono);font-size:.72rem;color:var(--text2)}
.mon-err-when{margin-left:auto;font-family:var(--mono);font-size:.68rem;color:var(--text3)}
.mon-err-edad{font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.04em;
  color:#FBBF24;background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.3);
  border-radius:100px;padding:2px 8px}
.mon-err-msg{color:var(--text2);font-size:.82rem;font-family:var(--mono);line-height:1.4;word-break:break-word}
.mon-err-actions{display:flex;gap:14px;margin-top:8px}
.mon-link{background:none;border:0;color:var(--text3);font-family:var(--mono);font-size:.7rem;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}
.mon-link:hover{color:var(--text1)}
.mon-link.ok:hover{color:#10B981}
.mon-link.mute:hover{color:var(--text2)}
.mon-err-tb{margin-top:8px;background:#06100c;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:10px;
  font-family:var(--mono);font-size:.68rem;color:#b9c9c1;white-space:pre-wrap;word-break:break-word;max-height:280px;overflow-y:auto}
.mon-empty{color:var(--text3);font-size:.82rem;padding:18px;text-align:center}
.mon-clean{color:#6EE7B7}

/* ═══ RUTINA MATUTINA — compuerta de entrada ═════════════════════════════════ */
.hx-rt-security{
  display:flex;align-items:flex-start;gap:8px;
  background:rgba(52,211,153,.06);border:1px solid rgba(52,211,153,.18);
  border-radius:10px;padding:10px 14px;margin:10px 0 14px;
  font-size:.78rem;color:var(--text2);line-height:1.5;
}
.hx-rt-security svg{flex:0 0 auto;margin-top:1px;color:#34D399}
.hx-rt-security strong{color:var(--text1)}

.hx-rt-empty{color:var(--text3);font-size:.82rem;padding:18px 0;text-align:center}

.hx-rt-adv{
  display:flex;align-items:center;gap:6px;
  background:rgba(255,107,107,.08);border:1px solid rgba(255,107,107,.25);
  border-radius:7px;padding:6px 10px;margin:6px 0;
  font-size:.75rem;color:#ff9494;line-height:1.4;
}
.hx-rt-adv svg{flex:0 0 auto;color:#FF6B6B}

.hx-rt-desc{
  background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.06);
  border-radius:7px;padding:8px 10px;margin:6px 0 4px;
  font-size:.72rem;color:var(--text2);font-family:var(--mono);
  white-space:pre-wrap;word-break:break-word;max-height:80px;overflow-y:auto;
}

.hx-rt-log-detail,.hx-rt-log-detail{
  margin:18px 0 0;border:1px solid rgba(255,255,255,.07);
  border-radius:10px;background:rgba(255,255,255,.01);overflow:hidden;
}
.hx-rt-log-detail summary{
  cursor:pointer;padding:10px 14px;font-size:.8rem;
  color:var(--text2);display:flex;align-items:center;gap:8px;
  list-style:none;user-select:none;
}
.hx-rt-log-detail summary::-webkit-details-marker{display:none}
.hx-rt-log-detail summary::before{
  content:'▸';font-size:.7rem;color:var(--text3);transition:.15s;
}
.hx-rt-log-detail[open] summary::before{content:'▾'}
.hx-rt-log-detail summary:hover{color:var(--text1)}
.hx-rt-log-detail > *:not(summary){padding:0 14px 14px}

/* Tabla del mapa tarea→proyecto */
.hx-rt-mapa-table{font-size:.78rem}
.hx-rt-mapa-head{
  display:grid;grid-template-columns:110px 140px 130px 1fr 28px;gap:8px;
  color:var(--text3);padding:6px 0;border-bottom:1px solid rgba(255,255,255,.07);
  font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;
}
.hx-rt-mapa-row{
  display:grid;grid-template-columns:110px 140px 130px 1fr 28px;gap:8px;
  align-items:center;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.04);
  color:var(--text2);
}
.hx-rt-mapa-row code{
  font-size:.75rem;color:#FBBF24;background:rgba(251,191,36,.08);
  padding:1px 5px;border-radius:4px;font-family:var(--mono);
}
.hx-band-actions{display:flex;align-items:center}

/* ===================== Saldo pendiente dashboard widget ===================== */
.saldo-pendiente-widget{
  position:relative;overflow:hidden;
  border:1px solid rgba(251,191,36,.28);
  border-radius:var(--radius);
  background:linear-gradient(135deg,rgba(251,191,36,.06),rgba(251,191,36,.02));
  backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);
  box-shadow:0 0 0 1px rgba(251,191,36,.08),var(--shadow-soft);
  margin-bottom:24px;
}
.sp-header{
  display:flex;align-items:center;gap:14px;
  padding:16px 20px;
  border-bottom:1px solid rgba(251,191,36,.12);
}
.sp-icon{
  display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:10px;
  background:rgba(251,191,36,.12);flex:none;
}
.sp-icon svg{width:18px;height:18px;color:#FBBF24;stroke-width:2}
.sp-title{display:flex;flex-direction:column;gap:3px}
.sp-label{
  font-family:var(--mono);font-size:.68rem;
  text-transform:uppercase;letter-spacing:.08em;
  color:rgba(251,191,36,.8);
}
.sp-monto{
  font-family:'Space Grotesk';font-size:1.7rem;font-weight:700;
  letter-spacing:-.5px;color:#FBBF24;
}
.sp-deudores{padding:10px 20px 14px}
.sp-row{
  display:flex;align-items:center;gap:12px;
  padding:9px 0;
  border-bottom:1px solid rgba(255,255,255,.04);
}
.sp-row:last-child{border-bottom:none}
.sp-cli-dot{width:8px;height:8px;border-radius:50%;flex:none}
.sp-cli-nombre{
  font-family:'Space Grotesk';font-size:.9rem;font-weight:600;
  color:var(--text);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.sp-cli-meta{
  font-family:var(--mono);font-size:.72rem;color:var(--text3);
  white-space:nowrap;
}
.sp-cli-saldo{
  font-family:'Space Grotesk';font-size:.95rem;font-weight:700;
  color:#FBBF24;white-space:nowrap;
}

/* ── Unidades de negocio (FotoOzu / PKSEL.IO / PIKSEL HOUSE) ── */
.uni-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}
.uni-tab{display:inline-flex;align-items:center;gap:8px;padding:7px 15px;border-radius:999px;
  border:1px solid var(--border);background:rgba(255,255,255,.02);color:var(--text2);
  font-size:.85rem;font-weight:600;transition:.14s;text-decoration:none}
.uni-tab:hover{border-color:var(--border-light);color:var(--text)}
.uni-tab.on{border-color:rgba(52,211,153,.45);background:rgba(52,211,153,.08);color:var(--text)}
.uni-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.uni-chip{display:inline-flex;align-items:center;gap:5px;padding:1px 8px;border-radius:999px;
  font-size:.66rem;font-weight:700;color:var(--uc);border:1px solid color-mix(in srgb,var(--uc) 35%,transparent);
  background:color-mix(in srgb,var(--uc) 10%,transparent)}
.uni-chip .uni-dot{width:6px;height:6px}

/* ── Dashboard: resumen por negocio ── */
.neg-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:22px 0 12px;flex-wrap:wrap}
.neg-head .k{font-family:var(--mono);font-size:.7rem;color:var(--green);text-transform:uppercase;letter-spacing:.16em}
.neg-total{font-family:var(--mono);font-size:.74rem;color:var(--text3)}
.neg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-bottom:18px}
.neg-card{display:block;padding:16px 18px;border-radius:14px;text-decoration:none;
  border:1px solid var(--border);background:rgba(255,255,255,.02);
  border-left:3px solid var(--nc);transition:transform .15s,border-color .15s}
.neg-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--nc) 45%,transparent)}
.neg-card-head{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.neg-card-head b{font-family:'Space Grotesk';font-size:1rem;color:var(--text)}
.neg-card-tipo{margin-left:auto;font-family:var(--mono);font-size:.62rem;color:var(--text-muted);text-align:right}
.neg-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.neg-stats > div{display:flex;flex-direction:column;gap:1px}
.neg-num{font-family:'Space Grotesk';font-weight:700;font-size:1.15rem;color:var(--text);line-height:1}
.neg-lbl{font-family:var(--mono);font-size:.62rem;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}

/* ── Instagram: grilla de posts recientes en la ficha del cliente ── */
.ig-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}
.ig-cell{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;display:block;background:rgba(255,255,255,.04)}
.ig-cell img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.ig-cell:hover img{transform:scale(1.06)}
.ig-vid{position:absolute;top:6px;right:6px;width:20px;height:20px;border-radius:6px;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center}

/* ── Marca: selector visual de colores en la ficha del cliente ── */
.mk-label{display:block;font-size:.76rem;font-weight:600;color:var(--text2);margin-bottom:8px}
.mk-colors{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.mk-swatch{position:relative;width:46px;height:46px;border-radius:12px;overflow:hidden;cursor:pointer;border:1px solid rgba(255,255,255,.18);box-shadow:0 2px 8px rgba(0,0,0,.25)}
.mk-swatch input[type=color]{position:absolute;inset:-6px;width:calc(100% + 12px);height:calc(100% + 12px);border:none;padding:0;background:none;cursor:pointer}
.mk-swatch .rm{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;border:none;cursor:pointer;background:#1a1a1f;color:#fff;font-size:12px;line-height:1;display:none;align-items:center;justify-content:center;z-index:2;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.mk-swatch:hover .rm{display:flex}
.mk-addcolor{width:46px;height:46px;border-radius:12px;border:1.5px dashed rgba(255,255,255,.2);background:transparent;color:var(--text3);cursor:pointer;font-size:1.3rem;line-height:1;transition:.14s;flex:none}
.mk-addcolor:hover{border-color:var(--green);color:var(--green)}
.mk-palette{height:14px;border-radius:8px;margin-top:10px;border:1px solid var(--border)}
.mk-hex{font-family:var(--mono);font-size:.72rem;color:var(--text3);margin-top:6px}
.mk-input{width:100%;padding:10px 13px;border-radius:10px;border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--text);font-size:.9rem;transition:border-color .14s}
.mk-input:focus{outline:none;border-color:var(--green)}

/* ── Influencers (directorio FotoOzu rankeado) ── */
.inf-kpis{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}
.inf-kpi{display:flex;align-items:baseline;gap:8px;padding:9px 16px;border-radius:12px;border:1px solid var(--border);background:rgba(255,255,255,.02)}
.inf-kpi b{font-family:'Space Grotesk';font-size:1.2rem;font-weight:700;color:var(--text);line-height:1}
.inf-kpi span{font-family:var(--mono);font-size:.68rem;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
.inf-kpi.accent{border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.07)}
.inf-kpi.accent b{color:#F59E0B}
.inf-list{display:flex;flex-direction:column;gap:8px}
.inf-card{display:grid;grid-template-columns:30px 56px 1fr auto auto;align-items:center;gap:14px;
  padding:12px 16px;border-radius:14px;border:1px solid var(--border);background:var(--surface);transition:border-color .14s}
.inf-card:hover{border-color:var(--border-light)}
.inf-rank{font-family:'Space Grotesk';font-weight:700;font-size:1rem;color:var(--text-muted);text-align:center}
.inf-avatar{width:56px;height:56px;border-radius:50%;overflow:hidden;background:rgba(255,255,255,.05);
  display:grid;place-items:center;border:2px solid color-mix(in srgb,#F59E0B 30%,transparent);flex:none}
.inf-avatar img{width:100%;height:100%;object-fit:cover}
.inf-avatar i{width:22px;height:22px;color:var(--text3)}
.inf-main{min-width:0}
.inf-name{font-family:'Space Grotesk';font-weight:600;font-size:1.02rem;display:flex;align-items:center;gap:6px}
.inf-meta{font-family:var(--mono);font-size:.74rem;color:var(--text3);display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}
.inf-meta a{color:var(--green-soft)}
.inf-meta .sep{color:var(--text-muted)}
.inf-cat{padding:1px 8px;border-radius:20px;background:rgba(245,158,11,.12);color:#F59E0B;font-size:.66rem;font-weight:700;text-transform:uppercase}
.inf-stat{text-align:right;min-width:84px;position:relative;padding-right:14px}
.inf-stat::after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);
  width:2px;height:30px;border-radius:2px;background:linear-gradient(180deg,transparent,color-mix(in srgb,#F59E0B 55%,transparent),transparent)}
.inf-stat .inf-segs{font-family:'Space Grotesk';font-weight:700;font-size:1.5rem;color:var(--text);line-height:1;display:block;font-variant-numeric:tabular-nums}
.inf-stat span{font-family:var(--mono);font-size:.62rem;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
/* rail de acciones: una sola píldora fluida que se enciende al pasar por la fila */
.inf-acts{display:flex;align-items:center;gap:1px;padding:3px;border-radius:13px;
  border:1px solid var(--border);background:rgba(255,255,255,.018);
  opacity:.45;transform:translateX(4px);transition:opacity .22s ease,transform .22s ease,border-color .22s}
.inf-card:hover .inf-acts{opacity:1;transform:none;border-color:var(--border-light)}
.inf-acts>form{display:flex;margin:0}
.inf-iconbtn{width:32px;height:32px;border-radius:10px;border:0;background:transparent;
  color:var(--text3);display:grid;place-items:center;cursor:pointer;text-decoration:none;
  transition:background .15s,color .15s,transform .15s}
.inf-iconbtn:hover{background:rgba(245,158,11,.13);color:#F8B95A;transform:translateY(-1px)}
.inf-iconbtn:active{transform:translateY(0)}
.inf-iconbtn.danger:hover{background:rgba(255,107,107,.13);color:#ff8a8a}
.inf-iconbtn i{width:16px;height:16px}
.inf-feed{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:6px}
.inf-feed .ig-cell{aspect-ratio:1;border-radius:9px;overflow:hidden}
@media(max-width:720px){.inf-card{grid-template-columns:26px 48px 1fr auto;gap:10px}.inf-acts{grid-column:2/-1;justify-content:flex-end}.inf-feed{grid-template-columns:repeat(3,1fr)}}

/* ── Header de perfil estilo Instagram (ficha del cliente) ── */
.igp{display:flex;gap:20px;align-items:flex-start;padding:4px 0 2px}
.igp-pic{width:84px;height:84px;border-radius:50%;object-fit:cover;flex:none;border:1px solid var(--border);background:rgba(255,255,255,.05)}
.igp-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:9px}
.igp-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.igp-user{font-size:1.25rem;font-weight:500;color:var(--text);display:inline-flex;align-items:center;gap:6px;letter-spacing:-.01em}
.igp-check{flex:none}
.igp-btn{padding:6px 14px;border-radius:9px;background:rgba(255,255,255,.08);color:var(--text);font-size:.82rem;font-weight:600;text-decoration:none;transition:.14s;white-space:nowrap}
.igp-btn:hover{background:rgba(255,255,255,.14)}
.igp-stats{display:flex;gap:26px;font-size:.9rem;color:var(--text2)}
.igp-stats b{color:var(--text);font-weight:700}
.igp-name{font-weight:700;font-size:.92rem;color:var(--text)}
.igp-cat{font-size:.86rem;color:var(--text3);margin-top:-4px}
.igp-bio{font-size:.88rem;color:var(--text2);line-height:1.5;white-space:pre-line}
.igp-web{font-size:.88rem;color:#7ec8f5;font-weight:600;text-decoration:none}
.igp-web:hover{text-decoration:underline}
@media(max-width:560px){.igp{gap:14px}.igp-pic{width:64px;height:64px}.igp-stats{gap:16px;font-size:.82rem}}

/* ════════════════ INVENTARIO · Tablero Ejecutivo ════════════════ */
.inv-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:20px}
.inv-head .k{font-family:var(--mono);font-size:.7rem;color:var(--green);text-transform:uppercase;letter-spacing:.16em;margin-bottom:8px}
.inv-title{font-family:'Space Grotesk';font-size:2rem;font-weight:600;letter-spacing:-.5px}
.inv-period{display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:11px;border:1px solid var(--border);background:var(--glass-card);box-shadow:var(--bevel)}
.inv-period svg{width:15px;height:15px;color:var(--mint)}
.inv-period input{background:transparent;border:0;color:var(--text);font-family:var(--mono);font-size:.84rem;color-scheme:dark}
/* ── Hero: árbol + MRR ── */
.inv-hero{display:grid;grid-template-columns:1.45fr 1fr;gap:18px;margin-bottom:22px}
@media(max-width:960px){.inv-hero{grid-template-columns:1fr}}
.inv-tree,.inv-hero-mrr{background:var(--glass-card);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-soft),var(--bevel);backdrop-filter:blur(20px) saturate(150%);position:relative;overflow:hidden}
.inv-tree{display:flex;flex-direction:column;align-items:center;gap:0}
.inv-node{border-radius:14px;border:1px solid var(--border);padding:11px 18px;text-align:center;display:flex;flex-direction:column;gap:2px;background:rgba(255,255,255,.02)}
.inv-node-k{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;color:var(--text3)}
.inv-node-root{border-color:rgba(52,211,153,.4);background:linear-gradient(135deg,rgba(52,211,153,.16),rgba(16,185,129,.04));box-shadow:0 0 28px rgba(52,211,153,.22)}
.inv-node-root b{font-family:'Space Grotesk';font-size:1.5rem;font-weight:700;letter-spacing:1px;background:var(--gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.inv-node-v{font-family:var(--mono);font-size:.7rem;color:var(--text2)}
.inv-tree-link{width:2px;height:26px;background:linear-gradient(var(--green-soft),transparent);opacity:.5}
.inv-ramas{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:100%}
@media(max-width:560px){.inv-ramas{grid-template-columns:1fr}}
.inv-rama{border:1px solid color-mix(in srgb,var(--rc) 30%,transparent);border-radius:14px;padding:13px;background:color-mix(in srgb,var(--rc) 7%,transparent)}
.inv-rama-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.inv-rama-head b{font-family:'Space Grotesk';font-weight:600;font-size:.95rem}
.inv-rama-v{margin-left:auto;font-family:var(--mono);font-weight:700;font-size:.84rem;color:var(--rc)}
.inv-dot{width:8px;height:8px;border-radius:50%;flex:none;box-shadow:0 0 8px currentColor}
.inv-rama-units{display:flex;flex-direction:column;gap:6px}
.inv-unit{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:9px;border:1px solid var(--border);background:rgba(255,255,255,.02);text-decoration:none;transition:.14s}
.inv-unit:hover{border-color:color-mix(in srgb,var(--uc) 50%,transparent);transform:translateX(2px)}
.inv-unit-n{font-size:.82rem;color:var(--text);font-weight:500}
.inv-unit-v{margin-left:auto;font-family:var(--mono);font-size:.76rem;color:var(--text2);font-weight:600}
.inv-unit-ghost{opacity:.5}.inv-unit-ghost .inv-unit-v{font-style:italic;color:var(--text3)}
.inv-hero-mrr{display:flex;flex-direction:column;justify-content:center;gap:7px}
.inv-hero-k{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;color:var(--text3)}
.inv-mrr-big{font-family:'Space Grotesk';font-size:3.2rem;font-weight:700;line-height:1;background:linear-gradient(90deg,#00E5C7,#34D399,#6EE7B7,#34D399);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradientShift 6s ease infinite}
.inv-hero-sub{font-family:var(--mono);font-size:.82rem;color:var(--text2)}.inv-hero-sub b{color:var(--text)}
.inv-hero-scn{display:flex;align-items:flex-start;gap:8px;margin-top:6px;font-size:.8rem;color:var(--text2);line-height:1.4}
.inv-hero-scn svg{width:14px;height:14px;color:var(--amber);flex:none;margin-top:2px}.inv-hero-scn b{color:#34D399}
/* ── Organigrama del holding (hero premium) ── */
.inv-org{position:relative;overflow:hidden;padding:34px 26px 30px;margin-bottom:30px;display:flex;flex-direction:column;align-items:center}
.inv-org-aura{position:absolute;top:-100px;left:50%;transform:translateX(-50%);width:560px;height:320px;pointer-events:none;
  background:radial-gradient(50% 60% at 50% 0,rgba(52,211,153,.15),transparent 70%)}
.inv-org-wires{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:visible}
.inv-wire-bg{fill:none;stroke:rgba(255,255,255,.06);stroke-width:1.5}
.inv-wire-flow{fill:none;stroke:url(#wireg);stroke-width:2;stroke-linecap:round;stroke-dasharray:5 13;animation:wireFlow 1.5s linear infinite}
@keyframes wireFlow{to{stroke-dashoffset:-18}}
@media(prefers-reduced-motion:reduce){.inv-wire-flow{animation:none}}
.inv-org-root{position:relative;z-index:1;text-align:center;padding:16px 34px;border-radius:18px;
  border:1px solid rgba(52,211,153,.4);background:linear-gradient(135deg,rgba(52,211,153,.14),rgba(16,185,129,.03));
  box-shadow:0 0 38px rgba(52,211,153,.18),var(--bevel);animation:rootBreath 4.5s ease-in-out infinite}
@keyframes rootBreath{0%,100%{box-shadow:0 0 34px rgba(52,211,153,.15),var(--bevel)}50%{box-shadow:0 0 56px rgba(52,211,153,.3),var(--bevel)}}
@media(prefers-reduced-motion:reduce){.inv-org-root{animation:none}}
.inv-org-k{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.2em;color:var(--text3)}
.inv-org-root-name{display:block;font-family:'Space Grotesk';font-weight:700;font-size:1.3rem;letter-spacing:3px;line-height:1.1;margin-top:1px;
  background:linear-gradient(90deg,#00E5C7,#34D399,#6EE7B7,#34D399);background-size:200% auto;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradientShift 6s ease infinite}
.inv-org-root-mrr{font-family:'Space Grotesk';font-weight:700;font-size:2.7rem;line-height:1;margin-top:6px;color:var(--text);letter-spacing:-1px}
.inv-org-root-mrr .u{font-family:var(--mono);font-size:.72rem;font-weight:400;color:var(--text3);margin-left:7px;letter-spacing:0}
.inv-org-root-sub{font-family:var(--mono);font-size:.72rem;color:var(--text3);margin-top:8px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.inv-org-root-sub b{color:var(--text2);font-weight:600}.inv-org-root-sub .sep{opacity:.4}
.inv-org-trunk{width:2px;height:30px;background:linear-gradient(var(--green-soft),transparent);opacity:.55;z-index:1}
.inv-org-lanes{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:18px;width:100%;margin-top:46px}
@media(max-width:840px){.inv-org-lanes{grid-template-columns:1fr}}
.inv-org-lane{border:1px solid color-mix(in srgb,var(--lc) 26%,transparent);border-radius:16px;padding:16px 16px 17px;
  background:color-mix(in srgb,var(--lc) 6%,transparent);position:relative}
/* conectores raíz→rama: ahora se dibujan en SVG (.inv-org-wires) */
.inv-org-lane-head{display:flex;align-items:center;gap:9px;padding:2px 4px 12px;border-bottom:1px solid var(--border);margin-bottom:12px}
.inv-org-lane-tag{display:inline-flex;align-items:center;gap:7px;font-family:'Space Grotesk';font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--lc)}
.inv-org-ldot{width:8px;height:8px;border-radius:50%;background:var(--lc);box-shadow:0 0 8px var(--lc)}
.inv-org-lane-sub{font-family:var(--mono);font-size:.66rem;color:var(--text3)}
.inv-org-lane-mrr{margin-left:auto;font-family:'Space Grotesk';font-weight:700;font-size:1rem;color:var(--text)}
.inv-org-lane-mrr small{font-family:var(--mono);font-weight:400;font-size:.6rem;color:var(--text3);margin-left:2px}
.inv-org-brands{display:flex;flex-direction:column;gap:9px}
.inv-org-brand{display:block;text-decoration:none;border:1px solid var(--border);border-radius:12px;padding:11px 13px;background:rgba(255,255,255,.02);transition:.16s}
.inv-org-brand.on:hover{border-color:color-mix(in srgb,var(--bc) 55%,transparent);transform:translateY(-2px);box-shadow:0 12px 26px -16px rgba(0,0,0,.75)}
.inv-org-brand.ghost{opacity:.55;border-style:dashed}
.inv-org-brow{display:flex;align-items:center;gap:9px}
.inv-org-bdot{width:9px;height:9px;border-radius:50%;background:var(--bc);box-shadow:0 0 9px var(--bc);flex:none}
.inv-org-brow b{font-family:'Space Grotesk';font-weight:600;font-size:.96rem;color:var(--text)}
.inv-org-bmrr{margin-left:auto;font-family:'Space Grotesk';font-weight:700;font-size:1rem;color:var(--text)}
.inv-org-bmrr small{font-family:var(--mono);font-weight:400;font-size:.6rem;color:var(--text3);margin-left:2px}
.inv-org-brand.ghost .inv-org-bmrr{font-size:.74rem;font-style:italic;color:var(--text3);font-weight:400}
.inv-org-bbar{height:5px;border-radius:4px;background:rgba(255,255,255,.06);margin:9px 0 8px;overflow:hidden}
.inv-org-bbar span{display:block;height:100%;width:0;border-radius:4px;background:linear-gradient(90deg,color-mix(in srgb,var(--bc) 55%,transparent),var(--bc));
  box-shadow:0 0 10px -2px var(--bc);transition:width 1.1s cubic-bezier(.22,1,.36,1)}
.inv-org-bfoot{display:flex;align-items:center;gap:10px}
.inv-org-bstatus{font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.05em;color:var(--green-soft)}
.inv-org-bstatus.off{color:var(--text-muted)}
.inv-org-bsplit{font-family:var(--mono);font-size:.64rem;color:var(--text3)}.inv-org-bsplit .sep{opacity:.4;margin:0 2px}
.inv-org-bcxc{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:.68rem;color:#FBBF24;text-decoration:none}
.inv-org-bcxc:hover{text-decoration:underline}.inv-org-bcxc svg{width:12px;height:12px}
.inv-kpis{margin-bottom:30px}
a.kpi{text-decoration:none}
/* ── inteligencia: composición + trayectoria ── */
.inv-intel{margin-bottom:30px}
.inv-comp{display:grid;grid-template-columns:160px 1fr;gap:16px;align-items:center}
@media(max-width:480px){.inv-comp{grid-template-columns:1fr}}
.inv-comp-chart{position:relative}
.inv-comp-leg{display:flex;flex-direction:column;gap:8px}
.inv-comp-row{display:flex;align-items:center;gap:9px;font-size:.84rem}
.inv-comp-dot{width:9px;height:9px;border-radius:50%;flex:none;box-shadow:0 0 8px currentColor}
.inv-comp-l{color:var(--text);font-weight:500}
.inv-comp-p{margin-left:auto;font-family:'Space Grotesk';font-weight:700;color:var(--text)}
.inv-comp-v{font-family:var(--mono);font-size:.74rem;color:var(--text3);min-width:64px;text-align:right}
/* ── INGRESOS · cobranza (futurista, que motive) ── */
.inv-rev{position:relative;overflow:hidden;margin-bottom:30px}
.inv-rev-glow{position:absolute;top:-120px;right:-80px;width:380px;height:340px;pointer-events:none;
  background:radial-gradient(circle,rgba(52,211,153,.13),transparent 65%)}
.inv-rev-meter{position:relative;z-index:1;margin-bottom:18px}
.inv-rev-meter-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px;flex-wrap:wrap;gap:8px}
.inv-rev-ok{font-family:var(--mono);font-size:.82rem;color:var(--text2);display:inline-flex;align-items:center;gap:7px}
.inv-rev-ok svg{width:15px;height:15px;color:#34D399}.inv-rev-ok b{font-family:'Space Grotesk';font-size:1.05rem;color:#34D399;font-weight:700}
.inv-rev-pend{font-family:var(--mono);font-size:.82rem;color:var(--text3)}.inv-rev-pend b{font-family:'Space Grotesk';font-size:1.05rem;color:#FBBF24;font-weight:700}
.inv-rev-bar{height:14px;border-radius:8px;background:rgba(251,191,36,.16);border:1px solid rgba(255,255,255,.06);overflow:hidden;position:relative}
.inv-rev-fill{position:absolute;inset:0;width:0;border-radius:8px;background:linear-gradient(90deg,#10B981,#34D399);
  box-shadow:0 0 20px -2px rgba(52,211,153,.65);transition:width 1.3s cubic-bezier(.22,1,.36,1)}
@media(prefers-reduced-motion:reduce){.inv-rev-fill{transition:none}}
.inv-rev-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:12px;margin-bottom:16px}
.inv-rev-card{display:flex;align-items:center;gap:14px;padding:14px 15px;border-radius:14px;text-decoration:none;
  background:#0f151d;border:1px solid var(--border);position:relative;overflow:hidden;transition:transform .16s,border-color .16s,box-shadow .16s}
.inv-rev-card::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 100% at 0 0,color-mix(in srgb,var(--rc) 10%,transparent),transparent 60%);opacity:0;transition:.16s}
.inv-rev-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--rc) 50%,transparent);box-shadow:0 14px 30px -16px rgba(0,0,0,.8),0 0 0 1px color-mix(in srgb,var(--rc) 25%,transparent)}
.inv-rev-card:hover::after{opacity:1}
.inv-rev-ring{width:58px;height:58px;border-radius:50%;flex:none;display:grid;place-items:center;position:relative;
  background:conic-gradient(var(--rc) calc(var(--pct)*1%),rgba(255,255,255,.08) 0)}
.inv-rev-ring::before{content:"";position:absolute;inset:5px;border-radius:50%;background:#0f151d}
.inv-rev-ring span{position:relative;z-index:1;font-family:'Space Grotesk';font-weight:700;font-size:1.05rem;color:var(--rc)}
.inv-rev-ring span small{font-size:.58rem;font-weight:600;margin-left:1px}
.inv-rev-info{flex:1;min-width:0}
.inv-rev-cli{font-family:'Space Grotesk';font-weight:600;font-size:.92rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv-rev-amt{font-family:'Space Grotesk';font-weight:700;font-size:1.5rem;color:#FBBF24;line-height:1.05;margin-top:2px}
.inv-rev-amt small{font-family:var(--mono);font-size:.58rem;font-weight:400;color:var(--text3);margin-left:6px;text-transform:uppercase;letter-spacing:.05em}
.inv-rev-prog{font-family:var(--mono);font-size:.68rem;color:var(--text3);margin-top:3px}.inv-rev-prog .sep{opacity:.5;margin:0 2px}
.inv-rev-go{width:15px;height:15px;color:var(--text-muted);flex:none;align-self:flex-start;transition:.16s}
.inv-rev-card:hover .inv-rev-go{color:var(--rc);transform:translate(2px,-2px)}
.inv-rev-streams{position:relative;z-index:1;display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:14px}
.inv-rev-stream{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:100px;border:1px solid var(--border);background:rgba(255,255,255,.02);font-size:.76rem}
.inv-rev-stream.off{opacity:.45}
.inv-rev-sdot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 7px var(--green)}
.inv-rev-stream.off .inv-rev-sdot{background:var(--text-muted);box-shadow:none}
.inv-rev-sn{color:var(--text2)}
.inv-rev-sv{font-family:'Space Grotesk';font-weight:700;color:var(--text)}
/* ── secciones ── */
.inv-sec-h{display:flex;align-items:baseline;gap:12px;margin:10px 2px 18px}
.inv-sec-h .k{font-family:var(--mono);font-size:.72rem;color:var(--green);text-transform:uppercase;letter-spacing:.12em}
.inv-sec-meta{margin-left:auto;font-family:var(--mono);font-size:.72rem;color:var(--text3)}
/* ── reparto ── */
.inv-reparto{display:grid;grid-template-columns:1fr 280px;gap:18px;margin-bottom:26px}
@media(max-width:840px){.inv-reparto{grid-template-columns:1fr}}
.inv-socios{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:560px){.inv-socios{grid-template-columns:1fr}}
.inv-socio{border:1px solid color-mix(in srgb,var(--sc) 28%,transparent);border-radius:14px;padding:15px 17px;background:color-mix(in srgb,var(--sc) 7%,transparent);box-shadow:var(--bevel)}
.inv-socio.fondo{border-color:rgba(52,211,153,.4);box-shadow:0 0 22px rgba(52,211,153,.14),var(--bevel)}
.inv-socio-top{display:flex;align-items:center;gap:7px;margin-bottom:9px}
.inv-socio-top b{font-family:'Space Grotesk';font-weight:600;font-size:.92rem}
.inv-socio-tag{margin-left:auto;font-family:var(--mono);font-size:.58rem;text-transform:uppercase;letter-spacing:.06em;color:var(--green-soft);background:rgba(52,211,153,.12);padding:2px 7px;border-radius:20px}
.inv-socio-v{font-family:'Space Grotesk';font-size:1.6rem;font-weight:700;color:var(--sc)}
.inv-donut-wrap{background:var(--glass-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-soft),var(--bevel)}
/* ── tablas ── */
.inv-term{margin-bottom:30px}
.inv-table{width:100%;border-collapse:collapse;font-size:.84rem}
.inv-table th{text-align:left;font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);font-weight:600;padding:6px 10px;border-bottom:1px solid var(--border)}
.inv-table td{padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle}
.inv-table tbody tr:hover{background:rgba(255,255,255,.02)}
.inv-table .r{text-align:right;font-variant-numeric:tabular-nums}
.inv-table tfoot td{border-top:1px solid var(--border);border-bottom:0;font-family:var(--mono);font-size:.78rem;color:var(--text2);padding-top:10px}
.inv-table b{font-weight:600}
.inv-mut{color:var(--text3);font-family:var(--mono);font-size:.78rem}
.inv-mut2{display:block;color:var(--text3);font-size:.72rem;font-family:var(--mono);margin-top:1px}
.inv-ejec{display:block;font-family:var(--mono);font-size:.68rem;color:var(--text3);margin-top:2px}
.inv-chip{font-family:var(--mono);font-size:.62rem;font-weight:700;padding:2px 8px;border-radius:20px;color:var(--cc);background:color-mix(in srgb,var(--cc) 12%,transparent);border:1px solid color-mix(in srgb,var(--cc) 30%,transparent)}
.inv-chip2{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);background:rgba(255,255,255,.05);padding:1px 7px;border-radius:6px}
.inv-x{background:transparent;border:0;color:var(--text-muted);cursor:pointer;padding:3px;border-radius:6px;transition:.14s}
.inv-x:hover{color:#ff8a8a;background:rgba(255,107,107,.1)}.inv-x svg{width:14px;height:14px}
/* ── selector de ejecutores ── */
.inv-ejec-pick{margin:4px 0}
.inv-ejec-lbl{display:block;font-size:.78rem;font-weight:600;color:var(--text2);margin-bottom:7px}
.inv-ejec-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.inv-ejec-opt{display:flex;align-items:center;gap:7px;font-size:.84rem;color:var(--text);cursor:pointer}
.inv-ejec-pct{width:58px;padding:4px 7px;border-radius:7px;border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--text);font-size:.8rem}
.inv-ejec-hint{font-family:var(--mono);font-size:.68rem;color:var(--text3)}
/* ── 2 columnas ── */
.inv-cols2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:30px}
@media(max-width:880px){.inv-cols2{grid-template-columns:1fr}}
.inv-cxc-tot{font-family:'Space Grotesk';font-weight:700;font-size:1.1rem;color:#FBBF24}
.inv-cxc td:first-child{max-width:0}
.inv-lineas{margin-top:14px;display:flex;flex-direction:column;gap:6px}
.inv-linea{display:flex;align-items:center;gap:10px;padding:8px 11px;border-radius:9px;border:1px solid var(--border);background:rgba(255,255,255,.02)}
.inv-linea-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green);flex:none}
.inv-linea.off{opacity:.45}.inv-linea.off .inv-linea-dot{background:var(--text-muted);box-shadow:none}
.inv-linea-n{font-size:.82rem;font-weight:500}
.inv-linea-st{font-family:var(--mono);font-size:.66rem;color:var(--text3)}
.inv-linea-v{margin-left:auto;font-family:var(--mono);font-weight:700;font-size:.82rem;color:var(--text)}
/* ── proyección ── */
.inv-proy-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.inv-proy-card{padding:12px 14px;border-radius:11px;border:1px solid var(--border);background:rgba(255,255,255,.02);display:flex;flex-direction:column;gap:3px}
.inv-proy-card span{font-family:var(--mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text3)}
.inv-proy-card b{font-family:'Space Grotesk';font-size:1.4rem;font-weight:700}
.inv-proy-scn{border:1px solid rgba(245,158,11,.25);border-radius:12px;padding:13px 15px;background:rgba(245,158,11,.05)}
.inv-proy-scn-h{display:flex;align-items:center;gap:7px;font-family:'Space Grotesk';font-weight:600;font-size:.86rem;color:#F8B95A;margin-bottom:6px}
.inv-proy-scn-h svg{width:15px;height:15px}
.inv-proy-scn p{font-size:.82rem;color:var(--text2);line-height:1.5;margin:0}
/* CxC por rama en el árbol */
.inv-rama-cxc{display:flex;align-items:center;gap:6px;margin-top:9px;padding-top:9px;border-top:1px dashed color-mix(in srgb,var(--rc) 22%,transparent);font-family:var(--mono);font-size:.72rem;color:var(--text3)}
.inv-rama-cxc svg{width:13px;height:13px;color:#FBBF24}.inv-rama-cxc b{margin-left:auto;color:#FBBF24;font-size:.82rem}
/* links en tablas */
.inv-link{color:var(--text);text-decoration:none;border-bottom:1px solid transparent;transition:.14s}
.inv-link:hover{color:var(--green-soft);border-bottom-color:rgba(52,211,153,.5)}
a.inv-mut2{text-decoration:none;transition:.14s}a.inv-mut2:hover{color:var(--green-soft)}
/* ── línea de tiempo ── */
.inv-time-panel{margin-top:0}
.inv-timeline{display:flex;flex-direction:column}
.inv-tl-row{display:grid;grid-template-columns:92px 22px 1fr;align-items:center;gap:0}
.inv-tl-date{font-family:var(--mono);font-size:.72rem;color:var(--text3);text-align:right;padding-right:12px}
.inv-tl-axis{position:relative;align-self:stretch;display:flex;justify-content:center}
.inv-tl-axis::before{content:"";position:absolute;top:0;bottom:0;width:2px;background:var(--border)}
.inv-tl-dot{width:10px;height:10px;border-radius:50%;z-index:1;margin-top:15px;border:2px solid var(--bg)}
.inv-tl-cargo .inv-tl-dot{background:#FBBF24;box-shadow:0 0 8px rgba(251,191,36,.5)}
.inv-tl-pago .inv-tl-dot{background:#34D399;box-shadow:0 0 8px rgba(52,211,153,.5)}
.inv-tl-row:first-child .inv-tl-axis::before{top:15px}
.inv-tl-row:last-child .inv-tl-axis::before{bottom:calc(100% - 15px)}
.inv-tl-body{display:flex;align-items:center;gap:10px;padding:9px 0 9px 14px;border-bottom:1px solid rgba(255,255,255,.04)}
.inv-tl-main{display:flex;align-items:center;gap:8px;min-width:0;flex:1;font-size:.86rem}
.inv-tl-main svg{width:15px;height:15px;flex:none}
.inv-tl-cargo .inv-tl-main>svg{color:#FBBF24}.inv-tl-pago .inv-tl-main>svg{color:#34D399}
.inv-tl-main a{color:var(--text);text-decoration:none}.inv-tl-main a:hover{color:var(--green-soft)}
.inv-tl-cpt{font-family:var(--mono);font-size:.72rem;color:var(--text3)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv-tl-amt{font-family:'Space Grotesk';font-weight:700;font-size:.92rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.inv-tl-amt.cargo{color:#FBBF24}.inv-tl-amt.pago{color:#34D399}
@media(max-width:560px){.inv-tl-row{grid-template-columns:74px 20px 1fr}.inv-tl-body{flex-wrap:wrap}.inv-tl-cpt{display:none}}

/* ══ INVENTARIO v2 · cierres + fondo real + anillos unificados (0036) ══ */
.inv-head-acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.inv-close-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:11px;cursor:pointer;
  font-family:var(--mono);font-size:.76rem;letter-spacing:.02em;color:#0b0f14;font-weight:700;
  background:linear-gradient(120deg,#34D399,#00E5C7);border:0;box-shadow:0 6px 18px -8px rgba(52,211,153,.55);transition:.16s}
.inv-close-btn svg{width:15px;height:15px}
.inv-close-btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px -10px rgba(52,211,153,.7)}
.inv-close-btn.done{background:rgba(52,211,153,.1);color:var(--green-soft);border:1px solid rgba(52,211,153,.35);box-shadow:var(--bevel);font-weight:600}
.inv-traj-tag{margin-left:auto;font-family:var(--mono);font-size:.62rem;color:var(--green-soft);background:rgba(52,211,153,.1);padding:3px 9px;border-radius:20px;font-weight:400;letter-spacing:.03em}
.inv-traj-tag.off{color:var(--text3);background:rgba(255,255,255,.04)}

/* cierres: la historia congelada */
.inv-cierres{display:flex;gap:12px;overflow-x:auto;padding:2px;margin-bottom:30px}
.inv-cierre{flex:0 0 auto;min-width:210px;border:1px solid rgba(52,211,153,.22);border-radius:14px;padding:13px 16px;
  background:var(--glass-card);box-shadow:var(--bevel)}
.inv-cierre.live{border-color:rgba(52,211,153,.5);box-shadow:0 0 18px rgba(52,211,153,.12),var(--bevel)}
.inv-cierre-p{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.66rem;color:var(--green-soft);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.inv-cierre-p svg{width:13px;height:13px}
.inv-cierre-mrr{font-family:'Space Grotesk';font-size:1.45rem;font-weight:700;color:var(--text)}
.inv-cierre-mrr small{font-family:var(--mono);font-size:.6rem;color:var(--text3);margin-left:4px}
.inv-cierre-rows{display:flex;flex-direction:column;gap:2px;margin-top:7px;font-family:var(--mono);font-size:.68rem;color:var(--text3)}
.inv-cierre-rows b{font-weight:600}

/* reparto: socios con anillo (mismo lenguaje que cobranza) */
.inv-socio{display:flex;align-items:center;gap:14px}
.inv-socio-info{flex:1;min-width:0}
.inv-socio-top{margin-bottom:4px}
.inv-socio-ring{width:54px;height:54px}
.inv-socio-ring::before{background:#11181f}
.inv-socio-ring span{font-size:.95rem}

/* fondo pksel · capitalización real */
.inv-fondo{position:relative;overflow:hidden;margin-bottom:30px}
.inv-fondo-grid{position:relative;z-index:1;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.inv-fondo-ring{width:86px;height:86px}
.inv-fondo-ring::before{inset:7px;background:#0f151d}
.inv-fondo-ring span{font-size:1.35rem}
.inv-fondo-nums{display:flex;gap:26px;flex-wrap:wrap;flex:1}
.inv-fondo-num{display:flex;flex-direction:column;gap:2px}
.inv-fondo-num span{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text3)}
.inv-fondo-num b{font-family:'Space Grotesk';font-size:1.55rem;font-weight:700;color:var(--text);line-height:1.1}
.inv-fondo-num small{font-family:var(--mono);font-size:.62rem;color:var(--text-muted)}
.inv-fondo-num.pend{padding-left:18px;border-left:1px solid var(--border)}
.inv-fondo-add{flex:none}
.inv-fondo-movs{position:relative;z-index:1;display:flex;flex-direction:column;gap:4px;margin-top:16px;border-top:1px solid var(--border);padding-top:12px}
.inv-fondo-mov{display:flex;align-items:center;gap:12px;padding:7px 8px;border-radius:9px;font-size:.8rem}
.inv-fondo-mov:hover{background:rgba(255,255,255,.02)}
.inv-fondo-mv-t{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:var(--green-soft)}
.inv-fondo-mov.retiro .inv-fondo-mv-t{color:#FBBF24}
.inv-fondo-mv-t svg{width:13px;height:13px}
.inv-fondo-mv-n{flex:1;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv-fondo-mv-m{font-family:'Space Grotesk';font-weight:700;color:#34D399;font-variant-numeric:tabular-nums}
.inv-fondo-mov.retiro .inv-fondo-mv-m{color:#FBBF24}

/* costos: presets de un toque */
.inv-costo-presets{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}

/* facturación: selector de negocio + medidor + anillos por fila */
.nc-unis{display:flex;gap:8px;flex-wrap:wrap}
.nc-uni{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:100px;cursor:pointer;
  background:rgba(255,255,255,.03);border:1px solid var(--border);color:var(--text2);font-size:.8rem;transition:.14s}
.nc-uni:hover{border-color:rgba(52,211,153,.35);color:var(--text)}
.nc-uni.on{border-color:rgba(52,211,153,.55);background:rgba(52,211,153,.08);color:var(--text);box-shadow:0 0 0 1px rgba(52,211,153,.25)}
.fac-meter{margin:-4px 0 20px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:var(--glass-card);box-shadow:var(--bevel)}
.fac-meter.inv-rev-meter{margin-bottom:20px}
.fac-ring{width:34px;height:34px;border-radius:50%;flex:none;display:grid;place-items:center;position:relative;
  background:conic-gradient(var(--rc) calc(var(--pct)*1%),rgba(255,255,255,.08) 0)}
.fac-ring::before{content:"";position:absolute;inset:3px;border-radius:50%;background:#0d1117}
.fac-ring span{position:relative;z-index:1;font-family:var(--mono);font-weight:700;font-size:.6rem;color:var(--rc)}
/* banner rollover de recurrentes */
.inv-roll{display:flex;align-items:center;gap:16px;padding:15px 18px;border-radius:14px;margin-bottom:22px;
  border:1px solid rgba(52,211,153,.35);background:linear-gradient(120deg,rgba(52,211,153,.09),rgba(0,229,199,.04));box-shadow:var(--bevel)}
.inv-roll>svg{width:22px;height:22px;color:var(--green);flex:none}
.inv-roll-txt{flex:1;display:flex;flex-direction:column;gap:2px}
.inv-roll-txt b{font-family:'Space Grotesk';font-size:.94rem}
.inv-roll-txt span{font-size:.8rem;color:var(--text3)}
@media(max-width:700px){.inv-roll{flex-direction:column;align-items:flex-start}}
/* costura facturación → reparto (sugerencias de cobros) */
.inv-sug{border:1px solid rgba(18,181,166,.3);border-radius:14px;padding:14px 16px;margin-bottom:16px;
  background:linear-gradient(120deg,rgba(18,181,166,.07),rgba(45,91,255,.04));box-shadow:var(--bevel)}
.inv-sug-h{display:flex;align-items:center;gap:8px;font-family:'Space Grotesk';font-size:.9rem;font-weight:600;margin-bottom:10px}
.inv-sug-h svg{width:16px;height:16px;color:#A855F7}
.inv-sug-tot{margin-left:auto;font-family:var(--mono);font-size:.68rem;color:#C084FC;background:rgba(18,181,166,.12);padding:3px 10px;border-radius:20px}
.inv-sug-row{display:flex;align-items:center;gap:10px;padding:8px 6px;border-radius:10px;flex-wrap:wrap}
.inv-sug-row:hover{background:rgba(255,255,255,.02)}
.inv-sug-cli{flex:1;min-width:150px;display:flex;align-items:baseline;gap:8px}
.inv-sug-cli b{font-size:.86rem}
.inv-sug-fac{font-family:var(--mono);font-size:.66rem;color:var(--text3);text-decoration:none}
.inv-sug-fac:hover{color:var(--green-soft)}
.inv-sug-tipo{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text3)}
.inv-sug-m{font-family:'Space Grotesk';font-weight:700;font-size:1rem;color:#A855F7;font-variant-numeric:tabular-nums}
.inv-sug-row select{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:8px;color:var(--text2);
  font-family:var(--mono);font-size:.68rem;padding:5px 7px}
.inv-sug-add{padding:6px 12px;font-size:.76rem}
.inv-sug-hint{font-family:var(--mono);font-size:.64rem;color:var(--text-muted);margin-top:6px}
/* contador de copy por plataforma (grillas) */
.cap-count{display:block;font-family:var(--mono);font-size:.64rem;color:var(--text-muted);margin-top:3px;text-align:right}
.cap-count.near{color:#FBBF24}
.cap-count.over{color:#FF6B6B;font-weight:700}

/* ══ CONTRATO MÓDULOS · clases canónicas de la biblioteca (ver docs/DESIGN-CONTRACT-MODULOS.md) ══ */

[class^="mod-"]{
  max-width:1100px;margin:0 auto;padding:18px 0 36px;
}
[class^="mod-"] h2{
  display:flex;align-items:center;gap:8px;margin-bottom:22px;
}
[class^="mod-"] h2 svg{width:20px;height:20px;flex:none;}

table.tabla{
  width:100%;border-collapse:collapse;font-size:.84rem;
}
table.tabla th{
  text-align:left;font-family:var(--mono);font-size:.64rem;text-transform:uppercase;
  letter-spacing:.06em;color:var(--text3);font-weight:600;padding:6px 10px;border-bottom:1px solid var(--border);
}
table.tabla td{padding:10px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle;}
table.tabla tbody tr:hover{background:rgba(255,255,255,.02);}

.badge{
  display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);
  font-size:.62rem;padding:2px 8px;border-radius:9999px;
}
.badge svg,.badge i{width:12px;height:12px;flex:none;}
.badge-on{color:var(--green);background:rgba(52,211,153,.12);}
.badge-off{color:var(--text3);background:rgba(255,255,255,.05);}

td.acciones{white-space:nowrap;}
td.acciones button,td.acciones a{
  background:transparent;border:0;color:var(--text3);padding:5px 6px;
  border-radius:8px;cursor:pointer;transition:.14s;line-height:1;
}
td.acciones svg{width:15px;height:15px;display:block;}
td.acciones button:hover,td.acciones a:hover{color:var(--text);background:rgba(255,255,255,.06);}

form.inline{display:inline;}

form.form-nuevo{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;
}
form.form-nuevo input,form.form-nuevo textarea,form.form-nuevo select{
  background:rgba(255,255,255,.04);border:1px solid var(--border);
  border-radius:10px;padding:9px 12px;color:var(--text);font-family:inherit;font-size:.9rem;
}
form.form-nuevo input:focus,form.form-nuevo textarea:focus,form.form-nuevo select:focus{
  outline:none;border-color:var(--border-accent);
}
form.form-nuevo button[type="submit"]{
  background:linear-gradient(135deg,var(--green),var(--mint));
  color:var(--bg);font-weight:700;border:0;border-radius:10px;
  padding:10px 16px;font-size:.9rem;cursor:pointer;transition:.16s;white-space:nowrap;
}

h3.form-titulo{
  font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;
  color:var(--green-soft);font-size:.78rem;margin:26px 0 10px;
  display:flex;align-items:center;gap:6px;
}
h3.form-titulo svg,h3.form-titulo i{width:14px;height:14px;flex:none;}

.seo-vacio,.vacio{
  font-family:var(--mono);font-size:.78rem;color:var(--text-muted);padding:8px 0;
}
.seo-desc{
  color:var(--text3);max-width:340px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
}
/* selector de motor en la G1 */
.hx-motor-pick{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
.hx-motor-pick label{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text3)}
.hx-motor-pick select{flex:1;background:rgba(255,255,255,.05);border:1px solid var(--border);border-radius:9px;
  color:var(--text);font-size:.82rem;padding:8px 10px}
.hx-motor-chip{font-family:var(--mono);font-size:.58rem;text-transform:uppercase;letter-spacing:.05em;
  padding:2px 7px;border-radius:20px;background:rgba(255,255,255,.06);color:var(--text3);flex:none}
.hx-motor-chip.grok{background:rgba(255,107,107,.12);color:#FF9B9B}
.hx-motor-chip.haiku{background:rgba(251,191,36,.12);color:#FBBF24}
.hx-motor-chip.sonnet{background:rgba(0,229,199,.12);color:#00E5C7}

/* ══ HARNESS · navegación por pipeline de compuertas (rediseño 2026-07) ══ */
.hx-pipe{display:flex;align-items:stretch;gap:0;margin:2px 0 18px;padding:6px;border-radius:16px;
  border:1px solid var(--border);background:var(--glass-card);box-shadow:var(--bevel);overflow-x:auto}
.hx-pipe-node{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1;min-width:96px;
  padding:10px 14px;border:0;border-radius:12px;background:transparent;cursor:pointer;transition:.15s;position:relative}
.hx-pipe-node:hover{background:rgba(255,255,255,.04)}
.hx-pipe-node .hx-pipe-n{font-family:'Space Grotesk';font-size:1.5rem;font-weight:700;line-height:1;
  color:var(--text-muted);transition:.15s}
.hx-pipe-node.on .hx-pipe-n{color:var(--pc);text-shadow:0 0 18px color-mix(in srgb,var(--pc) 55%,transparent)}
.hx-pipe-node .hx-pipe-l{font-family:var(--mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text3)}
.hx-pipe-node.on::after{content:"";position:absolute;bottom:4px;width:26px;height:2px;border-radius:2px;
  background:var(--pc);box-shadow:0 0 8px var(--pc)}
.hx-pipe-link{align-self:center;width:26px;height:1px;flex:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent)}
.hx-flash{animation:hxFlash 1.5s ease}
@keyframes hxFlash{0%,60%{box-shadow:0 0 0 2px rgba(52,211,153,.55),0 0 26px rgba(52,211,153,.25)}100%{box-shadow:none}}

/* escenario que respira: protagonista con agentes vivos, mínimo en reposo */

/* proyectos activos: tarjetas colapsables con resumen (rediseño Fable) */
.hx-proj-head{cursor:pointer;position:relative}
.hx-proj-chev{width:8px;height:8px;flex:none;margin-left:6px;border-right:2px solid var(--text3);
  border-bottom:2px solid var(--text3);transform:rotate(-45deg);transition:transform .18s}
.hx-project.open .hx-proj-chev{transform:rotate(45deg)}
.hx-proj-body{max-height:0;overflow:hidden;transition:max-height .3s ease}
.hx-project.open .hx-proj-body{max-height:1600px}
.hx-pj-mini{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:.6rem;
  color:var(--text3);padding:2px 8px;border-radius:20px;background:rgba(255,255,255,.04);border:1px solid var(--border)}
.hx-pj-mini::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--mc);box-shadow:0 0 6px var(--mc)}
.hx-proj-next{font-family:var(--mono);font-size:.68rem;font-weight:400;color:var(--green-soft);margin-left:10px}

/* ═══ PKSEL OS tasks: agrupado por módulo + historial colapsable (tarea UX harness) ═══ */
.hx-modulo{margin:2px 0 6px}
.hx-mod-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:.62rem;color:var(--text3);padding:1px 6px 2px;border-bottom:1px solid var(--border);margin-bottom:2px}
.hx-mod-pct{color:var(--text-muted);font-size:.58rem}
.hx-hist{margin-top:8px;border-top:1px solid var(--border);padding-top:4px}
.hx-hist summary{cursor:pointer;font-family:var(--mono);font-size:.68rem;color:var(--text3);user-select:none;outline:none}
.hx-hist summary:hover{color:var(--text2)}
.hx-hist[open] summary{margin-bottom:4px}
.hx-tasks-hist .hx-task{opacity:0.85}
.hx-tasks-hist .hx-task:hover{opacity:1}
/* acciones de tarea: aparecen al pasar el mouse (menos ruido) */
.hx-task .hx-to-queue-btn,.hx-task .hx-assign-btn{opacity:0;transition:opacity .12s}
.hx-task:hover .hx-to-queue-btn,.hx-task:hover .hx-assign-btn{opacity:1}

/* tarjeta viva del run: detalle + cronómetro sin parpadeo (fix 2026-07) */
.hx-band-item-prog{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-family:var(--mono);font-size:.72rem;color:var(--text3)}
.hx-live-dot{width:7px;height:7px;border-radius:50%;background:#34D399;box-shadow:0 0 8px #34D399;flex:none;animation:hxLiveBlink 1.6s ease-in-out infinite}
@keyframes hxLiveBlink{0%,100%{opacity:1}50%{opacity:.35}}
.hx-live-meta{color:var(--text-muted)}
.hx-elapsed{color:var(--green-soft);font-variant-numeric:tabular-nums}

/* ═══ Flow v68: pipeline vivo + toasts accionables ═══════════ */
/* el número de una etapa parpadea (flash) cuando cambia el conteo */
.hx-pipe-n.chg{animation:pipeFlash .9s ease}
@keyframes pipeFlash{0%{transform:scale(1.3);filter:brightness(1.7)}100%{transform:scale(1);filter:none}}
/* toast con run asociado: clickeable para abrir el drawer */
.hx-toast[data-run]{cursor:pointer}
.hx-toast[data-run]:hover{filter:brightness(1.15)}
/* view transitions de la bandeja: morph suave entre bloques */
::view-transition-group(*){animation-duration:.32s}

/* ═══ v69: mini-terminal en vivo dentro de la tarjeta del run ═══
   (reemplaza al escenario/estadio — los pasos reales van en la tarjeta) */
.hx-live-term{margin-top:9px;padding:8px 11px;border-radius:9px;background:rgba(0,0,0,.38);
  border:1px solid rgba(255,255,255,.05);font-family:var(--mono);font-size:.68rem;line-height:1.65;
  display:flex;flex-direction:column;gap:1px;overflow:hidden;min-height:20px}
.hx-live-term:empty{display:none}
.hx-live-term .lt{display:flex;gap:9px;align-items:baseline;white-space:nowrap;overflow:hidden;
  animation:ltIn .25s ease}
.hx-live-term .lt-t{color:var(--text-muted,#46514a);font-size:.6rem;flex:none}
.hx-live-term .lt-v{flex:none;font-weight:600}
.hx-live-term .lt-d{color:var(--text2,#9fb3a8);overflow:hidden;text-overflow:ellipsis;min-width:0}
@keyframes ltIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}

/* fix solape header del cockpit (2026-07-10): una regla duplicada de .hx-agent-mid
   tenía justify-self:start → el centro tomaba el ancho de SU contenido (canvas de
   La Ola + título) y se desbordaba sobre el presupuesto de la derecha cuando el
   título de la tarea era largo. stretch lo obliga a llenar su celda de grid y
   truncar el título con "…". El bump de v afuera (panel.html) trae este fix. */
.hx-agent-mid{justify-self:stretch}
.hx-agent-task{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 0033 · chip "ver avance" en las tarjetas de proyecto + panel de runs */
.hx-pj-badge.avance{cursor:pointer;color:#6EE7B7;border:1px solid rgba(52,211,153,.32);
  background:rgba(52,211,153,.06);text-decoration:none;transition:background .15s,border-color .15s}
.hx-pj-badge.avance:hover{background:rgba(52,211,153,.15);border-color:rgba(52,211,153,.55)}
.hx-av-list{display:flex;flex-direction:column;gap:6px;max-height:52vh;overflow-y:auto;text-align:left;margin-top:8px}
.hx-av-row{display:flex;flex-direction:column;gap:3px;padding:9px 11px;border:1px solid rgba(255,255,255,.08);
  border-radius:10px;cursor:pointer;transition:background .15s,border-color .15s}
.hx-av-row:hover{background:rgba(255,255,255,.045);border-color:rgba(52,211,153,.4)}
.hx-av-st{font-family:var(--mono);font-size:.56rem;text-transform:uppercase;letter-spacing:.08em;
  padding:1px 7px;border-radius:20px;border:1px solid;align-self:flex-start}
.hx-av-t{font-size:.86rem;color:var(--text,#e8f0eb);font-weight:500}
.hx-av-m{font-family:var(--mono);font-size:.65rem;color:var(--text-muted,#8a9a92)}

/* ═══ El Puente · cockpit en 3 zonas (0042-A) ════════════════════════════
   Cresta (header, arriba) · Columna de mando (todo lo accionable, izquierda) ·
   Escenario (el run como riel PERSISTENTE a la derecha, ya no un modal).
   Solo en pantallas anchas (≥1280px); abajo cae al drawer modal de siempre. */
#hx-esc-idle{display:none}
@media (min-width:1280px){
  body.puente .content{padding-right:496px;transition:padding-right .3s ease}
  body.puente #hx-run-overlay{display:none !important}
  /* la Cresta (header) abarca TODO el ancho por encima del escenario */
  body.puente .hx-agent{margin-right:-496px}
  /* el tablero se apila (proyectos → cola/actividad) para liberar la derecha */
  body.puente .hx-body{grid-template-columns:1fr !important}
  /* Escenario docked */
  body.puente #hx-run-drawer{
    /* el tope se mide en vivo (borde inferior REAL de la Cresta) — nunca se trepa */
    position:fixed !important;top:var(--cresta-bottom, calc(var(--topbar-h) + 96px));
    right:0;bottom:0;left:auto;
    width:468px !important;max-width:468px;height:auto !important;
    transform:none !important;visibility:visible !important;border-radius:0;
    border-left:1px solid var(--border);box-shadow:-26px 0 60px -34px rgba(0,0,0,.75);
    background:#0b100e;display:flex !important;flex-direction:column;z-index:25}
  body.puente #hx-run-drawer::before{
    content:'ESCENARIO · RUN EN FOCO';flex:none;display:block;
    font-family:var(--mono);font-size:.54rem;letter-spacing:.16em;text-transform:uppercase;
    color:var(--mint);opacity:.75;padding:10px 18px 2px}
  body.puente #hx-run-drawer > .hx-drawer-body{flex:1;min-height:0}
  /* modo idle: sin run elegido → placeholder, se oculta el contenido del run */
  body.puente.escenario-idle #hx-run-drawer::before{content:'ESCENARIO'}
  body.puente.escenario-idle #hx-run-drawer > .hx-drawer-head,
  body.puente.escenario-idle #hx-run-drawer > .hx-drawer-body,
  body.puente.escenario-idle #hx-run-drawer > #hx-run-actions{display:none !important}
  body.puente.escenario-idle #hx-esc-idle{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
    flex:1;padding:32px;text-align:center;color:var(--text3);font-size:.78rem;line-height:1.5}
  body.puente #hx-esc-idle svg{color:var(--text-muted);opacity:.55}
}
