/* ===========================================================================
   GROWTH HOME OS · v10
   Diseño sobre el sistema de Claude Design. Mismos nombres de clase que usa el
   JavaScript. Dos temas, ambos verdes. El acento verde solo donde significa algo.
   =========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

:root{
  --bg:#07100C; --bg-2:#0B1711; --surface:#0B1711; --surface-2:#102118;
  --line:rgba(255,255,255,.09); --line-strong:rgba(120,255,0,.25);
  --text:#F7FAF8; --muted:#b9c5bf; --faint:#617168;
  --accent:#78FF00; --accent-strong:#A4CD01; --accent-soft:rgba(120,255,0,.09);
  --accent-line:rgba(120,255,0,.34); --on-accent:#07100C; --accent-vivid:#78FF00;
  --system-green:#01733A; --system-green-2:#12934F; --system-pattern:linear-gradient(138deg,#01733A 0 18%,#12934F 27% 37%,#00612F 46% 58%,#0B8244 68% 79%,#004C24 89% 100%);
  --danger:#ff6a5e; --danger-soft:rgba(255,106,94,.14); --warn:#E5B83E;
  --cat-grabacion:#78FF00; --cat-reunion:#61beff; --cat-closing:#E5B83E;
  --r-sm:8px; --r-md:12px; --r-lg:18px; --r-full:999px;
  --shadow-card:0 1px 2px rgba(0,0,0,.5); --shadow-modal:0 24px 60px rgba(0,0,0,.6);
  --ease:cubic-bezier(.16,1,.3,1); --ease-press:cubic-bezier(.25,1.4,.35,1);
  --sb:env(safe-area-inset-bottom,0px);
  /* alias para clases viejas */
  --neon:var(--accent); --neon-dim:var(--accent-line); --neon-soft:var(--accent-soft);
  --glass:var(--surface); --glass-2:var(--surface-2); --danger-dim:var(--danger-soft); --r:var(--r-md);
}

[data-theme="light"]{
  --bg:#F7FAF8; --bg-2:#EEF4F0; --surface:#FFFFFF; --surface-2:#FBFCFB;
  --line:rgba(0,65,32,.10); --line-strong:rgba(0,97,47,.26);
  --text:#07100C; --muted:#617168; --faint:#8a988c;
  --accent:#01733A; --accent-strong:#00612F; --accent-soft:rgba(1,115,58,.07);
  --accent-line:rgba(1,115,58,.28); --on-accent:#07100C; --accent-vivid:#78FF00;
  --system-green:#01733A; --system-green-2:#12934F; --danger:#c62828; --danger-soft:rgba(198,40,40,.12); --warn:#8a5a00;
  --cat-grabacion:#01733A; --cat-reunion:#1565c0; --cat-closing:#a86400;
  --shadow-card:0 1px 2px rgba(10,38,17,.10); --shadow-modal:0 24px 60px rgba(10,38,17,.18);
}

*{box-sizing:border-box}
html,body{margin:0;width:100%;min-height:100%;background:var(--bg);color:var(--text);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px;line-height:1.5;
  overflow-x:hidden;overscroll-behavior-x:none;touch-action:pan-y;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased}
h1,h2,h3,p{margin:0}
button{font:inherit;cursor:pointer}
[hidden]{display:none!important}
::selection{background:var(--accent-soft)}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:99px}
::-webkit-scrollbar-track{background:transparent}

/* CURSOR NEÓN */
@media(hover:hover) and (pointer:fine){
  .gh-cursor{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;width:26px;height:26px;
    border:1.5px solid var(--accent-vivid);border-radius:50%;transform:translate(-50%,-50%);
    transition:width .18s var(--ease),height .18s var(--ease),background .18s;mix-blend-mode:screen;
    box-shadow:0 0 12px rgba(57,255,20,.4)}
  .gh-cursor.hot{width:44px;height:44px;background:rgba(57,255,20,.10)}
  .gh-cursor.down{width:20px;height:20px}
  .gh-ripple{position:fixed;z-index:9998;pointer-events:none;border-radius:50%;
    background:radial-gradient(circle,rgba(57,255,20,.5),transparent 70%);
    transform:translate(-50%,-50%);animation:ripple .55s var(--ease) forwards}
}
@keyframes ripple{from{width:0;height:0;opacity:.7}to{width:180px;height:180px;opacity:0}}

/* BOOT / LOGIN */
.boot{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 14px;
  background:radial-gradient(120% 80% at 50% -10%,var(--accent-soft),transparent 55%),linear-gradient(180deg,var(--bg),var(--bg-2))}
.boot-card{width:min(100%,380px);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);
  padding:26px 22px;text-align:center;box-shadow:var(--shadow-modal);display:flex;flex-direction:column;gap:11px;
  align-items:stretch;animation:rise .4s var(--ease) both}
.boot-logo{width:52px;height:52px;object-fit:contain;margin:0 auto}
.boot-title{font-size:24px;font-weight:900;letter-spacing:-.04em}
.boot-sub{font-size:12px;color:var(--muted)}
.boot-bar{width:40px;height:3px;border-radius:99px;background:var(--surface-2);margin:6px auto 0;overflow:hidden}
.boot-bar i{display:block;width:45%;height:100%;background:var(--accent);border-radius:99px;animation:boot 1.1s ease-in-out infinite}
@keyframes boot{0%{transform:translateX(-110%)}100%{transform:translateX(260%)}}
.boot-error,.err{font-size:12px;color:#ffb6b6;background:var(--danger-soft);border:1px solid rgba(255,106,94,.28);
  border-radius:var(--r-sm);padding:10px;text-align:left;white-space:pre-wrap;word-break:break-word;margin:0}
.build-stamp{font-size:10px;color:var(--faint);letter-spacing:.06em;margin:2px 0 0;font-variant-numeric:tabular-nums}

/* CONTROLES */
.inp,select.inp,textarea.inp{width:100%;min-height:40px;padding:9px 12px;font-size:14px;font-weight:500;
  background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);color:var(--text);
  outline:none;transition:border-color .16s,box-shadow .16s}
textarea.inp{min-height:80px;resize:vertical;line-height:1.55}
.inp:focus,select.inp:focus,textarea.inp:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}
.inp::placeholder{color:var(--faint)}
select.inp{appearance:none;padding-right:34px;cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%2378FF00' stroke-width='1.7' fill='none' stroke-linecap='round'/></svg>");
  background-repeat:no-repeat;background-position:right 13px center}
[data-theme="light"] select.inp{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%230d7a2b' stroke-width='1.7' fill='none' stroke-linecap='round'/></svg>")}
input[type="color"].inp{padding:3px;min-height:40px;cursor:pointer}

.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;
  padding:9px 15px;font-size:13px;font-weight:700;letter-spacing:-.005em;border:1px solid var(--line);
  border-radius:var(--r-md);background:var(--surface-2);color:var(--text);
  transition:background .15s,border-color .15s,color .15s,transform .1s var(--ease-press)}
