/* ============================================================
   Prospecta — painel (app)
   ============================================================ */
body.app{overflow:hidden;height:100vh}
.shell{display:grid;grid-template-columns:250px 1fr;height:100vh}

/* ---------------------------------------------------------- sidebar ----- */
.side{
  border-right:1px solid var(--line-soft);display:flex;flex-direction:column;
  padding:20px 14px;gap:6px;overflow-y:auto;background:hsl(var(--foreground) / .014);
}
.side .brand{display:flex;align-items:center;gap:10px;padding:6px 10px 20px}
.side .brand img{height:28px}
.nav-group{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);
  font-weight:700;padding:16px 12px 7px}
.nav-item{
  display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:var(--r-md);
  font-size:14.5px;font-weight:500;color:hsl(var(--foreground) / .74);cursor:pointer;
  border:1px solid transparent;transition:background .18s ease,color .18s ease;
}
.nav-item:hover{background:hsl(var(--foreground) / .05);color:var(--fg)}
.nav-item.on{background:hsl(var(--foreground) / .08);color:var(--fg);border-color:var(--line-soft)}
.nav-item .ic{width:19px;text-align:center;font-size:15px;flex-shrink:0}
.nav-item .lock{margin-left:auto;font-size:11px;opacity:.5}
.side-foot{margin-top:auto;padding-top:18px}
.plan-box{padding:14px;border-radius:var(--r-lg);border:1px solid var(--line-soft);font-size:12.5px}
.plan-box b{font-size:13.5px}
.bar{height:5px;border-radius:99px;background:hsl(var(--foreground) / .1);overflow:hidden;margin-top:6px}
.bar i{display:block;height:100%;border-radius:99px;
  background:linear-gradient(90deg,var(--indigo),var(--purple),var(--amber))}
.bar.warn i{background:linear-gradient(90deg,#f59e0b,#ef4444)}

/* ------------------------------------------------------------- main ----- */
.main{overflow-y:auto;display:flex;flex-direction:column}
.topbar{
  position:sticky;top:0;z-index:30;padding:16px 28px;display:flex;align-items:center;
  justify-content:space-between;gap:20px;border-bottom:1px solid var(--line-soft);
  background:hsl(var(--background) / .82);backdrop-filter:blur(14px);
}
.topbar h1{font-family:var(--font-display);font-size:23px;font-weight:400;letter-spacing:-.02em;
  margin:0}
.topbar .sub{font-size:13px;color:var(--muted-2);margin-top:2px}
.top-actions{display:flex;align-items:center;gap:10px}
.view{padding:26px 28px 60px;flex:1}
.grid{display:grid;gap:16px}
.cols-2{grid-template-columns:repeat(2,1fr)}
.cols-3{grid-template-columns:repeat(3,1fr)}
.cols-4{grid-template-columns:repeat(4,1fr)}
.panel{border:1px solid var(--line-soft);border-radius:var(--r-xl);padding:22px;
  background:hsl(var(--foreground) / .016)}
.panel h3{margin:0 0 4px;font-size:16px;font-weight:600;letter-spacing:-.01em}
.panel .hint{font-size:13px;color:var(--muted-2);margin:0 0 18px}

.stat{border:1px solid var(--line-soft);border-radius:var(--r-xl);padding:20px}
.stat span{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);
  font-weight:700}
.stat b{display:block;font-family:var(--font-display);font-size:36px;font-weight:400;
  letter-spacing:-.03em;margin-top:8px;line-height:1}
.stat small{display:block;font-size:12.5px;color:var(--muted-2);margin-top:6px}

/* ------------------------------------------------------------ forms ----- */
.field{margin-bottom:16px}
.field label{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted-2);margin-bottom:7px}
.input,select.input,textarea.input{
  width:100%;padding:11px 13px;border-radius:var(--r-md);font-size:14.5px;
  border:1px solid var(--line);background:hsl(var(--foreground) / .04);color:var(--fg);
  transition:border-color .2s ease,background .2s ease;
}
.input:focus{outline:none;border-color:hsl(258 90% 66% / .6);background:hsl(var(--foreground) / .06)}
select.input option{background:#120b22;color:var(--fg)}
textarea.input{resize:vertical;min-height:88px;font-family:inherit}
.row-inline{display:flex;gap:12px;flex-wrap:wrap}
.row-inline>*{flex:1;min-width:150px}

/* ------------------------------------------------------------ leads ----- */
.lead-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;
  flex-wrap:wrap;margin-bottom:14px}
