/* ============ Páginas de producto de servicios y portal del cliente ============ */
.product{padding-top:30px;padding-bottom:90px}
.crumbs{font-family:var(--mono);font-size:12.5px;color:var(--text-3);margin-bottom:22px}
.crumbs a{color:var(--text-2);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.p-hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:start}
.p-tagline{font-size:18px;color:var(--text-2);margin:6px 0 16px;max-width:60ch}
.p-buy{margin-top:18px;border:1px solid var(--line-2);border-radius:var(--r);padding:22px;background:var(--surface)}
.p-price{font-family:var(--mono);font-size:30px;font-weight:700;color:var(--text)}
.p-price-note{font-family:var(--mono);font-size:12px;color:var(--text-3);margin:4px 0 14px}
.p-form .field{margin-top:0;margin-bottom:12px}
.p-form select{height:48px;border-radius:var(--r-sm);border:1px solid var(--line-2);background:#050505;color:var(--text);font-family:var(--mono);padding:0 12px}
.p-buy .btn-block{margin-top:8px}
.p-after{font-size:13.5px;color:var(--text-3);margin-top:12px}
.p-area-note{font-size:12.5px;color:var(--text-3);margin:-4px 0 12px}
.p-scene{position:sticky;top:calc(var(--nav-h) + 16px)}
.p-scene-hint{font-family:var(--mono);font-size:11.5px;color:var(--text-3);margin-top:8px;text-align:center}
.p-sec{margin-top:54px}
.p-h{font-family:var(--mono);font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--text);margin-bottom:12px}
.p-summary{font-size:18px;color:var(--text-2);max-width:72ch}
.p-muted{color:var(--text-3)}
.p-cols{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.p-steps{list-style:none;counter-reset:st}
.p-steps li{counter-increment:st;position:relative;padding:10px 0 12px 46px;border-bottom:1px dashed var(--line)}
.p-steps li::before{content:counter(st,decimal-leading-zero);position:absolute;left:0;top:10px;font-family:var(--mono);font-size:13px;color:var(--bg);background:var(--text);border-radius:8px;padding:2px 7px}
.p-steps b{display:block;color:var(--text);font-weight:600}
.p-steps span{color:var(--text-2);font-size:15px}
.p-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.p-card{border:1px solid var(--line-2);border-radius:var(--r);padding:18px 20px;background:var(--surface)}
.p-card h3{font-family:var(--mono);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-3);margin-bottom:8px;font-weight:400}
.p-card p,.p-card li{color:var(--text-2);font-size:15px}
.p-card ul{margin-left:18px}
.p-faq{border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin:10px 0;background:var(--surface)}
.p-faq summary{cursor:pointer;color:var(--text);font-weight:500}
.p-faq p{margin:10px 0 0;color:var(--text-2)}
.p-rel{text-decoration:none;color:inherit}
.card-more{display:inline-block;margin-top:14px;font-family:var(--mono);font-size:12.5px;color:var(--text);text-decoration:none}
.card:hover .card-more,.card-more:hover{text-decoration:underline}
.p-final{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 24px;border:1px dashed var(--line-2);border-radius:var(--r)}
.p-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}

/* ============ portal del cliente ============ */
.orders{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.order-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 20px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);text-decoration:none;color:var(--text)}
.order-row:hover{border-color:var(--text)}
.o-code{display:block;font-size:12px;color:var(--text-3)}
.o-meta{display:block;font-size:13px;color:var(--text-3);margin-top:2px}
.o-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.o-badge{font-family:var(--mono);font-size:11px;background:#ffbe5a;color:#000;border-radius:999px;padding:3px 9px}
.o-status{font-family:var(--mono);font-size:11.5px;letter-spacing:.5px;border:1px solid var(--line-2);border-radius:999px;padding:4px 11px;color:var(--text-2);white-space:nowrap}
.o-status.big{font-size:13px;padding:7px 14px}
.o-status.s-pagado,.o-status.s-en_revision{border-color:#ffbe5a;color:#ffd9a0}
.o-status.s-agendado,.o-status.s-en_proceso{border-color:#5ad1ff;color:#bfeaff}
.o-status.s-completado{border-color:var(--ok);color:#a6f0c6}
.o-status.s-cancelado,.o-status.s-reembolsado{border-color:var(--err);color:#ffb3b3}
.o-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}
.timeline{list-style:none;margin:22px 0 0;border-left:2px solid var(--line-2);padding-left:16px}
.timeline li{position:relative;padding:4px 0 8px;color:var(--text-2);font-size:14px}
.timeline li::before{content:"";position:absolute;left:-22px;top:10px;width:10px;height:10px;border-radius:50%;background:var(--text-3)}
.timeline li:last-child::before{background:var(--text)}
.timeline li.tl-next::before{background:#5ad1ff}
.timeline .mono{color:var(--text-3);font-size:12px;margin-right:6px}
.intake-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:20px;margin-top:16px;align-items:start}
.ai-box{border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);display:flex;flex-direction:column;height:640px;position:sticky;top:calc(var(--nav-h) + 12px)}
.ai-head{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:12px}
.ai-head .p-muted{margin-left:auto}
.ai-log,.chat-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px}
.chat-log{max-height:420px;min-height:120px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);margin-top:12px}
.bubble{max-width:88%;padding:10px 13px;border-radius:14px;font-size:14.5px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}
.bubble.bot{align-self:flex-start;background:#161616;border:1px solid var(--line-2);color:var(--text)}
.bubble.me{align-self:flex-end;background:var(--text);color:var(--bg)}
.bubble.sys{align-self:center;background:transparent;border:1px dashed var(--line-2);color:var(--text-3);font-size:13px}
.bubble.typing{opacity:.7;font-style:italic}
.b-who{display:block;font-family:var(--mono);font-size:10.5px;opacity:.65;margin-bottom:3px}
.ai-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}
#chat .ai-form{border-top:0;padding:10px 0 0}
.ai-form input{flex:1;height:44px;border-radius:999px;border:1px solid var(--line-2);background:#050505;color:var(--text);padding:0 16px;font-size:15px}
.ai-form input:focus{outline:none;border-color:var(--text)}
.ficha{border:1px solid var(--line-2);border-radius:var(--r);padding:6px 20px 20px;background:var(--surface)}
.ficha textarea{min-height:80px;padding:12px 14px;border-radius:var(--r-sm);border:1px solid var(--line-2);background:#050505;color:var(--text);font-family:var(--sans);font-size:15px;resize:vertical}
.ficha textarea:focus{outline:none;border-color:var(--text)}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.f3{display:grid;grid-template-columns:1.2fr 1fr .6fr;gap:12px}
.ai-filled{border-color:#5ad1ff!important;box-shadow:0 0 0 2px rgba(90,209,255,.15)}
.map-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:16px 0 8px}
.map-tools .mono{font-size:12px}
.map{height:300px;border-radius:12px;border:1px solid var(--line-2);overflow:hidden;background:#111}
.map.small{height:240px;margin-top:14px}
.ficha-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:18px}
.leaflet-container{font-family:var(--sans)}

@media(max-width:980px){
  .p-hero,.p-cols,.intake-grid{grid-template-columns:1fr}
  .p-scene,.ai-box{position:static}
  .ai-box{height:520px}
  .p-grid3{grid-template-columns:1fr}
}
@media(max-width:600px){
  .f2,.f3{grid-template-columns:1fr}
  .order-row{flex-direction:column;align-items:flex-start}
}

/* La página de producto ya explica cómo interactuar debajo de la escena */
.p-scene .s3d-hint{display:none}