.btn:hover{border-color:var(--accent-line);background:var(--surface)}
.btn:active{transform:scale(.98)}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.btn-primary{background:linear-gradient(106deg,#A4CD01,#78FF00);border-color:transparent;color:#07100C;font-weight:900;box-shadow:0 10px 24px rgba(120,255,0,.12)}
.btn-primary:hover{background:linear-gradient(106deg,#95BA00,#6FEA00);border-color:transparent;color:#07100C}
.btn-ghost{background:transparent}
.btn-danger{background:transparent;border-color:rgba(255,106,94,.35);color:var(--danger)}
.btn-danger:hover{background:var(--danger-soft);border-color:rgba(255,106,94,.6)}
.btn.sm{min-height:34px;padding:6px 12px;font-size:12px;border-radius:var(--r-sm)}
.btn.xs{min-height:28px;padding:4px 9px;font-size:11px;border-radius:var(--r-sm);font-weight:700;gap:4px}
.btn.xs svg{width:12px;height:12px}
.btn.block{width:100%}
.btn[disabled]{opacity:.4;pointer-events:none}

/* LAYOUT */
.app{display:grid;grid-template-columns:240px 1fr;min-height:100dvh}
.sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:16px;padding:20px 14px;
  border-right:1px solid var(--line);background:var(--bg)}
.brand{display:flex;gap:11px;align-items:center;padding:0 4px}
.brand img{width:38px;height:38px;object-fit:contain;border-radius:9px}
.brand strong{display:block;font-size:15px;font-weight:800;letter-spacing:-.02em}
.brand-v{display:inline-block;font-size:9px;font-weight:900;letter-spacing:.06em;padding:1px 5px;border-radius:5px;
  background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-line);margin-top:3px}
.brand span:not(.brand-v){display:block;font-size:11px;color:var(--muted);margin-top:2px}
.side-nav{display:flex;flex-direction:column;gap:3px;flex:1;overflow-y:auto}
.nav-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:11px 12px;
  border-radius:var(--r-md);border:1px solid transparent;background:transparent;color:var(--muted);
  font-size:13.5px;font-weight:700;transition:background .15s,color .15s,border-color .15s;text-decoration:none}
.nav-item svg{width:21px;height:21px;flex:none;stroke:var(--accent);stroke-width:1.7;fill:none;
  stroke-linecap:round;stroke-linejoin:round;opacity:.55;transition:opacity .15s}
.nav-item:hover{color:var(--text);background:var(--surface-2)}
.nav-item:hover svg{opacity:.85}
.nav-item.on{color:var(--text);background:var(--accent-soft);border-color:var(--accent-line)}
.nav-item.on svg{opacity:1}
.nav-badge{margin-left:auto;font-size:10px;font-weight:800;padding:2px 6px;border-radius:99px;
  background:var(--accent-soft);color:var(--accent);font-variant-numeric:tabular-nums}

.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:16px 22px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px)}
.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}
.topbar-logo{width:34px;height:34px;object-fit:contain;flex:none;border-radius:8px}
.topbar h1{font-size:20px;font-weight:850;letter-spacing:-.03em}
.topbar p{font-size:11.5px;color:var(--muted);margin-top:2px}
.topbar-right{display:flex;gap:8px}
.view{padding:20px 22px 44px;min-width:0;animation:fadein .3s var(--ease) both}
@keyframes fadein{from{opacity:0;transform:translateY(6px)}}
.mobile-only{display:none}
.tabbar{display:none}

/* PRIMITIVAS */
.card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:15px;box-shadow:var(--shadow-card)}
.card + .card{margin-top:11px}
.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}
.card-head h2{font-size:14.5px;font-weight:800;letter-spacing:-.02em}
.card-head p{font-size:11.5px;color:var(--muted);margin-top:2px}

.stats{display:flex;gap:9px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;margin-bottom:15px}
.stats::-webkit-scrollbar{display:none}
.stat{flex:1 0 auto;min-width:98px;border:1px solid var(--line);border-radius:var(--r-md);padding:10px 13px;background:var(--surface)}
.stat b{display:block;font-size:20px;font-weight:900;letter-spacing:-.04em;line-height:1.05;font-variant-numeric:tabular-nums}
.stat span{display:block;font-size:9.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-weight:800;margin-top:4px}
.stat.good b{color:var(--accent)}
.stat.bad b{color:var(--danger)}

.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px;align-items:center}
.filters .inp{width:auto;min-width:0;flex:0 1 auto;min-height:36px;font-size:13px;padding:7px 11px;padding-right:30px}

.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.grid{display:grid;gap:12px}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.spread{display:flex;justify-content:space-between;align-items:center;gap:10px}
.muted{color:var(--muted);font-size:12px;line-height:1.5}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}

.pill{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:750;letter-spacing:.04em;
  padding:3px 9px;border-radius:99px;border:1px solid var(--line);background:var(--surface-2);color:var(--muted)}
.pill.neon{border-color:var(--accent-line);color:var(--accent);background:transparent}
.pill.red{border-color:rgba(255,106,94,.4);color:var(--danger);background:transparent}
.pill.warn{border-color:rgba(255,200,97,.4);color:var(--warn);background:transparent}

.empty{text-align:center;padding:46px 18px;border:1px dashed var(--line);border-radius:var(--r-lg)}
.empty h3{font-size:15px;font-weight:800;margin-bottom:6px}
.empty p{font-size:12.5px;color:var(--muted);max-width:340px;margin:0 auto 14px}

.tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-bottom:15px}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:none;padding:8px 14px;border-radius:var(--r-md);border:1px solid var(--line);background:transparent;
  color:var(--muted);font-size:12.5px;font-weight:700;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}
.tab.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--text)}

.bar{height:7px;border-radius:99px;background:var(--surface-2);overflow:hidden;border:1px solid var(--line);margin-top:5px}
.bar i{display:block;height:100%;border-radius:99px;background:var(--accent);transition:width .5s var(--ease)}

/* CRM */
.stage-cols{display:flex;gap:11px;overflow-x:auto;padding-bottom:12px;scrollbar-width:thin}
.stage-col{flex:1 0 280px;min-width:280px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:12px}
.stage-col header{display:flex;align-items:center;gap:8px;margin-bottom:11px;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.stage-col header i{width:6px;height:6px;border-radius:50%;background:var(--accent)}
.stage-col header span{margin-left:auto;color:var(--muted);font-weight:800;font-variant-numeric:tabular-nums}
.lead{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);padding:11px 12px;margin-bottom:8px;
  transition:border-color .15s,transform .15s var(--ease);cursor:pointer}
.lead:hover{border-color:var(--accent-line);transform:translateY(-1px)}
.lead.won{box-shadow:inset 3px 0 0 var(--accent)}
.lead.lost{box-shadow:inset 3px 0 0 var(--danger)}
.lead-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.lead-name{font-size:13.5px;font-weight:800;letter-spacing:-.01em}
.lead-meta{font-size:10.5px;color:var(--muted);margin-top:2px}
.lead-next{margin-top:9px;font-size:10px;font-weight:900;letter-spacing:.06em;color:var(--accent)}
.lead-actions{display:flex;gap:6px;margin-top:10px;align-items:center}
.lead-actions .grow{flex:1}

/* DELIVERY OS */
.track-grid{display:grid;gap:11px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.track{position:relative;overflow:hidden;text-align:left;border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--surface);padding:16px 15px;min-height:118px;display:flex;flex-direction:column;gap:6px;
  text-decoration:none;color:var(--text);transition:transform .2s var(--ease),border-color .2s,background .2s}