.lead-list{display:grid;gap:9px}
.lead{
  display:grid;grid-template-columns:26px 1fr auto;gap:14px;align-items:center;
  padding:14px 16px;border-radius:var(--r-lg);border:1px solid var(--line-soft);
  background:hsl(var(--foreground) / .016);transition:border-color .2s ease;
}
.lead:hover{border-color:hsl(var(--foreground) / .16)}
.lead.sel{border-color:hsl(258 90% 66% / .5);background:hsl(258 90% 66% / .07)}
.lead input[type=checkbox]{width:17px;height:17px;accent-color:#a855f7;cursor:pointer}
.lead b{font-size:15px;font-weight:600;display:block;letter-spacing:-.01em}
.lead .meta{font-size:12.5px;color:var(--muted-2);margin-top:3px}
.lead .flags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.lead .right{display:flex;align-items:center;gap:14px}
.score{font-family:var(--font-display);font-size:26px;line-height:1;min-width:46px;text-align:right}
.score.hot{color:#f87171}.score.warm{color:#fcd34d}.score.cold{color:#a5b4fc}

/* -------------------------------------------------------------- CRM ----- */
.kanban{display:grid;grid-template-columns:repeat(6,minmax(210px,1fr));gap:12px;
  overflow-x:auto;padding-bottom:12px;align-items:start}
.col{border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:12px;min-height:220px;
  background:hsl(var(--foreground) / .014)}
.col.over{border-color:hsl(258 90% 66% / .6);background:hsl(258 90% 66% / .07)}
.col h4{margin:0 0 12px;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted-2);display:flex;justify-content:space-between;font-weight:700}
.kcard{
  padding:12px;border-radius:var(--r-md);border:1px solid var(--line-soft);margin-bottom:8px;
  background:hsl(var(--background));cursor:grab;transition:transform .18s ease,border-color .18s ease;
}
.kcard:hover{border-color:hsl(var(--foreground) / .22);transform:translateY(-2px)}
.kcard.drag{opacity:.4}
.kcard b{font-size:13.8px;display:block;font-weight:600;line-height:1.3}
.kcard span{font-size:11.8px;color:var(--muted-2);display:block;margin-top:4px}
.kcard .kf{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap}

/* ------------------------------------------------------------ sites ----- */
.site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.site-card{border:1px solid var(--line-soft);border-radius:var(--r-xl);overflow:hidden;
  background:hsl(var(--foreground) / .016);transition:transform .22s ease,border-color .22s ease}
.site-card:hover{transform:translateY(-3px);border-color:hsl(var(--foreground) / .18)}
.site-thumb{height:132px;position:relative;display:grid;place-items:center;text-align:center;
  padding:16px;color:#fff}
.site-thumb h4{margin:0;font-family:var(--font-display);font-size:19px;font-weight:400}
.site-thumb p{margin:5px 0 0;font-size:12.5px;opacity:.86}
.site-body{padding:16px}
.site-body .url{font-size:12px;color:var(--muted-2);word-break:break-all;margin:6px 0 12px}
.site-actions{display:flex;gap:7px;flex-wrap:wrap}

/* ----------------------------------------------------------- editor ----- */
.editor{display:grid;grid-template-columns:1fr 372px;gap:0;height:calc(100vh - 71px)}
.frame-wrap{background:#0a0713;position:relative;overflow:hidden;
  border-right:1px solid var(--line-soft)}
.frame-wrap iframe{width:100%;height:100%;border:0;background:#fff}
.frame-bar{position:absolute;top:0;left:0;right:0;padding:8px 14px;display:flex;gap:8px;
  align-items:center;background:hsl(var(--background) / .9);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-soft);z-index:5;font-size:12.5px;color:var(--muted-2)}
.frame-wrap iframe{margin-top:37px;height:calc(100% - 37px)}
.device-btn{padding:5px 11px;border-radius:8px;border:1px solid var(--line-soft);background:none;
  cursor:pointer;font-size:12px;color:var(--muted)}
.device-btn.on{background:hsl(var(--foreground) / .1);color:var(--fg)}
.ed-panel{display:flex;flex-direction:column;overflow:hidden}
.ed-tabs{display:flex;border-bottom:1px solid var(--line-soft);flex-shrink:0}
.ed-tabs button{flex:1;padding:13px 6px;background:none;border:0;cursor:pointer;font-size:13px;
  font-weight:600;color:var(--muted-2);border-bottom:2px solid transparent}
.ed-tabs button.on{color:var(--fg);border-bottom-color:var(--purple)}
.ed-body{flex:1;overflow-y:auto;padding:18px}
.chat-log{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.msg{padding:11px 14px;border-radius:14px;font-size:14px;max-width:92%;line-height:1.5}
.msg.me{align-self:flex-end;background:hsl(258 90% 66% / .22);border:1px solid hsl(258 90% 66% / .3)}
.msg.bot{align-self:flex-start;background:hsl(var(--foreground) / .05);border:1px solid var(--line-soft)}
.chat-form{display:flex;gap:8px;position:sticky;bottom:0;padding-top:10px;
  background:linear-gradient(transparent,hsl(var(--background)) 30%)}
.suggest{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.suggest button{font-size:12px;padding:6px 11px;border-radius:99px;border:1px solid var(--line-soft);
  background:none;cursor:pointer;color:var(--muted)}
.suggest button:hover{color:var(--fg);border-color:hsl(var(--foreground) / .24)}
.ver{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 12px;
  border:1px solid var(--line-soft);border-radius:var(--r-md);margin-bottom:7px;font-size:13px}
.ver b{font-size:13px;display:block}
.ver span{font-size:11.5px;color:var(--muted-2)}
.swatches{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.sw{width:30px;height:30px;border-radius:9px;cursor:pointer;border:2px solid transparent}
.sw.on{border-color:#fff}

/* ---------------------------------------------------------- scripts ----- */
.script-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.script-out{white-space:pre-wrap;font-size:13.6px;line-height:1.62;padding:18px;
  border-radius:var(--r-lg);border:1px solid var(--line-soft);background:hsl(var(--foreground) / .03);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;max-height:460px;overflow-y:auto}

/* ------------------------------------------------------------ modal ----- */
.overlay{position:fixed;inset:0;background:rgba(4,2,10,.72);backdrop-filter:blur(6px);z-index:100;
  display:grid;place-items:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .25s}
.overlay.show{opacity:1;pointer-events:auto}
.modal{width:min(560px,94vw);border-radius:var(--r-xl);padding:28px;max-height:88vh;overflow-y:auto;
  background:#0d0819;border:1px solid var(--line);transform:translateY(14px);transition:transform .3s}
.overlay.show .modal{transform:none}
.modal h3{margin:0 0 6px;font-family:var(--font-display);font-size:22px;font-weight:400;
  letter-spacing:-.02em}
.modal .hint{color:var(--muted-2);font-size:13.5px;margin:0 0 20px}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}

/* ------------------------------------------------------------ toast ----- */
.toasts{position:fixed;right:20px;bottom:20px;z-index:200;display:flex;flex-direction:column;
  gap:9px;align-items:flex-end}
.toast{padding:13px 18px;border-radius:var(--r-md);font-size:14px;font-weight:500;
  border:1px solid var(--line);background:#150d26;box-shadow:0 16px 40px rgba(0,0,0,.5);
  animation:tin .32s cubic-bezier(.22,1,.36,1);max-width:380px}
.toast.err{border-color:rgba(239,68,68,.42);background:#25101a}
.toast.ok{border-color:rgba(34,197,94,.4);background:#0f2018}
@keyframes tin{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}

.empty{text-align:center;padding:64px 20px;color:var(--muted-2)}
.empty .big{font-size:44px;margin-bottom:14px}
.empty h3{color:var(--fg);font-size:19px;margin:0 0 8px;font-weight:600}
.empty p{margin:0 auto 20px;max-width:44ch;font-size:14.5px}

.table{width:100%;border-collapse:collapse;font-size:14px}
.table th{text-align:left;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted-2);padding:10px 8px;border-bottom:1px solid var(--line-soft);font-weight:700}
.table td{padding:13px 8px;border-bottom:1px solid var(--line-soft)}
.table tr:hover td{background:hsl(var(--foreground) / .022)}

.pill-plan{font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;
  background:linear-gradient(100deg,var(--amber),var(--purple));color:#0a0517}

@media(max-width:1080px){
  .shell{grid-template-columns:1fr}
  .main{overflow-x:hidden}
  .topbar{flex-wrap:wrap;padding:12px 16px;gap:10px}
  .topbar h1{font-size:19px}
  .topbar .sub{display:none}
  .top-actions{gap:6px;flex-wrap:wrap}
  .top-actions .input{width:150px !important}
  .view{padding:18px 16px 70px}
  .kanban{grid-template-columns:repeat(6,minmax(180px,1fr))}
  .site-grid{grid-template-columns:1fr}
  .row-inline>*{min-width:100%}
  .side{position:fixed;left:0;top:0;bottom:0;width:250px;z-index:80;transform:translateX(-100%);
    transition:transform .3s cubic-bezier(.22,1,.36,1);background:#0b0616}
  .side.open{transform:none}
  .cols-4{grid-template-columns:repeat(2,1fr)}
  .cols-3,.cols-2{grid-template-columns:1fr}
  .editor{grid-template-columns:1fr;height:auto}
  .frame-wrap{height:56vh}
  .ed-panel{height:52vh;border-top:1px solid var(--line-soft)}
}

/* ---------------------------------------------------------- crear web --- */
/* Selector de modo: cómo se encuentra el negocio. Tres puertas a lo mismo. */
.modes{display:flex;gap:5px;padding:5px;border-radius:var(--r-lg);margin-bottom:20px;
  border:1px solid var(--line-soft);background:hsl(var(--foreground) / .022)}
.modes button{flex:1;padding:11px 10px;border:0;border-radius:calc(var(--r-lg) - 5px);
  background:none;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--muted-2);
  transition:color .18s ease,background-color .18s ease}
.modes button:hover{color:var(--fg)}
.modes button.on{color:var(--fg);background:hsl(var(--foreground) / .075)}

/* Nivel de entrega: qué recibe el cliente al final. */
.levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(196px,1fr));gap:10px}
.level{text-align:left;padding:15px 16px;border-radius:var(--r-lg);cursor:pointer;width:100%;
  border:1px solid var(--line-soft);background:hsl(var(--foreground) / .014);color:inherit;
  font:inherit;transition:border-color .18s ease,background-color .18s ease}
.level:hover{border-color:hsl(var(--foreground) / .2)}
.level.on{border-color:hsl(258 90% 66% / .55);background:hsl(258 90% 66% / .08)}
.level.off{opacity:.55}
.level b{display:block;font-size:14.5px;font-weight:600;letter-spacing:-.01em}
.level p{margin:6px 0 0;font-size:12.3px;color:var(--muted-2);line-height:1.5}
.level .lock{float:right;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted-2);font-weight:700;border:1px solid var(--line-soft);
  border-radius:var(--r-full);padding:2px 8px}

/* Ficha de un negocio encontrado por nombre en el mapa. */
.hit{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:14px 16px;
  border-radius:var(--r-lg);border:1px solid var(--line-soft);cursor:pointer;
  background:hsl(var(--foreground) / .016);transition:border-color .18s ease}
.hit:hover{border-color:hsl(var(--foreground) / .18)}
.hit.on{border-color:hsl(258 90% 66% / .5);background:hsl(258 90% 66% / .07)}
.hit b{font-size:15px;font-weight:600;display:block;letter-spacing:-.01em}
.hit .meta{font-size:12.5px;color:var(--muted-2);margin-top:3px}
.hit .flags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}

/* ------------------------------------------------------------- fotos ---- */
/* Las fotos del cliente en el editor. Cuadrícula pequeña: el panel es una
   columna estrecha al lado de la vista previa, no una galería. */
.fotos{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.foto{margin:0;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line-soft);
  background:hsl(var(--foreground) / .03)}
.foto img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.foto figcaption{display:flex;gap:1px;background:var(--line-soft)}
.foto figcaption button{flex:1;border:0;padding:7px 4px;cursor:pointer;font-size:11.5px;
  font-weight:600;color:var(--muted-2);background:hsl(var(--background));
  transition:color .16s ease,background-color .16s ease}
.foto figcaption button:hover{color:var(--fg)}
.foto figcaption button.on{color:#1a1030;background:var(--amber)}
.foto figcaption button:disabled{opacity:.5;cursor:default}
