/* Zona Clientes – misma paleta y tipografías que el sitio */
:root {
  --pink:    #e8305a;
  --pink-l:  #f06080;
  --slate:   #4a5070;
  --slate-m: #7a80a0;
  --text:    #1e2235;
  --text-d:  #6b7190;
  --bg:      #f7f8fc;
}
body { font-family:'Inter',sans-serif; color:var(--text); background:var(--bg); }
a { color:var(--pink); }
a:hover { color:var(--pink-l); }

.z-tag { font-family:'Exo 2',sans-serif; font-size:.68rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--pink); margin-bottom:.5rem; }

/* Botones */
.btn-p { font-family:'Exo 2',sans-serif; font-weight:700; font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; background:var(--pink); color:#fff; border:none; border-radius:3px; padding:.7rem 1.6rem; box-shadow:0 4px 20px rgba(232,48,90,.3); transition:background .2s,box-shadow .2s,transform .15s; }
.btn-p:hover, .btn-p:focus { background:var(--pink-l); color:#fff; box-shadow:0 4px 30px rgba(232,48,90,.5); transform:translateY(-1px); }
.btn-o { font-family:'Exo 2',sans-serif; font-weight:600; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; background:#fff; color:var(--slate); border:1px solid rgba(74,80,112,.25); border-radius:3px; padding:.6rem 1.2rem; transition:border-color .2s,color .2s; }
.btn-o:hover { border-color:var(--pink); color:var(--pink); }
.btn-o.btn-del { color:#c02d2d; border-color:rgba(192,45,45,.35); }
.btn-o.btn-del:hover { background:#c02d2d; border-color:#c02d2d; color:#fff; }
.btn-sm.btn-o { padding:.35rem .7rem; font-size:.7rem; }

/* Formularios */
.form-label { font-size:.8rem; font-weight:600; color:var(--slate); margin-bottom:.3rem; }
.form-control, .form-select { border-color:rgba(74,80,112,.2); padding:.65rem .85rem; font-size:.92rem; }
.form-control:focus, .form-select:focus { border-color:var(--pink); box-shadow:0 0 0 .2rem rgba(232,48,90,.15); }
.req::after { content:' *'; color:var(--pink); }
.alert { border-radius:6px; font-size:.88rem; text-align:left; }

/* ─── Acceso ─── */
#net { position:fixed; inset:0; width:100%; height:100%; z-index:-1; display:block; }
.auth-wrap { min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:2rem 1rem; }
.auth-box { background:rgba(255,255,255,.88); backdrop-filter:blur(12px); border:1px solid rgba(74,80,112,.08); border-radius:12px; box-shadow:0 10px 40px rgba(30,34,53,.1); padding:2.6rem 2.2rem; width:100%; max-width:430px; text-align:center; }
.auth-logo { height:48px; }
.auth-h { font-family:'Exo 2',sans-serif; font-weight:800; font-size:1.7rem; margin-bottom:.5rem; }
.auth-p { color:var(--text-d); font-weight:300; font-size:.92rem; line-height:1.6; margin-bottom:1.4rem; }
.auth-box form { text-align:left; }
.auth-back { margin-top:1.3rem; font-size:.85rem; color:var(--slate); text-decoration:none; }
.auth-back:hover { color:var(--pink); }
.pass-wrap { position:relative; }
.pass-wrap .form-control { padding-right:2.6rem; }
.pass-ver { position:absolute; right:.4rem; top:50%; transform:translateY(-50%); border:0; background:none; color:var(--slate-m); padding:.3rem .5rem; }
.pass-ver:hover { color:var(--pink); }

/* Captcha (Cloudflare Turnstile): reserva el alto para que el formulario no salte al cargar */
.z-captcha { min-height:65px; }
.auth-box .z-captcha { margin-bottom:1rem; }
.z-captcha-wrap { flex:1 1 300px; max-width:420px; }

/* ─── Panel ─── */
.z-nav { background:#fff; box-shadow:0 1px 0 rgba(30,34,53,.08); padding:.7rem 0; }
.z-nav .navbar-brand img { height:38px; }
.z-brand { font-family:'Exo 2',sans-serif; font-weight:700; font-size:1rem; color:var(--text); }
.z-brand small { font-size:.62rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#fff; background:var(--pink); border-radius:2px; padding:.15rem .4rem; margin-left:.3rem; vertical-align:middle; }
.z-nav .nav-link { font-family:'Exo 2',sans-serif; font-size:.8rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--slate); }
.z-nav .nav-link:hover, .z-nav .nav-link.active { color:var(--pink); }
.z-nav .dropdown-item { font-size:.88rem; }
.z-nav .dropdown-item:active { background:var(--pink); }
.navbar-toggler { border-color:rgba(232,48,90,.35); }

.z-main { padding-top:2.2rem; padding-bottom:3rem; min-height:calc(100vh - 140px); }
.z-head { display:flex; flex-wrap:wrap; gap:1rem; align-items:flex-end; justify-content:space-between; margin-bottom:1.6rem; }
.z-h { font-family:'Exo 2',sans-serif; font-weight:800; font-size:clamp(1.4rem,3vw,2rem); margin:0; }
.z-sub { color:var(--text-d); font-size:.9rem; margin:.3rem 0 0; }

.z-card { background:#fff; border:1px solid rgba(74,80,112,.09); border-radius:10px; box-shadow:0 2px 16px rgba(30,34,53,.05); padding:1.6rem; }
.z-card + .z-card { margin-top:1.4rem; }
.z-card-t { font-family:'Exo 2',sans-serif; font-weight:700; font-size:1rem; margin-bottom:1.1rem; display:flex; align-items:center; gap:.55rem; }
.z-card-t i { color:var(--pink); }

.z-ico { width:44px; height:44px; background:rgba(232,48,90,.1); border-radius:6px; display:flex; align-items:center; justify-content:center; color:var(--pink); font-size:1.1rem; flex-shrink:0; }

/* Datos en modo lectura */
.z-dl { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem 1.6rem; margin:0; }
.z-dl dt { font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--slate-m); }
.z-dl dd { margin:.15rem 0 0; font-size:.95rem; word-break:break-word; }

/* Tarjetas de próximas funciones */
.z-soon { border:1px dashed rgba(74,80,112,.2); border-radius:10px; padding:1.3rem; height:100%; display:flex; gap:.9rem; background:rgba(255,255,255,.6); }
.z-soon h3 { font-family:'Exo 2',sans-serif; font-weight:700; font-size:.95rem; margin:0 0 .25rem; }
.z-soon p { font-size:.82rem; color:var(--text-d); margin:0; }
.z-badge-soon { font-size:.6rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--slate-m); }

/* Tabla de clientes */
.z-table { margin:0; font-size:.88rem; }
.z-table th { font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--slate-m); border-bottom-width:1px; white-space:nowrap; }
.z-table td { vertical-align:middle; }
.z-table .emp { font-weight:600; }
.z-table .muted { color:var(--text-d); font-size:.8rem; }
.estado { display:inline-block; font-size:.66rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; border-radius:20px; padding:.22rem .6rem; white-space:nowrap; }
.estado-activo    { background:rgba(25,135,84,.12); color:#146c43; }
.estado-pendiente { background:rgba(255,193,7,.18); color:#8a6500; }
.estado-inactivo  { background:rgba(74,80,112,.12); color:var(--slate); }

/* ─── Tickets ─── */
.z-count { display:inline-block; min-width:1.3rem; padding:.05rem .35rem; border-radius:10px; background:var(--pink); color:#fff; font-size:.65rem; font-weight:700; text-align:center; letter-spacing:0; vertical-align:1px; }
.estado-t-abierto    { background:rgba(232,48,90,.12); color:#b8203f; }
.estado-t-respondido { background:rgba(13,110,253,.1);  color:#0a58ca; }
.estado-t-resuelto   { background:rgba(255,193,7,.2);   color:#8a6500; }
.estado-t-cerrado    { background:rgba(74,80,112,.12);  color:var(--slate); }

.z-tabs { display:flex; gap:.4rem; border-bottom:1px solid rgba(74,80,112,.12); margin-bottom:1.2rem; flex-wrap:wrap; }
.z-tabs a { font-family:'Exo 2',sans-serif; font-size:.8rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--slate); text-decoration:none; padding:.6rem .9rem; border-bottom:2px solid transparent; margin-bottom:-1px; }
.z-tabs a:hover { color:var(--pink); }
.z-tabs a.active { color:var(--pink); border-bottom-color:var(--pink); }
.z-tabs .n { color:var(--slate-m); font-weight:600; margin-left:.25rem; }

.z-table tr.fila-link { cursor:pointer; }
.z-table tr.fila-link:hover td { background:rgba(232,48,90,.03); }
.z-table .num { font-family:'Exo 2',sans-serif; font-weight:700; color:var(--slate-m); white-space:nowrap; }
.z-table a.asunto { color:var(--text); font-weight:600; text-decoration:none; }
.z-table a.asunto:hover { color:var(--pink); }

.z-pag .page-link { color:var(--slate); border-color:rgba(74,80,112,.15); }
.z-pag .active .page-link { background:var(--pink); border-color:var(--pink); color:#fff; }

.z-drop { border:1px dashed rgba(74,80,112,.25); border-radius:8px; padding:.8rem; background:#fafbfe; transition:border-color .2s, background .2s; }
.z-drop.drag { border-color:var(--pink); background:rgba(232,48,90,.04); }
.z-drop-txt { font-size:.78rem; color:var(--text-d); margin-left:.5rem; }
.z-drop kbd { font-size:.68rem; background:var(--slate); }
.z-thumbs { display:flex; flex-wrap:wrap; gap:.6rem; }
.z-thumbs:not(:empty) { margin-top:.8rem; }
.z-thumb { position:relative; width:92px; height:92px; border-radius:6px; overflow:hidden; border:1px solid rgba(74,80,112,.15); background:#fff; }
.z-thumb img { width:100%; height:100%; object-fit:cover; }
.z-thumb button { position:absolute; top:3px; right:3px; width:22px; height:22px; border-radius:50%; border:0; background:rgba(30,34,53,.75); color:#fff; font-size:.7rem; line-height:22px; padding:0; }
.z-thumb button:hover { background:var(--pink); }

.z-banner { border-radius:8px; padding:1rem 1.2rem; display:flex; gap:.9rem; align-items:flex-start; margin-bottom:1.4rem; font-size:.9rem; }
.z-banner i { font-size:1.2rem; margin-top:.1rem; }
.z-banner-resuelto { background:rgba(255,193,7,.12); border:1px solid rgba(255,193,7,.45); }
.z-banner-resuelto i { color:#b8860b; }
.z-banner-respondido { background:rgba(13,110,253,.06); border:1px solid rgba(13,110,253,.25); }
.z-banner-respondido i { color:#0a58ca; }
.z-banner-cerrado { background:rgba(74,80,112,.06); border:1px solid rgba(74,80,112,.18); }
.z-banner-cerrado i { color:var(--slate); }

.z-hilo { display:flex; flex-direction:column; gap:1rem; }
.z-msj { background:#fff; border:1px solid rgba(74,80,112,.1); border-radius:10px; padding:1.1rem 1.3rem; max-width:88%; }
.z-msj.cliente { align-self:flex-start; }
.z-msj.soteco { align-self:flex-end; background:#f6f7fc; border-color:rgba(74,80,112,.14); }
.z-msj.solucion { border:1px solid rgba(25,135,84,.4); background:rgba(25,135,84,.04); }
.z-msj-h { display:flex; flex-wrap:wrap; gap:.3rem .7rem; align-items:center; font-size:.78rem; color:var(--slate-m); margin-bottom:.5rem; }
.z-msj-h strong { color:var(--text); font-size:.85rem; }
.z-msj-tag { font-size:.6rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; border-radius:3px; padding:.12rem .4rem; }
.z-msj-tag.soteco { background:var(--pink); color:#fff; }
.z-msj-tag.solucion { background:#198754; color:#fff; }
.z-msj-body { font-size:.92rem; line-height:1.65; white-space:pre-wrap; word-break:break-word; }
.z-msj-adj { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:.8rem; }
.z-msj-adj a { display:block; width:120px; height:90px; border-radius:6px; overflow:hidden; border:1px solid rgba(74,80,112,.15); }
.z-msj-adj img { width:100%; height:100%; object-fit:cover; transition:transform .2s; }
.z-msj-adj a:hover img { transform:scale(1.05); }
.z-sistema { align-self:center; font-size:.8rem; color:var(--slate-m); background:rgba(74,80,112,.07); border-radius:20px; padding:.35rem .9rem; text-align:center; }

.z-side dt { font-size:.66rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--slate-m); }
.z-side dd { font-size:.9rem; margin:.1rem 0 .9rem; }

@media (max-width:575px) {
  .z-msj { max-width:100%; }
  .z-drop-txt { display:block; margin:.5rem 0 0; }
}

/* ─── Tutoriales ─── */
.tut-item { display:flex; gap:.9rem; height:100%; padding:1.3rem; background:#fff; border:1px solid rgba(74,80,112,.09); border-radius:10px; box-shadow:0 2px 16px rgba(30,34,53,.05); color:var(--text); text-decoration:none; transition:border-color .2s, transform .15s; }
.tut-item:hover { border-color:var(--pink); color:var(--text); transform:translateY(-2px); }
.tut-item h3 { font-family:'Exo 2',sans-serif; font-weight:700; font-size:1rem; margin:.2rem 0 .3rem; }
.tut-item p { font-size:.85rem; color:var(--text-d); margin:0; }
.tut-migas { font-size:.82rem; margin-bottom:.8rem; }
.tut-migas a { color:var(--slate); text-decoration:none; }
.tut-migas a:hover { color:var(--pink); }

.tut { font-size:.95rem; line-height:1.65; }
.tut kbd { background:var(--slate); font-size:.8rem; }
.tut-nota { font-size:.85rem; color:var(--text-d); }
.tut-var { background:rgba(232,48,90,.14); color:#b8203f; font-weight:700; border-radius:3px; padding:0 .2rem; border-bottom:2px solid var(--pink); }

.tut-datos { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.2rem 2rem; font-size:.9rem; padding-bottom:1.2rem; margin-bottom:1.2rem; border-bottom:1px solid rgba(74,80,112,.1); }
.tut-dato-usuario { grid-column:1/-1; font-weight:500; }
.tut-dato-usuario span { font-weight:700; margin-right:.3rem; }
.tut-datos h3 { font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--slate-m); margin:0 0 .6rem; }
.tut-datos dl { margin:0 0 .6rem; }
.tut-datos dl div { display:flex; flex-wrap:wrap; gap:0 .35rem; }
.tut-datos dt { font-weight:700; }
.tut-datos dt::after { content:':'; }
.tut-datos dd { margin:0; word-break:break-word; }
.tut-pill { display:inline-block; background:#3ecf9a; color:#fff; font-size:.72rem; font-weight:700; border-radius:20px; padding:.15rem .6rem; margin-right:.2rem; }
.tut-puerto { white-space:nowrap; margin-right:1rem; }
.tut-aviso { display:flex; gap:.8rem; align-items:flex-start; background:rgba(232,48,90,.05); border:1px solid rgba(232,48,90,.3); border-radius:8px; padding:.9rem 1.1rem; font-size:.88rem; margin-bottom:1rem; }
.tut-aviso > i { color:var(--pink); font-size:1.1rem; margin-top:.15rem; }
.tut-tuyo { display:flex; gap:.8rem; align-items:flex-start; background:rgba(25,135,84,.05); border:1px solid rgba(25,135,84,.3); border-radius:8px; padding:.9rem 1.1rem; font-size:.9rem; margin-bottom:1rem; }
.tut-tuyo > i { color:#198754; font-size:1.1rem; margin-top:.2rem; }

.tut-pasos { list-style:none; counter-reset:paso; padding:0; margin:1.4rem 0 0; }
.tut-pasos > li { counter-increment:paso; position:relative; padding-left:4.4rem; margin-bottom:1.4rem; }
.tut-pasos > li + li { margin-top:0; }
.tut-pasos > li::before { content:counter(paso); position:absolute; left:1.5rem; top:1.45rem; width:2.2rem; height:2.2rem; border-radius:50%; background:var(--pink); color:#fff; font-family:'Exo 2',sans-serif; font-weight:800; display:flex; align-items:center; justify-content:center; }
.tut-pasos h2 { font-family:'Exo 2',sans-serif; font-weight:700; font-size:1.15rem; margin:.3rem 0 .6rem; }
.tut-campos { list-style:none; padding:0; margin:0 0 1rem; display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:.4rem 1.2rem; font-size:.9rem; }
.tut-campos li { background:var(--bg); border-radius:6px; padding:.45rem .7rem; }
.tut-campos li > span:first-child { display:block; font-size:.66rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--slate-m); }
.tut-shot { display:block; max-width:760px; margin-top:.4rem; border-radius:8px; overflow:hidden; border:1px solid rgba(74,80,112,.15); box-shadow:0 6px 24px rgba(30,34,53,.1); }
.tut-shot img { display:block; width:100%; height:auto; }
.tut-problemas dt { font-weight:700; margin-top:.8rem; }
.tut-problemas dt:first-child { margin-top:0; }
.tut-problemas dd { margin:.2rem 0 0; color:var(--text-d); font-size:.9rem; }

@media (max-width:575px) {
  .tut-pasos > li { padding-left:1.2rem; padding-top:3.6rem; }
  .tut-pasos > li::before { left:1.2rem; top:1.1rem; }
}

/* Opciones grandes (ticket creado por el admin) */
.tk-opciones { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:.7rem; }
.tk-opcion { display:flex; gap:.6rem; align-items:flex-start; border:1px solid rgba(74,80,112,.18); border-radius:8px; padding:.8rem .9rem; cursor:pointer; transition:border-color .2s, background .2s; }
.tk-opcion:hover { border-color:var(--pink); }
.tk-opcion:has(input:checked) { border-color:var(--pink); background:rgba(232,48,90,.04); }
.tk-opcion input { margin-top:.25rem; accent-color:var(--pink); }
.tk-opcion strong { display:block; font-size:.9rem; }
.tk-opcion small { display:block; color:var(--text-d); font-size:.78rem; margin-top:.15rem; }

/* ─── Hosting ─── */
.z-sec { display:inline-flex; align-items:center; gap:.15rem; max-width:100%; vertical-align:middle; }
.z-sec code { font-size:.88rem; color:var(--text); background:var(--bg); border:1px solid rgba(74,80,112,.12); border-radius:4px; padding:.12rem .45rem; word-break:break-all; }
.z-sec:not(.z-sec-vis) code { white-space:nowrap; word-break:normal; }
.z-sec-btn { border:0; background:none; color:var(--slate-m); padding:.2rem .35rem; border-radius:4px; font-size:.85rem; line-height:1; }
.z-sec-btn:hover { color:var(--pink); background:rgba(232,48,90,.07); }
.z-sec-btn.ok { color:#198754; }
.hst-head { display:flex; gap:.9rem; align-items:center; margin-bottom:1.2rem; }
.hst-head h2 { font-family:'Exo 2',sans-serif; font-weight:800; font-size:1.3rem; margin:0 0 .15rem; word-break:break-word; }
.hst-notas { display:flex; gap:.7rem; background:rgba(13,110,253,.05); border:1px solid rgba(13,110,253,.2); border-radius:8px; padding:.8rem 1rem; font-size:.88rem; margin-bottom:1.3rem; }
.hst-notas i { color:#0a58ca; margin-top:.2rem; }
.hst-t { font-family:'Exo 2',sans-serif; font-weight:700; font-size:.95rem; display:flex; align-items:center; gap:.5rem; margin:0 0 .8rem; }
.hst-t i { color:var(--pink); }
.hst-dl { margin:0 0 .5rem; font-size:.9rem; }
.hst-dl > div { display:flex; flex-wrap:wrap; align-items:center; gap:.2rem .5rem; padding:.3rem 0; border-bottom:1px dashed rgba(74,80,112,.12); }
.hst-dl dt { min-width:6.5rem; font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--slate-m); }
.hst-dl dd { margin:0; min-width:0; }
.hst-mail { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem 1.6rem; font-size:.9rem; }
.hst-mail h4 { font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--slate); margin:0 0 .3rem; }
.hst-tabla td { vertical-align:middle; }
.z-subform { background:var(--bg); border-radius:8px; padding:1.1rem 1.2rem; }
.z-subform-t { font-family:'Exo 2',sans-serif; font-weight:700; font-size:.88rem; margin-bottom:.8rem; }

.z-foot { padding:1.4rem 0; font-size:.75rem; color:var(--slate-m); border-top:1px solid rgba(74,80,112,.08); background:#fff; text-align:center; }

@media (max-width:575px) {
  .auth-box { padding:2rem 1.3rem; }
  .z-card { padding:1.2rem; }
}