.track:hover{transform:translateY(-3px);border-color:var(--accent-line)}
.track.on{border-color:var(--accent-line);box-shadow:inset 3px 0 0 var(--accent);background:var(--accent-soft)}
.track b{font-size:15px;font-weight:850;letter-spacing:-.03em}
.track small{font-size:11px;color:var(--muted);line-height:1.5}
.track .count{margin-top:auto;font-size:9.5px;font-weight:800;color:var(--accent);letter-spacing:.06em;text-transform:uppercase}

.flow{display:flex;flex-direction:column}
.step{display:grid;grid-template-columns:30px 1fr;gap:11px;align-items:stretch}
.step-rail{display:flex;flex-direction:column;align-items:center}
.step-node{width:27px;height:27px;flex:none;border-radius:50%;display:grid;place-items:center;border:1px solid var(--accent-line);
  background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:900;font-variant-numeric:tabular-nums}
.step-line{flex:1;width:1px;background:linear-gradient(180deg,var(--accent-line),transparent)}
.step:last-child .step-line{background:transparent}
.step-body{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);padding:11px 13px;margin-bottom:9px;
  text-align:left;width:100%;color:var(--text);transition:border-color .15s,transform .15s var(--ease)}
.step-body:hover{border-color:var(--accent-line);transform:translateX(2px)}
.step-body b{display:block;font-size:13.5px;font-weight:800;letter-spacing:-.01em}
.step-body small{display:block;font-size:11px;color:var(--muted);margin-top:3px;line-height:1.5}
.step-tags{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap}

.tmpl{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-2);padding:12px;font-size:13px;
  line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--text)}
textarea.tmpl-edit{min-height:210px;font-size:13px;line-height:1.6;background:var(--bg-2);font-family:inherit;white-space:pre-wrap}
.deliverables{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.deliverables li{display:flex;gap:8px;font-size:12.5px;color:var(--text);line-height:1.45}
.deliverables li::before{content:"";flex:none;width:5px;height:5px;margin-top:6px;border-radius:2px;background:var(--accent)}
.checklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}
.check{display:flex;gap:9px;align-items:flex-start;padding:8px 10px;border-radius:var(--r-md);border:1px solid transparent;
  background:transparent;width:100%;text-align:left;color:var(--text);transition:background .15s}
.check:hover{background:var(--surface-2)}
.check i{flex:none;width:17px;height:17px;margin-top:1px;border-radius:5px;border:1.5px solid var(--accent-line);
  display:grid;place-items:center;font-size:10px;color:var(--on-accent)}
.check.done i{background:var(--accent);border-color:var(--accent)}
.check.done span{color:var(--muted);text-decoration:line-through}
.check span{font-size:12.5px;line-height:1.45}

/* CLIENTES */
.client-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:14px;text-align:left;
  width:100%;color:var(--text);cursor:pointer;box-shadow:var(--shadow-card);transition:transform .15s var(--ease),border-color .15s}
.client-card:hover{transform:translateY(-2px);border-color:var(--accent-line)}
.client-card b{display:block;font-size:14.5px;font-weight:850;letter-spacing:-.02em}
.client-card small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.credits{display:flex;flex-wrap:wrap;gap:7px;max-width:calc(10 * 33px)}
.credit{width:26px;height:26px;border-radius:50%;flex:none;border:1.5px solid var(--accent-line);background:var(--accent-soft);
  transition:transform .15s var(--ease),opacity .15s;cursor:pointer}
.credit:hover{transform:scale(1.08)}
.credit.used{background:transparent;border-color:var(--line);opacity:.35}
.due{display:flex;align-items:baseline;gap:8px}
.due b{font-size:32px;font-weight:900;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}
.due.soon b{color:var(--warn)}
.due.late b{color:var(--danger)}
.due span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:800}

/* GRÁFICAS DE ONBOARDING */
.qstat{padding:14px 0;border-bottom:1px solid var(--line)}
.qstat:last-child{border-bottom:0}
.qhead{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:4px}
.qhead b{font-size:12.5px;font-weight:800;line-height:1.4;letter-spacing:-.005em}
.qn{flex:none;font-size:10px;font-weight:800;color:var(--muted);border:1px solid var(--line);border-radius:99px;
  padding:2px 7px;font-variant-numeric:tabular-nums}
.qtype{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin-bottom:10px}
.qbody{display:flex;gap:16px;align-items:center}
.qbars{flex:1;display:flex;flex-direction:column;gap:7px;min-width:0}
.qbar{display:grid;grid-template-columns:minmax(0,1fr) 2fr auto;gap:9px;align-items:center}
.qbar-label{font-size:11.5px;color:var(--muted);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qbar.top .qbar-label{color:var(--text);font-weight:700}
.qbar-track{height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden;border:1px solid var(--line)}
.qbar-track i{display:block;height:100%;border-radius:99px;transition:width .5s var(--ease)}
.qbar-num{display:flex;align-items:baseline;gap:5px;min-width:54px;justify-content:flex-end}
.qbar-num b{font-size:12.5px;font-weight:850;font-variant-numeric:tabular-nums}
.qbar-num span{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}
.qstack{display:flex;height:30px;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--line)}
.qstack i{height:100%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;
  color:var(--on-accent);min-width:0;transition:width .5s var(--ease);overflow:hidden}
.qlegend{display:flex;flex-wrap:wrap;gap:9px;margin-top:9px}
.qleg{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}
.qleg i{width:9px;height:9px;border-radius:3px;flex:none}
.qleg b{color:var(--text);font-weight:750;font-variant-numeric:tabular-nums}
.heat{overflow-x:auto;scrollbar-width:thin}
.heat table{border-collapse:collapse;width:100%;min-width:340px}
.heat th{font-size:9.5px;font-weight:800;color:var(--muted);padding:4px 3px;text-align:center}
.heat td{padding:2px}
.heat .cell{width:100%;aspect-ratio:1;border-radius:5px;min-width:26px;display:grid;place-items:center;
  font-size:9px;font-weight:800;color:var(--on-accent)}
.heat .rowlab{font-size:9.5px;font-weight:800;color:var(--muted);text-align:right;padding-right:6px;white-space:nowrap}
.answer{border-left:2px solid var(--accent-line);padding:2px 0 2px 11px;margin-top:9px}
.answer b{display:block;font-size:11px;color:var(--accent);font-weight:800}
.answer p{font-size:12.5px;line-height:1.55;margin-top:2px;white-space:pre-wrap;color:var(--text)}
.answer .who{font-size:10px;color:var(--faint);font-weight:700;margin-bottom:3px}
.donut{flex:none;width:104px;height:104px;border-radius:50%;position:relative;display:grid;place-items:center}
.donut::after{content:"";position:absolute;inset:13px;border-radius:50%;background:var(--surface);border:1px solid var(--line)}
.donut span{position:relative;z-index:1;text-align:center;line-height:1.1;padding:0 6px}
.donut b{display:block;font-size:19px;font-weight:900;letter-spacing:-.04em}
.donut i{display:block;font-style:normal;font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}

