/* TecnoCampaignSuite */
body{background:#f4f6fa;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:.94rem;color:#1f2937}
.soporte-banner{background:#7c3aed;color:#fff;padding:.4rem 1rem;font-size:.85rem;text-align:center}
.sidebar{width:250px;min-height:100vh;background:#111827 !important;color:#cbd5e1;flex-shrink:0}
@media(max-width:991.98px){.sidebar.offcanvas-lg{width:270px}}
@media(min-width:992px){.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto}}
.sidebar-brand{display:flex;gap:.7rem;align-items:center;padding:1rem;background:var(--p1);color:#fff}
.sidebar-brand img{width:46px;height:46px;object-fit:contain;background:#fff;border-radius:10px;padding:3px}
.brand-ini{width:46px;height:46px;border-radius:10px;background:var(--p2);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem}
.sidebar-menu{padding:.5rem}
.sidebar-menu a{display:flex;gap:.6rem;align-items:center;color:#cbd5e1;text-decoration:none;padding:.5rem .75rem;border-radius:8px;margin-bottom:2px}
.sidebar-menu a:hover{background:#1f2937;color:#fff}
.sidebar-menu a.active{background:var(--p1);color:#fff}
.sidebar-sep{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#6b7280;padding:1rem .75rem .3rem}
.topbar{background:#fff;border-bottom:1px solid #e5e7eb;padding:.55rem 1rem;display:flex;gap:.75rem;align-items:center;position:sticky;top:0;z-index:1000}
.cand-form select{min-width:260px;max-width:420px}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--p1);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:600}
.content{padding:1.25rem;max-width:1500px}
.page-head{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:space-between;margin-bottom:1rem}
.page-head h1{font-size:1.35rem;margin:0;font-weight:650}
.card{border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.card-header{background:#fff;font-weight:600;border-bottom:1px solid #eef0f3}
.kpi{padding:1rem}.kpi .v{font-size:1.6rem;font-weight:700}.kpi .l{color:#6b7280;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
.btn-primary{background:var(--p1);border-color:var(--p1)}.btn-primary:hover{filter:brightness(.92);background:var(--p1);border-color:var(--p1)}
.text-p1{color:var(--p1)}
.table{font-size:.9rem}.table th{font-weight:600;color:#4b5563;white-space:nowrap}
.map-box{height:520px;border-radius:12px;border:1px solid #e5e7eb}
.chat-wrap{display:flex;height:calc(100vh - 150px);background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}
.chat-list{width:300px;border-right:1px solid #e5e7eb;overflow-y:auto}
.chat-list a{display:block;padding:.7rem .9rem;border-bottom:1px solid #f1f2f4;color:inherit;text-decoration:none}
.chat-list a.active{background:#eef2ff}
.chat-main{flex:1;display:flex;flex-direction:column}
.chat-msgs{flex:1;overflow-y:auto;padding:1rem;background:#f8fafc}
.msg{max-width:70%;margin-bottom:.6rem;padding:.5rem .75rem;border-radius:12px;background:#fff;border:1px solid #e5e7eb}
.msg.mio{margin-left:auto;background:#e0e7ff;border-color:#c7d2fe}
.msg .meta{font-size:.72rem;color:#6b7280}
.msg.sistema{background:transparent;border:0;text-align:center;max-width:100%;color:#6b7280;font-size:.8rem}
.tree ul{list-style:none;padding-left:1.2rem;border-left:1px dashed #cbd5e1}
.tree li{margin:.25rem 0}
.semaforo{display:inline-block;width:12px;height:12px;border-radius:50%}
.semaforo.verde{background:#16a34a}.semaforo.amarillo{background:#f59e0b}.semaforo.rojo{background:#dc2626}
.perm-grid td{vertical-align:middle}
.login-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--p1),#111827)}
.login-card{width:100%;max-width:400px}
@media print{.sidebar,.topbar,.no-print{display:none!important}.content{padding:0}}
/* Manual */
.manual-indice{position:sticky;top:70px;max-height:calc(100vh - 90px);overflow:auto}
.manual-indice .list-group-item{font-size:.88rem;border:0;padding:.45rem .8rem}
.manual-indice .list-group-item.active{background:var(--p1);color:#fff}
.manual-texto{font-size:.98rem;line-height:1.65}
.manual-texto h3{font-size:1.2rem;margin-top:1.8rem;padding-bottom:.3rem;border-bottom:2px solid #eef0f3}
.manual-texto h4{font-size:1.02rem;margin-top:1.2rem}
.manual-texto ol li,.manual-texto ul li{margin-bottom:.25rem}
.manual-fig{margin:1rem 0 1.4rem;text-align:center}
.manual-fig img{max-width:100%;border:1px solid #dfe3ea;border-radius:10px;box-shadow:0 4px 18px rgba(15,23,42,.08)}
.manual-fig figcaption{font-size:.82rem;color:#6b7280;margin-top:.4rem}
.manual-texto .paso{display:inline-flex;width:24px;height:24px;border-radius:50%;background:#e11d48;color:#fff;font-weight:700;font-size:.8rem;align-items:center;justify-content:center;margin-right:.35rem;vertical-align:middle}
.manual-texto .nota{background:#eff6ff;border-left:4px solid #3b82f6;padding:.7rem 1rem;border-radius:6px;margin:1rem 0}
.manual-texto .alerta{background:#fff7ed;border-left:4px solid #f97316;padding:.7rem 1rem;border-radius:6px;margin:1rem 0}
.manual-texto table{width:100%;margin:1rem 0;border-collapse:collapse;font-size:.9rem}
.manual-texto table th,.manual-texto table td{border:1px solid #e5e7eb;padding:.4rem .6rem;vertical-align:top}
.manual-texto table th{background:#f8fafc}
.manual-texto kbd{background:#f1f5f9;color:#0f172a;border:1px solid #cbd5e1;font-size:.82rem}
/* Celular */
.main{min-width:0}
@media(max-width:767.98px){
 .cand-form{flex:1;min-width:0}.cand-form select{min-width:0;max-width:100%}
 .content{padding:.8rem}
 .page-head h1{font-size:1.15rem}
 .chat-wrap{flex-direction:column;height:auto}.chat-list{width:100%;max-height:220px;border-right:0;border-bottom:1px solid #e5e7eb}.chat-msgs{min-height:55vh}
 .msg{max-width:90%}
 .map-box{height:380px}
}
.fc a{text-decoration:none}

/* ===================== Constructor del sitio web ===================== */
.min-w-0 { min-width: 0; }
.border-dashed { border-style: dashed !important; }
.sitio-card { overflow: hidden; }
.sitio-card-top { display: flex; align-items: center; gap: .85rem; padding: 1.1rem 1.25rem; min-height: 84px; }
.sitio-card-top img { height: 48px; max-width: 90px; object-fit: contain; background: #fff; border-radius: .5rem; padding: .2rem; }
.sitio-tabs .nav-link { color: #4b5563; }
.sitio-tabs .nav-link.active { font-weight: 600; color: var(--p1); }
.accesos-sitio .list-group-item { display: flex; gap: .85rem; align-items: center; padding: .85rem 1rem; }
.accesos-sitio .list-group-item > i { font-size: 1.35rem; color: var(--p1); width: 1.5rem; text-align: center; }
.accesos-sitio small { display: block; color: #6b7280; }
.plantilla-opcion { display: block; cursor: pointer; height: 100%; }
.plantilla-opcion input { position: absolute; opacity: 0; }
.plantilla-opcion > span { display: flex; flex-direction: column; height: 100%; border: 2px solid #e5e7eb; border-radius: .75rem; overflow: hidden; background: #fff; transition: border-color .15s, box-shadow .15s; }
.plantilla-opcion img, .plantilla-opcion .po-sin { width: 100%; aspect-ratio: 16/10; object-fit: cover; object-position: top; background: #f3f4f6; display: flex; align-items: center; justify-content: center; font-size: 2rem; color: #9ca3af; }
.plantilla-opcion b { padding: .55rem .75rem 0; }
.plantilla-opcion small { padding: 0 .75rem .65rem; color: #6b7280; font-size: .78rem; line-height: 1.3; }
.plantilla-opcion input:checked + span { border-color: var(--p1); box-shadow: 0 0 0 4px rgba(13, 110, 253, .12); }
.plantilla-opcion input:checked + span b::before { content: "\F26B  "; font-family: bootstrap-icons; color: var(--p1); }
.seccion-item { display: flex; align-items: center; gap: .85rem; background: #fff; border: 1px solid #e5e7eb; border-radius: .75rem; padding: .7rem .85rem; margin-bottom: .5rem; }
.seccion-item.oculta { opacity: .55; border-style: dashed; }
.seccion-item:target { box-shadow: 0 0 0 3px rgba(13, 110, 253, .25); }
.si-icono { width: 44px; height: 44px; border-radius: .6rem; display: flex; align-items: center; justify-content: center; font-size: 1.25rem; flex: 0 0 44px; border: 1px solid #e5e7eb; }
.si-cuerpo { flex: 1; min-width: 0; }
.si-tipo { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: #6b7280; font-weight: 600; }
.si-titulo { font-weight: 600; }
.si-acciones { white-space: nowrap; }
.si-acciones form { margin: 0; }
.fondo-muestra-claro { background: #fff; color: #111827; }
.fondo-muestra-gris { background: #f3f4f6; color: #111827; }
.fondo-muestra-oscuro { background: #0b1220; color: #fff; }
.fondo-muestra-primario { background: var(--p1); color: #fff; }
.fondo-muestra-secundario { background: var(--p2); color: #111827; }
.fondos { display: flex; flex-wrap: wrap; gap: .5rem; }
.fondos label { cursor: pointer; text-align: center; width: 62px; }
.fondos input { position: absolute; opacity: 0; }
.fondos span { display: block; height: 40px; border-radius: .5rem; border: 2px solid #e5e7eb; }
.fondos small { font-size: .7rem; color: #6b7280; }
.fondos input:checked + span { border-color: var(--p1); box-shadow: 0 0 0 3px rgba(13, 110, 253, .2); }
.tipo-seccion { display: flex; gap: .85rem; align-items: flex-start; text-align: left; width: 100%; height: 100%; padding: .9rem; background: #fff; border: 1px solid #e5e7eb; border-radius: .75rem; transition: border-color .15s, background .15s; }
.tipo-seccion:hover { border-color: var(--p1); background: #f8fafc; }
.tipo-seccion > i { font-size: 1.5rem; color: var(--p1); }
.tipo-seccion small { display: block; color: #6b7280; font-size: .8rem; line-height: 1.3; margin-top: .15rem; }
.vista-previa { top: 80px; background: #e5e7eb; border-radius: .75rem; overflow: hidden; border: 1px solid #d1d5db; }
.vp-barra { display: flex; align-items: center; gap: .35rem; padding: .45rem .75rem; background: #f3f4f6; border-bottom: 1px solid #d1d5db; }
.vp-barra > span { width: 10px; height: 10px; border-radius: 50%; background: #d1d5db; }
.vp-barra small { margin-left: .5rem; color: #6b7280; }
.vp-marco { height: calc(100vh - 170px); overflow: hidden; position: relative; background: #fff; }
.vp-marco iframe { border: 0; width: 200%; height: 200%; transform: scale(.5); transform-origin: 0 0; }
.vista-previa.celular .vp-marco { display: flex; justify-content: center; background: #e5e7eb; }
.vista-previa.celular .vp-marco iframe { width: 390px; height: 100%; transform: none; background: #fff; box-shadow: 0 0 0 1px #d1d5db; }
.campo-imagen .ci-caja { display: flex; gap: .85rem; align-items: center; }
.campo-imagen .ci-vista { width: 120px; height: 80px; flex: 0 0 120px; border-radius: .5rem; border: 1px dashed #cbd5e1; background: #f8fafc repeating-conic-gradient(#f1f5f9 0 25%, #fff 0 50%) 0 0/16px 16px; display: flex; align-items: center; justify-content: center; color: #94a3b8; font-size: 1.5rem; overflow: hidden; }
.campo-imagen .ci-vista img { max-width: 100%; max-height: 100%; object-fit: contain; }
.campo-imagen.chica .ci-vista { width: 72px; height: 52px; flex-basis: 72px; }
.campo-imagen + .campo-imagen, .campo-imagen + .form-check + .campo-imagen { margin-top: 1rem; }
.ci-acciones .ci-estado { margin-top: .25rem; }
.editor-html { border: 1px solid #d1d5db; border-radius: .5rem; overflow: hidden; background: #fff; }
.eh-barra { display: flex; flex-wrap: wrap; gap: .15rem; padding: .3rem; background: #f8fafc; border-bottom: 1px solid #e5e7eb; }
.eh-barra button { border: 0; background: none; width: 34px; height: 32px; border-radius: .35rem; color: #374151; }
.eh-barra button:hover, .eh-barra button.active { background: #e5e7eb; }
.eh-area { min-height: 180px; max-height: 520px; overflow: auto; padding: .85rem 1rem; outline: none; }
.eh-area img { max-width: 100%; height: auto; }
.eh-area blockquote { border-left: 4px solid #cbd5e1; padding-left: 1rem; color: #4b5563; }
.eh-codigo { border: 0; border-radius: 0; }
.repetidor .rep-fila { border: 1px solid #e5e7eb; border-radius: .6rem; margin-bottom: .5rem; background: #fafafa; }
.rep-cab { display: flex; align-items: center; gap: .4rem; padding: .35rem .5rem .35rem .75rem; cursor: pointer; }
.rep-num { width: 24px; height: 24px; border-radius: 50%; background: var(--p1); color: #fff; font-size: .75rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 24px; }
.rep-res { flex: 1; font-weight: 600; font-size: .9rem; min-width: 0; }
.rep-cuerpo { padding: .25rem .85rem .5rem; border-top: 1px solid #e5e7eb; }
.rep-cuerpo .mb-3 { margin-bottom: .5rem !important; }
.rep-fila.cerrada .rep-cuerpo { display: none; }
.galeria-card .gc-img, .card > .gc-img { aspect-ratio: 16/10; background: #f3f4f6; display: flex; align-items: center; justify-content: center; font-size: 2.5rem; color: #9ca3af; overflow: hidden; border-radius: .5rem .5rem 0 0; }
.gc-img img { width: 100%; height: 100%; object-fit: cover; }
.foto-adm { position: relative; background: #fff; border: 1px solid #e5e7eb; border-radius: .5rem; overflow: hidden; }
.foto-adm img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.foto-adm input { border: 0; border-top: 1px solid #e5e7eb; border-radius: 0; }
.foto-quitar { position: absolute; top: .4rem; right: .4rem; padding: .1rem .4rem; }
.miniatura { width: 72px; height: 48px; object-fit: cover; border-radius: .35rem; }