/* CALENDARIO */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow{font-size:9.5px;font-weight:800;color:var(--muted);text-align:center;padding:6px 0;text-transform:uppercase;letter-spacing:.06em}
.cal-day{min-height:80px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:6px;
  display:flex;flex-direction:column;gap:4px;align-items:stretch;font-size:11px;color:var(--text);cursor:pointer;transition:border-color .15s,background .15s}
.cal-day:hover{border-color:var(--accent-line)}
.cal-day.dim{opacity:.3;pointer-events:none}
.cal-day.today{border-color:var(--accent);background:var(--accent-soft)}
.cal-day b{font-size:12px;font-weight:700;color:var(--muted);text-align:left}
.cal-day.today b{color:var(--accent);font-weight:900}
.cal-chips{display:flex;flex-direction:column;gap:2px;margin-top:auto;min-width:0}
.cal-chip{display:block;font-size:9px;font-weight:700;line-height:1.5;padding:1px 5px;border-radius:4px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;background:var(--accent-soft);color:var(--text);border-left:2px solid var(--cat-grabacion)}
.cal-chip.reunion{border-left-color:var(--cat-reunion)}
.cal-chip.closing{border-left-color:var(--cat-closing)}
.cal-chip.bloqueo,.cal-chip.google_busy{border-left-color:var(--faint);color:var(--muted)}
.cal-more{font-size:8.5px;font-weight:800;color:var(--muted);padding-left:5px}
.sheet{position:relative;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);overflow:hidden}
.sheet-scroll{position:relative;height:600px;overflow-y:auto}
.hour{position:relative;height:52px;border-top:1px solid var(--line)}
.hour::before{content:attr(data-h);position:absolute;left:0;top:-7px;font-size:9.5px;color:var(--muted);font-weight:700;background:var(--surface);padding:0 6px 0 4px}
.hour::after{content:"";position:absolute;left:42px;right:0;top:50%;border-top:1px dashed var(--line);opacity:.5}
.ev{position:absolute;left:44px;right:5px;border-radius:7px;padding:4px 8px;overflow:hidden;border:0;
  border-left:3px solid var(--cat-grabacion);background:var(--accent-soft);font-size:10.5px;font-weight:700;line-height:1.3;text-align:left;color:var(--text);cursor:pointer}
.ev.reunion{border-left-color:var(--cat-reunion);background:rgba(97,190,255,.12)}
.ev.closing{border-left-color:var(--cat-closing);background:rgba(255,200,97,.12)}
.ev.bloqueo,.ev.google_busy{border-left-color:var(--faint);background:var(--surface-2);color:var(--muted)}
.now-line{position:absolute;left:38px;right:0;height:2px;background:var(--danger);z-index:5}
.now-line::before{content:"";position:absolute;left:-5px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--danger)}
.week{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin}
.week-day{flex:1 0 200px;min-width:200px}
.week-day > h3{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:6px 0;text-align:center}
.week-day > h3.today{color:var(--accent)}

/* Selector de disponibilidad */
.avail-row{display:grid;grid-template-columns:34px 78px 1fr auto;gap:10px;align-items:start;padding:11px 0;border-bottom:1px solid var(--line)}
.avail-row:last-child{border-bottom:0}
.avail-day{width:32px;height:32px;flex:none;border-radius:50%;border:1px solid var(--line);background:transparent;
  color:var(--muted);font-size:12px;font-weight:900;transition:background .15s,color .15s,border-color .15s}
.avail-day.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.avail-name{font-size:12px;font-weight:700;color:var(--muted);padding-top:8px}
.avail-blocks{display:flex;flex-direction:column;gap:6px;padding-top:1px;min-width:0}
.avail-block{display:flex;align-items:center;gap:6px}
.avail-dash{color:var(--muted);font-size:12px}
.avail-blocks .muted{padding-top:8px}
.avail-x{width:30px;height:30px;flex:none;border-radius:var(--r-sm);border:1px solid var(--line);background:transparent;
  color:var(--muted);font-size:13px;line-height:1;transition:all .15s}
.avail-x:hover{border-color:var(--accent-line);color:var(--accent);background:var(--accent-soft)}
.avail-tools{display:flex;gap:5px;padding-top:1px}
.timepill{min-width:74px;min-height:34px;padding:6px 12px;border-radius:var(--r-sm);border:1px solid var(--line);
  background:var(--surface-2);color:var(--text);font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums;transition:border-color .15s}
.timepill:hover{border-color:var(--accent-line)}
.slotpick{display:flex;gap:6px;flex-wrap:wrap}
.slotpick button{padding:6px 11px;border-radius:var(--r-sm);border:1px solid var(--line);background:transparent;
  color:var(--muted);font-size:11.5px;font-weight:700;transition:all .15s}
.slotpick button.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--text)}

/* Rueda de tiempo iOS */
.wheel-wrap{display:flex;justify-content:center;align-items:center;position:relative;padding:12px 0;margin:6px 0;
  max-width:100%;overflow:hidden;gap:4px}
.wheel-wrap::before,.wheel-wrap::after{content:"";position:absolute;left:0;right:0;height:70px;z-index:2;pointer-events:none}
.wheel-wrap::before{top:0;background:linear-gradient(180deg,var(--surface),transparent)}
.wheel-wrap::after{bottom:0;background:linear-gradient(0deg,var(--surface),transparent)}
.wheel-sel{position:absolute;left:12px;right:12px;top:50%;height:40px;transform:translateY(-50%);
  border-top:1px solid var(--accent-line);border-bottom:1px solid var(--accent-line);background:var(--accent-soft);border-radius:8px;z-index:0;pointer-events:none}
.wheel{height:200px;overflow-y:scroll;scroll-snap-type:y mandatory;scrollbar-width:none;flex:1;max-width:96px;
  text-align:center;position:relative;z-index:1;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  scroll-snap-stop:always}
.wheel::-webkit-scrollbar{display:none}
.wheel .pad{height:80px}
.wheel .tick{height:40px;line-height:40px;scroll-snap-align:center;font-size:22px;font-weight:700;color:var(--faint);
  font-variant-numeric:tabular-nums;transition:color .12s,transform .12s}
.wheel .tick.sel{color:var(--text);font-weight:900;transform:scale(1.05)}
.wheel-colon{font-size:24px;font-weight:900;color:var(--muted);padding:0 2px}

/* MODAL */
.overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-end;justify-content:center;
  background:rgba(0,0,0,.62);backdrop-filter:blur(5px);animation:fade .2s ease}
@keyframes fade{from{opacity:0}}
.modal{width:min(100%,620px);max-height:92dvh;overflow-y:auto;border:1px solid var(--line);
  border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--surface);padding:18px 18px calc(18px + var(--sb));
  box-shadow:var(--shadow-modal);animation:rise .3s var(--ease)}
@keyframes rise{from{transform:translateY(30px);opacity:0}}
.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:15px}
.modal-head h2{font-size:17px;font-weight:850;letter-spacing:-.03em}
.modal-head p{font-size:11.5px;color:var(--muted);margin-top:3px}
.modal-x{width:32px;height:32px;flex:none;border-radius:var(--r-sm);border:1px solid var(--line);background:transparent;
  color:var(--muted);font-size:16px;line-height:1;transition:all .15s}
.modal-x:hover{border-color:var(--accent-line);color:var(--text)}
.modal section{margin-bottom:16px}
.modal section > h3{font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:9px}
.field{margin-bottom:10px}
.field label{display:block;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.modal .grid-2{grid-template-columns:1fr 1fr;gap:10px}
@media(min-width:761px){.overlay{align-items:center}.modal{border-radius:var(--r-lg);max-height:88dvh;width:min(100%,720px);padding:20px 22px}}
@media(min-width:1180px){.modal{width:min(100%,820px)}}

/* TOAST */
.toast-root{position:fixed;left:0;right:0;bottom:calc(84px + var(--sb));z-index:300;display:flex;flex-direction:column;align-items:center;gap:7px;pointer-events:none}
.toast{padding:10px 16px;border-radius:var(--r-md);font-size:12.5px;font-weight:700;border:1px solid var(--line);
  background:var(--surface);box-shadow:var(--shadow-modal);animation:rise .24s var(--ease);max-width:90vw}
.toast.bad{border-color:rgba(255,106,94,.45);color:var(--danger)}
.toast.good{border-color:var(--accent-line);color:var(--accent)}
@media(min-width:761px){.toast-root{bottom:24px}}

/* MÓVIL */
@media(max-width:760px){
  .app{grid-template-columns:1fr}
  .sidebar{display:none}
  .mobile-only{display:inline-flex}
  .topbar{padding:calc(12px + env(safe-area-inset-top,0px)) 14px 12px}
  .topbar h1{font-size:17px}
  .topbar-logo{width:30px;height:30px}
  .view{padding:14px 14px calc(94px + var(--sb))}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:7px 6px calc(7px + var(--sb));gap:2px;
    border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(18px);overflow-x:auto;scrollbar-width:none}
  .tabbar::-webkit-scrollbar{display:none}
  .tab-item{flex:1 0 auto;min-width:54px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 3px;
    border:0;background:transparent;border-radius:var(--r-md);color:var(--muted);text-decoration:none}
  .tab-item svg{width:21px;height:21px;stroke:var(--accent);stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:.5;transition:opacity .15s}
  .tab-item span{font-size:8.5px;font-weight:800;white-space:nowrap}
  .tab-item.on{color:var(--text)}
  .tab-item.on svg{opacity:1}
  .stats{gap:7px}
  .stat{min-width:84px;padding:8px 10px}
  .stat b{font-size:17px}
  .filters .inp{flex:1 1 130px}
  .stage-col{flex:0 0 84vw;min-width:84vw}
  .grid-2,.grid-3{grid-template-columns:1fr}
  .track-grid{grid-template-columns:1fr 1fr}
  .track{min-height:104px;padding:14px 12px}
  .track b{font-size:14px}
  .sheet-scroll{height:520px}
  .week-day{flex:0 0 86vw;min-width:86vw}
  .cal-day{min-height:58px;padding:4px}
  .cal-chip{font-size:0;padding:0;height:4px;border-radius:2px;border-left:0;background:var(--cat-grabacion)}
  .cal-chip.reunion{background:var(--cat-reunion)}
  .cal-chip.closing{background:var(--cat-closing)}
  .modal{padding:16px 15px calc(16px + var(--sb))}
  .qbody{flex-direction:column;align-items:stretch;gap:12px}
  .donut{margin:0 auto}
  .avail-row{grid-template-columns:30px 1fr auto;gap:8px}
  .avail-name{display:none}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .gh-cursor,.gh-ripple{display:none!important}
}

/* ===========================================================================
   ANTI-ZOOM Y ANTI-OVERFLOW · nada se desborda, nada hace zoom
   =========================================================================== */
html,body{max-width:100%;overflow-x:clip}
*{max-width:100%}
img,svg,video,canvas,table{max-width:100%}
.modal,.card,.stage-col,.track,.client-card,.lead{overflow-wrap:break-word;word-break:break-word}
.mono,.tmpl{overflow-wrap:anywhere}
/* En móvil, los campos deben medir >=16px o iOS hace zoom al enfocarlos */
@media(max-width:760px){
  .inp,select.inp,textarea.inp,.timepill{font-size:16px}
  .filters .inp{font-size:14px}   /* estos no reciben foco de teclado */
}
/* Bloquea el gesto de pinch en toda la app */
html{touch-action:pan-x pan-y}

/* ===========================================================================
   AJUSTES v10.1
   =========================================================================== */

/* Selector de hora de escritorio: 2 campos + AM/PM */
.timeform{display:flex;align-items:center;gap:8px;justify-content:center;padding:8px 0}
.timenum{width:80px;text-align:center;font-size:26px;font-weight:800;font-variant-numeric:tabular-nums;
  min-height:56px;padding:8px}
.timecolon{font-size:28px;font-weight:900;color:var(--muted)}
.mer{display:flex;flex-direction:column;gap:5px;margin-left:6px}
.mer-btn{min-width:52px;padding:7px 12px;border-radius:var(--r-sm);border:1px solid var(--line);
  background:var(--surface-2);color:var(--muted);font-size:13px;font-weight:800;transition:all .15s}
.mer-btn.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}

.timepill.block{width:100%}

/* Leads en móvil: un poco más compactos horizontalmente, sin tocar el diseño */
@media(max-width:760px){
  .stage-col{flex:0 0 80vw;min-width:80vw;padding:11px}
  .lead{padding:10px 11px}
  .lead-name{font-size:13px}
  .lead-actions .btn.xs{padding:4px 8px;font-size:10.5px}
}

/* ===========================================================================
   MODALES DE ABAJO · sin overflow, deslizables solo vertical
   =========================================================================== */
.overlay{align-items:flex-end}
.modal{
  width:100%;max-width:100%;overflow-x:hidden;overflow-y:auto;
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain;
}
.modal *{max-width:100%}
.modal .grid-2,.modal .grid-3{max-width:100%}
.modal input,.modal select,.modal textarea,.modal .timepill,.modal .btn{max-width:100%}
/* la fila de días/slots no empuja el ancho */
.slotpick,.avail-blocks,.stats{max-width:100%}
.avail-block{flex-wrap:wrap}
@media(min-width:761px){
  .overlay{align-items:center}
}
@media(max-width:760px){
  .modal{width:100%;border-radius:20px 20px 0 0;max-height:90dvh}
  /* los campos lado a lado no desbordan en pantallas angostas */
  .modal .grid-2{grid-template-columns:1fr 1fr;gap:9px}
  .wheel{max-width:84px}
  .timeform{flex-wrap:nowrap}
  .timenum{width:64px;font-size:22px}
}

.cc-bar{height:4px;border-radius:99px;background:var(--surface-2);overflow:hidden;border:1px solid var(--line)}
.cc-bar i{display:block;height:100%;width:100%;background:var(--accent);border-radius:99px}

/* v125 · client branding */
.client-logo-editor{display:flex;gap:14px;align-items:center;padding:12px;margin-bottom:14px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.035)}
.client-logo-preview{width:76px;height:76px;border-radius:20px;border:1px solid var(--line);background:var(--bg2);display:grid;place-items:center;overflow:hidden;flex:0 0 auto;font-weight:950;color:var(--accent)}
.client-logo-preview img{width:100%;height:100%;object-fit:contain}.client-brand-mini{width:38px;height:38px;border-radius:12px;object-fit:contain;background:rgba(255,255,255,.04);border:1px solid var(--line)}
.onboarding-row{padding:13px 0;border-bottom:1px solid var(--line)}.onboarding-row:last-child{border-bottom:0}
.insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.insight{border:1px solid var(--line);background:var(--surface-2);border-radius:16px;padding:13px}.insight span,.insight small{display:block;color:var(--muted);font-size:10px}.insight b{display:block;font-size:24px;letter-spacing:-.04em;margin:3px 0}.insight b.small-value{font-size:13px;line-height:1.15;letter-spacing:-.02em}.qbar-track i{background:var(--accent)}
@media(max-width:700px){.insight-grid{grid-template-columns:1fr 1fr}}
.booking-link-row{padding:13px 0;border-bottom:1px solid var(--line)}.booking-link-row:last-child{border-bottom:0}
.client-detail-logo{width:62px;height:62px;border-radius:18px;object-fit:contain;border:1px solid var(--line);background:var(--surface-2);flex:0 0 auto}
.booking-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.booking-meta>div{padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.booking-meta span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.booking-meta b{display:block;font-size:12px;margin-top:3px;word-break:break-word}@media(max-width:650px){.booking-meta{grid-template-columns:1fr}}

/* ==========================================================================
   CLIENTES · PLANES CUSTOM + CAPACIDAD v12.2
   ========================================================================== */
.custom-plan-editor{margin:4px 0 16px;padding:16px;border:1px solid var(--accent-line);border-radius:var(--r-lg);background:linear-gradient(145deg,var(--accent-soft),transparent 62%),var(--surface-2)}
.custom-cap-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 9px;padding-top:14px;border-top:1px solid var(--line)}
.custom-cap-head:first-child{margin-top:3px;padding-top:0;border-top:0}.custom-cap-head b{font-size:12px;font-weight:900;letter-spacing:.02em}.custom-cap-head span{font-size:10.5px;color:var(--muted);text-align:right}
.custom-cap-grid .field{margin-bottom:0}.derived-cap{margin-top:9px;padding:10px 12px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);font-size:11.5px;color:var(--muted)}.derived-cap b{color:var(--text)}
.toggle-field{min-height:72px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);padding:11px 12px;display:flex;align-items:center;gap:10px;cursor:pointer}.toggle-field input{width:18px;height:18px;accent-color:var(--accent)}.toggle-field span{display:flex;flex-direction:column}.toggle-field b{font-size:12px}.toggle-field small{font-size:10.5px;color:var(--muted);margin-top:2px}
.notice-soft,.warning-soft{padding:11px 12px;border-radius:var(--r-md);font-size:11.5px;line-height:1.55;border:1px solid var(--line);background:var(--surface)}.warning-soft{margin-top:10px;border-color:rgba(229,184,62,.3);background:rgba(229,184,62,.07);color:var(--text)}
.plan-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:4px}.plan-kpis>div{padding:11px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}.plan-kpis b{display:block;font-size:20px;line-height:1;font-weight:900;letter-spacing:-.04em}.plan-kpis span{display:block;font-size:9.5px;color:var(--muted);margin-top:5px;text-transform:uppercase;letter-spacing:.04em}
.custom-contract{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.contract-conditions{margin-top:10px;padding:11px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}.contract-conditions b{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.contract-conditions p{font-size:12px;line-height:1.55;margin-top:5px;color:var(--text)}
.capacity-total{padding:12px 13px;border:1px solid var(--accent-line);border-radius:var(--r-md);background:var(--accent-soft);margin-bottom:15px}.capacity-total b{font-size:12.5px}.capacity-total span{font-size:11px;color:var(--muted);font-weight:800}.capacity-section-title{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:14px 0 7px}.capacity-section-title b{font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.capacity-section-title span{font-size:10.5px;color:var(--muted)}
.capacity-list{display:flex;flex-direction:column;gap:6px}.capacity-row{display:flex;align-items:center;gap:14px;justify-content:space-between;padding:10px 11px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}.capacity-row.off{opacity:.52}.capacity-copy{flex:1;min-width:0}.capacity-copy b{display:block;font-size:12.5px;font-weight:800}.capacity-copy small{display:block;font-size:10.5px;color:var(--muted);margin-top:2px}.capacity-copy .bar{max-width:360px;margin-top:7px;height:5px}.capacity-controls{display:flex;align-items:center;gap:7px;flex:none}.capacity-controls strong{min-width:42px;text-align:center;font-size:11.5px;font-variant-numeric:tabular-nums}.cap-btn{width:32px;height:32px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--text);font-weight:900;font-size:18px;line-height:1}.cap-btn:hover:not(:disabled){border-color:var(--accent-line)}.cap-btn.plus{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.cap-btn:disabled{opacity:.28;cursor:not-allowed}.capacity-note{margin-top:10px;font-size:10.5px;line-height:1.5}

@media(max-width:700px){
  .plan-kpis{grid-template-columns:1fr 1fr}.capacity-row{align-items:flex-start}.capacity-controls{margin-top:1px}.capacity-section-title{align-items:flex-start;flex-direction:column;gap:2px}.custom-plan-editor{padding:13px}
}

/* v12.2 · ciclos de membresía */
.cycle-banner{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 16px}
.cycle-banner>div{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:3px}
.cycle-banner span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}
.cycle-banner b{font-size:13px}
@media(max-width:650px){.cycle-banner{grid-template-columns:1fr}}
.cycle-history{display:grid;gap:8px}
.cycle-history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface-2)}
.cycle-history-row>div{display:flex;flex-direction:column;gap:2px}.cycle-history-row small{color:var(--muted);font-size:10px}.cycle-history-row>span{color:var(--muted);font-size:12px;text-align:right}
@media(max-width:650px){.cycle-history-row{align-items:flex-start;flex-direction:column}.cycle-history-row>span{text-align:left}}

/* v12.14 · membresía: servicio y pago son calendarios distintos */
.membership-dates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 14px}
.membership-dates>div,.info-soft{border:1px solid var(--line,rgba(255,255,255,.09));border-radius:14px;background:rgba(255,255,255,.025);padding:12px 14px}
.membership-dates span{display:block;font-size:11px;opacity:.62;margin-bottom:4px}
.membership-dates b{display:block;font-size:13px;line-height:1.35}
.info-soft{font-size:12px;line-height:1.55;color:var(--muted,#9eaaa3)}
@media(max-width:760px){.membership-dates{grid-template-columns:1fr}.membership-dates>div{padding:11px 12px}}

/* ========================================================================== */
/* V12.12 · ONBOARDING PANEL                                                   */
/* ========================================================================== */
.onboarding-row-v2{padding:16px 0}
.panel-tabs{display:flex;gap:8px;padding:4px;background:var(--surface-2,#f4f7f5);border:1px solid var(--line);border-radius:16px;margin-bottom:16px}
.panel-tabs .tab{flex:1;border:0;background:transparent;border-radius:12px;padding:10px 12px;font-weight:800;color:var(--muted);cursor:pointer}
.panel-tabs .tab.on{background:#fff;color:var(--ink);box-shadow:0 5px 18px rgba(7,35,18,.06)}
.tab-count{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;margin-left:5px;border-radius:999px;background:rgba(1,115,58,.08);font-size:10px}
.ob-panel-section{padding:2px 0 4px}
.ob-link-state{display:flex;align-items:center;justify-content:space-between;padding:14px 15px;border:1px solid var(--line);border-radius:16px;background:#fbfdfc;margin-bottom:14px}
.ob-link-state span,.ob-kpis span,.event-detail-grid span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800;margin-bottom:4px}
.ob-link-state b{font-size:14px}
.switch{position:relative;width:50px;height:28px;display:block;cursor:pointer}.switch input{display:none}.switch i{position:absolute;inset:0;border-radius:999px;background:#d8dfdb;transition:.2s}.switch i:after{content:"";position:absolute;width:22px;height:22px;border-radius:50%;background:#fff;left:3px;top:3px;box-shadow:0 2px 6px rgba(0,0,0,.18);transition:.2s}.switch input:checked+i{background:linear-gradient(106deg,#A4CD01,#78FF00)}.switch input:checked+i:after{transform:translateX(22px)}
.ob-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.ob-kpis>div{padding:12px;border:1px solid var(--line);border-radius:14px;background:#fbfdfc}.ob-kpis b{font-size:18px}
.copy-field{display:grid;grid-template-columns:1fr auto;gap:8px}.copy-field .inp{min-width:0}
.ob-responses{display:grid;gap:10px}.ob-response-card{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff}.ob-response-card details{margin-top:10px}.ob-response-card summary{cursor:pointer;font-size:12px;font-weight:800;color:var(--accent)}.ob-answer-list{display:grid;gap:8px;margin-top:10px}.ob-answer-list>div{padding:10px;border-radius:12px;background:#f8faf9}.ob-answer-list small{display:block;color:var(--muted);font-weight:800;margin-bottom:3px}.ob-answer-list p{margin:0;white-space:pre-wrap;line-height:1.45}

/* ========================================================================== */
/* V12.12 · CALENDARIO                                                         */
/* ========================================================================== */
.calendar-topbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.calendar-nav-main,.calendar-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.calendar-month-card,.calendar-day-card{border:1px solid var(--line);background:rgba(255,255,255,.88);border-radius:24px;box-shadow:var(--shadow);overflow:hidden}
.calendar-month-head,.calendar-day-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:20px 22px 16px}.calendar-month-head h2,.calendar-day-head h2{font-size:22px;letter-spacing:-.04em;margin:0;text-transform:capitalize}.calendar-month-head .eyebrow,.calendar-day-head .eyebrow{margin-bottom:4px}
.calendar-legend{display:flex;gap:7px;flex-wrap:wrap}.calendar-legend span{font-size:10px;font-weight:800;padding:6px 9px;border-radius:999px}.calendar-legend .grabacion{background:rgba(120,255,0,.12);color:#0b6d37}.calendar-legend .reunion{background:rgba(97,190,255,.14);color:#1d6690}.calendar-legend .closing{background:rgba(229,184,62,.17);color:#7a5b08}
.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.calendar-dow{padding:9px 8px;text-align:center;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#f8faf9}
.calendar-cell{appearance:none;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;min-height:122px;padding:10px;text-align:left;cursor:pointer;transition:.16s;min-width:0}.calendar-cell:hover{background:#fbfdfc;box-shadow:inset 0 0 0 1px rgba(18,147,79,.18)}.calendar-cell.empty{background:#fafbfa;cursor:default}.calendar-cell.today{background:linear-gradient(180deg,rgba(120,255,0,.07),#fff)}
.calendar-date{display:flex;align-items:center;gap:6px;margin-bottom:8px}.calendar-date b{font-size:13px}.calendar-date span{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#0B8244;background:rgba(120,255,0,.13);padding:3px 5px;border-radius:999px}
.calendar-events{display:grid;gap:4px}.month-event{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px;align-items:center;border-radius:8px;padding:5px 6px;font-size:9.5px;line-height:1.2;border-left:3px solid}.month-event i{font-style:normal;opacity:.7}.month-event b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-event.grabacion{background:rgba(120,255,0,.10);border-color:#78c900;color:#245313}.month-event.reunion{background:rgba(97,190,255,.12);border-color:#61beff;color:#245a75}.month-event.closing{background:rgba(229,184,62,.14);border-color:#E5B83E;color:#725817}.month-event.bloqueo,.month-event.google_busy{background:#f1f3f2;border-color:#9aa59f;color:#68736d}.calendar-more{font-size:9px;color:var(--muted);font-weight:800;padding:2px 5px}
.calendar-day-card{padding-bottom:18px}.day-sheet{padding:0 18px 0 72px}.day-hours{height:870px;position:relative;border-left:1px solid var(--line);background:linear-gradient(180deg,#fff,#fbfdfc)}.day-hour{position:absolute;left:0;right:0;height:1px;border-top:1px solid rgba(0,65,32,.08)}.day-hour span{position:absolute;left:-56px;top:-7px;font-size:10px;color:var(--muted)}
.day-event{position:absolute;left:9px;right:9px;border:0;border-left:4px solid;border-radius:10px;padding:7px 9px;text-align:left;cursor:pointer;overflow:hidden;box-shadow:0 4px 14px rgba(7,35,18,.05)}.day-event:hover{transform:translateY(-1px)}.day-event.grabacion{background:#f2ffe9;border-color:#78c900;color:#173b12}.day-event.reunion{background:#eff8ff;border-color:#61beff;color:#164b68}.day-event.closing{background:#fff9e8;border-color:#E5B83E;color:#5d4710}.day-event.bloqueo,.day-event.google_busy{background:#f3f4f4;border-color:#9ca7a1;color:#5f6964}.day-event-type{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;opacity:.68;margin-bottom:2px}.day-event b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-event small{display:block;font-size:9px;margin-top:2px;opacity:.72}.now-line-v2{position:absolute;left:-5px;right:0;height:2px;background:#0B8244;z-index:5}.now-line-v2:before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:#0B8244}
.event-badges{margin-bottom:12px}.event-pill.grabacion{background:rgba(120,255,0,.13);color:#23620f}.event-pill.reunion{background:rgba(97,190,255,.14);color:#245a75}.event-pill.closing{background:rgba(229,184,62,.17);color:#6d5412}.event-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.event-detail-grid>div{padding:11px;border:1px solid var(--line);border-radius:13px;background:#fbfdfc}.event-detail-grid b{display:block;overflow-wrap:anywhere}.event-notes textarea{min-height:160px;max-height:260px;overflow:auto;background:#fbfdfc;white-space:pre-wrap}.event-notes .btn{margin-top:7px}

@media(max-width:760px){
  .calendar-topbar{align-items:flex-start}.calendar-actions{width:100%}.calendar-actions .btn{flex:1}.calendar-month-head{padding:16px;align-items:flex-start}.calendar-legend{display:none}.calendar-month-grid{font-size:10px}.calendar-cell{min-height:78px;padding:6px}.month-event{display:block;padding:0;height:5px;border:0;border-radius:999px;font-size:0}.month-event.grabacion{background:#78c900}.month-event.reunion{background:#61beff}.month-event.closing{background:#E5B83E}.month-event.bloqueo,.month-event.google_busy{background:#9ca7a1}.calendar-more{font-size:8px}.calendar-day-head{padding:16px;align-items:flex-start}.day-sheet{padding-left:58px;padding-right:10px}.day-hour span{left:-46px}.event-detail-grid{grid-template-columns:1fr}.ob-kpis{grid-template-columns:1fr 1fr 1fr}.copy-field{grid-template-columns:1fr}.copy-field .btn{width:100%}
}


/* Onboarding panel readability improvements */
.panel-tabs-ob{background:rgba(255,255,255,.10);padding:5px;border-color:rgba(255,255,255,.14)}
.panel-tabs-ob .tab{font-weight:900;color:rgba(255,255,255,.72)}
.panel-tabs-ob .tab.on{background:#fff;color:#07100C;box-shadow:0 10px 24px rgba(7,35,18,.12)}
.ob-panel-shell{display:grid;gap:14px}
.ob-panel-surface{background:#FFFFFF;color:#07100C;border:1px solid rgba(0,65,32,.10);border-radius:20px;padding:16px;box-shadow:0 18px 40px rgba(7,35,18,.08)}
.ob-panel-surface .field label,.ob-panel-surface .muted,.ob-panel-surface small,.ob-panel-surface .qtype{color:#617168}
.ob-panel-surface .inp,.ob-panel-surface select.inp,.ob-panel-surface textarea.inp{background:#F7FAF8;border-color:rgba(0,65,32,.12);color:#07100C}
.ob-soft-card{background:#FBFCFB;border:1px solid rgba(0,65,32,.10);border-radius:18px;padding:14px}
.ob-link-state{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.ob-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.ob-kpis>div{padding:14px;border:1px solid rgba(0,65,32,.10);border-radius:16px;background:#FBFCFB}
.ob-kpis span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#617168;font-weight:800;margin-bottom:4px}
.ob-kpis b{font-size:19px;color:#07100C}
.ob-help{margin-top:6px;font-size:12px}
.ob-response-toolbar{margin-bottom:12px;gap:12px;align-items:center}
.ob-responses{display:grid;gap:12px}
.ob-response-card{border:1px solid rgba(0,65,32,.10);border-radius:18px;padding:14px;background:#FBFCFB;box-shadow:0 8px 24px rgba(7,35,18,.04)}
.ob-response-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.ob-response-copy b{font-size:14px;color:#07100C}
.ob-response-card details{margin-top:10px;border-top:1px solid rgba(0,65,32,.08);padding-top:10px}
.ob-response-card summary{cursor:pointer;font-size:12px;font-weight:900;color:#01733A;list-style:none}
.ob-response-card summary::-webkit-details-marker{display:none}
.ob-answer-list{display:grid;gap:10px;margin-top:12px}
.ob-answer-list>div{padding:12px;border-radius:14px;background:#FFFFFF;border:1px solid rgba(0,65,32,.08)}
.ob-answer-list small{display:block;color:#617168;font-weight:800;margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}
.ob-answer-list p{margin:0;white-space:pre-wrap;line-height:1.5;color:#07100C}
@media(max-width:760px){
  .ob-kpis{grid-template-columns:1fr}
  .ob-response-head{flex-direction:column}
}

/* ========================= WORKSHOP MANAGER · V12.12 ====================== */
.workshop-loading{padding:24px;text-align:center;color:var(--muted)}
.workshop-create{display:grid;gap:14px}.workshop-create-hero{display:flex;gap:14px;align-items:center;padding:15px;border:1px solid var(--line);border-radius:18px;background:var(--surface-2)}.workshop-create-hero img{width:62px;height:62px;object-fit:contain;background:transparent}.workshop-create-hero span{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:900}.workshop-create-hero h3{margin:3px 0 0;font-size:18px}.workshop-help{margin-top:5px;font-size:11px}
.workshop-manager{display:grid;gap:14px}.workshop-switcher{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px}.workshop-chip{flex:0 0 auto;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);border-radius:999px;padding:8px 12px;font-size:11px;font-weight:850;cursor:pointer}.workshop-chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.workshop-chip.add{border-style:dashed}
.workshop-editor-head{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--surface-2)}.workshop-logo-box{width:76px;height:76px;border-radius:18px;display:grid;place-items:center;overflow:hidden;background:rgba(255,255,255,.035);border:1px solid var(--line)}.workshop-logo-box img{width:100%;height:100%;object-fit:contain;background:transparent}.workshop-head-copy .field{margin:0}.workshop-head-actions{margin-top:8px}.workshop-active{display:grid;justify-items:center;gap:4px}.workshop-active span,.session-enabled span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:900}
.workshop-link-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:var(--surface-2)}.workshop-link-row small{display:block;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.08em;margin-bottom:3px}.workshop-link-row code{font-size:11px;word-break:break-all;color:var(--text)}
.workshop-storage{padding:14px;border-radius:18px;border:1px solid var(--line);background:var(--surface-2)}.workshop-storage small{display:block;color:var(--muted);margin-top:3px}.storage-bar{height:7px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden;margin:10px 0}.storage-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent-strong),var(--accent-vivid));border-radius:inherit}.storage-limit-row{gap:7px;align-items:center}.storage-limit-row label{font-size:10px;font-weight:900;text-transform:uppercase;color:var(--muted)}.storage-limit-row .inp{width:92px;min-height:34px;padding:6px 9px}.storage-limit-row span{font-size:10px;color:var(--muted)}.workshop-health{margin-top:7px;font-size:11px}
.workshop-settings-save{display:flex;gap:8px;justify-content:flex-end}.workshop-sessions-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:4px}.workshop-sessions-head>div>span{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:900}.workshop-sessions-head h3{font-size:18px;margin:2px 0 0}.workshop-session-list{display:grid;gap:10px}.workshop-session{padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--surface-2)}.workshop-session-top{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center}.session-order{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:900}.session-title{min-width:0}.session-enabled{display:grid;justify-items:center;gap:4px}.workshop-video-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.video-state{min-width:0}.video-state b{display:block;font-size:12px}.video-state small{display:block;color:var(--muted);font-size:10px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:390px}.video-state.ready b{color:var(--accent)}.upload-progress{height:7px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden;margin-top:11px}.upload-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--accent-strong),var(--accent-vivid));transition:width .12s}.upload-status{font-size:10px;margin-top:5px}.empty.compact{padding:18px}
@media(max-width:760px){.workshop-editor-head{grid-template-columns:62px 1fr}.workshop-logo-box{width:62px;height:62px}.workshop-active{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-start}.workshop-link-row,.workshop-video-row{align-items:flex-start;flex-direction:column}.workshop-link-row>.row,.workshop-video-row>.row{width:100%}.workshop-video-row>.row .btn{flex:1}.storage-limit-row{align-items:flex-start;flex-wrap:wrap}.workshop-session-top{grid-template-columns:34px 1fr}.session-enabled{grid-column:2;justify-self:start;display:flex;align-items:center}.workshop-settings-save{display:grid;grid-template-columns:1fr}.workshop-settings-save .btn{width:100%}.video-state small{max-width:72vw}}
