/* ===== Soporte: portal del cliente y mesa de Agronomer (js/63-soporte.js) =====
   Todo va con prefijo sop- para no pisar a nadie; los colores salen de los tokens de styles.css. */

.sop-head{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.sop-head .sp{margin-left:auto}
.sop-head h2{font-family:var(--fd);font-weight:600;font-size:19px;letter-spacing:-.01em}
.sop-head p{margin-top:3px;color:var(--muted);font-size:13px}
.sop-period{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--r-sm);overflow:hidden;background:var(--surface)}
.sop-period button{padding:7px 12px;font-size:12.5px;font-weight:500;color:var(--muted)}
.sop-period button[aria-pressed="true"]{background:var(--navy);color:#fff}

/* Franja de indicadores: una sola banda, no tarjetas sueltas */
.sop-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);margin-bottom:18px;overflow:hidden}
.sop-kpi{padding:15px 18px;border-right:1px solid var(--line)}
.sop-kpi:last-child{border-right:0}
.sop-kpi .v{font-family:var(--fd);font-weight:600;font-size:26px;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.sop-kpi .l{font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-top:6px}
.sop-kpi .d{font-size:11.5px;color:var(--muted);margin-top:4px}
.sop-kpi.warn .v{color:var(--red)}
.sop-kpi.ok .v{color:var(--green)}

.sop-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.sop-grid>.card{min-width:0}
.sop-c5{grid-column:span 5}.sop-c6{grid-column:span 6}.sop-c7{grid-column:span 7}.sop-c12{grid-column:span 12}
@media (max-width:1100px){.sop-c5,.sop-c6,.sop-c7{grid-column:span 12}}

/* Barras horizontales */
.sop-hb{display:grid;grid-template-columns:minmax(90px,170px) 1fr auto;gap:9px 12px;align-items:center;font-size:13px}
.sop-hb .track{height:10px;background:var(--surface-2);border:1px solid var(--line);border-radius:5px;overflow:hidden;display:flex}
.sop-hb .fill{height:100%;background:var(--green)}
.sop-hb .fill.b{background:var(--navy)}
.sop-hb .fill.y{background:var(--gold-br)}
.sop-hb .fill.r{background:var(--red)}
.sop-hb .num{font-variant-numeric:tabular-nums;color:var(--muted);text-align:right;min-width:70px;font-size:12.5px}
.sop-legend{display:flex;gap:14px;font-size:12px;color:var(--muted);margin-top:12px;flex-wrap:wrap}
.sop-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.sop-chart{width:100%;height:auto;display:block}
.sop-chart text{fill:var(--muted-2);font:11px var(--fb)}
.sop-empty{padding:34px;text-align:center;color:var(--muted-2)}

/* Tabla de tickets */
.sop-id{font-family:var(--fm);font-size:12px;color:var(--muted);white-space:nowrap;letter-spacing:-.03em}
.sop-subj{font-weight:600;display:block;max-width:380px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sop-small{color:var(--muted);font-size:12px}
.sop-st{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:99px;font-size:11.5px;font-weight:600;white-space:nowrap;background:var(--surface-2);border:1px solid var(--line);color:var(--ink)}
.sop-st::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--muted-2)}
.sop-st.nuevo::before{background:var(--gold-br)}.sop-st.asignado::before{background:var(--blue)}
.sop-st.en_progreso::before{background:var(--green)}.sop-st.esperando::before{background:var(--purple)}
.sop-st.resuelto::before{background:var(--navy)}.sop-st.cerrado::before{background:var(--line-2)}

/* El reloj de plazo: la pieza que distingue a la mesa */
.sop-sla{min-width:160px}
.sop-sla .bar{height:6px;background:var(--surface-2);border:1px solid var(--line);border-radius:3px;position:relative;overflow:hidden}
.sop-sla .bar i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--green)}
.sop-sla.risk .bar i{background:var(--gold-br)}
.sop-sla.late .bar i{background:var(--red)}
.sop-sla.paused .bar i{background:repeating-linear-gradient(90deg,var(--muted-2) 0 4px,transparent 4px 7px)}
.sop-sla .t{font-size:11.5px;color:var(--muted);margin-top:4px;display:flex;justify-content:space-between;gap:8px}
.sop-sla .t b{font-weight:600;color:var(--ink)}
.sop-sla.late .t b{color:var(--red)}

/* Filtros */
.sop-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
.sop-filters .inp{width:auto;min-width:0}
.sop-chip{border:1px solid var(--line-2);background:var(--surface);border-radius:99px;padding:6px 13px;font-size:12.5px;font-weight:500}
.sop-chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.sop-chip .n{opacity:.7;margin-left:5px}

/* Formulario de ticket nuevo */
.sop-form{max-width:780px}
.sop-row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:700px){.sop-row2{grid-template-columns:1fr}}
.sop-prio{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media (max-width:700px){.sop-prio{grid-template-columns:1fr 1fr}}
.sop-prio label{border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;cursor:pointer;font-size:12px;color:var(--muted);font-weight:400;margin:0;position:relative}
.sop-prio label strong{display:block;color:var(--ink);font-size:13.5px;margin-bottom:2px}
.sop-prio input{position:absolute;opacity:0;pointer-events:none}
.sop-prio label:has(input:checked){border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);background:var(--green-soft)}
.sop-prio label:has(input:focus-visible){outline:2.5px solid var(--green);outline-offset:2px}
.sop-hint{color:var(--muted);font-size:12px;margin-top:5px}
.sop-err{color:var(--red-ink);font-size:12.5px;margin-bottom:10px}

/* Ficha lateral */
.sop-scrim{position:fixed;inset:0;background:rgba(15,27,48,.45);z-index:120}
.sop-drawer{position:fixed;top:0;right:0;bottom:0;width:min(700px,100%);background:var(--canvas);z-index:121;display:flex;flex-direction:column;box-shadow:-12px 0 40px rgba(12,42,67,.25);animation:sopSlide .18s ease-out}
@keyframes sopSlide{from{transform:translateX(24px);opacity:.4}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.sop-drawer{animation:none}}
.sop-drawer.quieta{animation:none}   /* un redibujo no vuelve a entrar deslizándose */
.sop-dh{padding:16px 22px;background:var(--surface);border-bottom:1px solid var(--line)}
.sop-dh .x{float:right;font-size:24px;line-height:1;color:var(--muted);padding:0 4px}
.sop-dh h2{font-family:var(--fd);font-weight:600;font-size:19px;margin:8px 0 4px;letter-spacing:-.01em}
.sop-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.sop-bar .inp{width:auto}
.sop-db{flex:1;overflow-y:auto;padding:18px 22px}
.sop-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 16px;font-size:13px;margin-bottom:16px}
@media (max-width:560px){.sop-meta{grid-template-columns:1fr 1fr}}
.sop-meta dt{color:var(--muted);font-size:11.5px}
.sop-meta dd{margin:0;font-weight:600}
.sop-clock{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:10px;background:var(--surface);margin-bottom:16px}
.sop-clock>div{padding:12px 14px;border-right:1px solid var(--line)}
.sop-clock>div:last-child{border-right:0}
.sop-clock .v{font-family:var(--fd);font-weight:600;font-size:18px}
.sop-clock .l{font-size:11.5px;color:var(--muted)}
.sop-clock .late{color:var(--red)}
.sop-clock .okc{color:var(--green)}
.sop-files{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.sop-file{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);background:var(--surface);border-radius:8px;padding:5px 10px;font-size:12.5px}
.sop-file svg{width:14px;height:14px;color:var(--muted)}
.sop-thread{display:flex;flex-direction:column;gap:12px}
.sop-msg{max-width:88%;padding:10px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}
.sop-msg.ag{align-self:flex-end;background:var(--teal-soft);border-color:transparent}
.sop-msg.note{align-self:flex-end;background:var(--gold-soft);border:1px dashed var(--gold-br)}
.sop-msg .who{font-size:12px;color:var(--muted);margin-bottom:3px}
.sop-msg .who b{color:var(--ink);font-weight:600}
.sop-msg p{white-space:pre-wrap;word-break:break-word}
.sop-sys{align-self:center;font-size:12px;color:var(--muted);text-align:center;max-width:90%}
.sop-df{padding:14px 22px;background:var(--surface);border-top:1px solid var(--line)}
.sop-df textarea{min-height:72px;resize:vertical}
.sop-df textarea.sop-nota{background:var(--gold-soft);border-color:var(--gold-br)}
.sop-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.sop-actions .sp{margin-left:auto}
.sop-check{display:inline-flex;gap:6px;align-items:center;font-size:12.5px;cursor:pointer}
.sop-stars{display:inline-flex;gap:2px}
.sop-stars button{font-size:22px;color:var(--line-2);padding:0 2px;line-height:1}
.sop-stars button.on{color:var(--gold-br)}

.sop-switch{position:relative;display:inline-block;width:38px;height:22px;vertical-align:middle}
.sop-switch input{opacity:0;width:0;height:0}
.sop-switch span{position:absolute;inset:0;background:var(--line-2);border-radius:22px;cursor:pointer;transition:.15s}
.sop-switch span::before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.15s}
.sop-switch input:checked+span{background:var(--green)}
.sop-switch input:checked+span::before{transform:translateX(16px)}
.sop-switch input:focus-visible+span{outline:2.5px solid var(--green);outline-offset:2px}
.sop-callout{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:11px 14px;font-size:12.5px;color:var(--muted)}
/* El aviso no se come clics, y con la ficha abierta sube: abajo tapaba «Nota interna» y «Enviar». */
.sop-toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px;z-index:200;font-size:13px;box-shadow:var(--sh);pointer-events:none;max-width:calc(100% - 32px)}
body.sop-con-ficha .sop-toast{bottom:auto;top:18px}
@media (min-width:1000px){body.sop-con-ficha .sop-toast{top:auto;bottom:22px;left:calc((100% - 700px) / 2)}}

.nav-solo .sop-n,.nav-sub .sop-n{margin-left:auto;background:var(--gold-br);color:var(--navy);border-radius:99px;padding:0 7px;font-size:11px;font-weight:700;line-height:18px}

/* La campana de la cabecera y su panel de avisos */
#topCampana .sop-cn{position:absolute;top:2px;right:0;min-width:17px;height:17px;padding:0 4px;border-radius:99px;background:var(--red);color:#fff;font-size:10.5px;font-weight:700;line-height:17px;text-align:center;border:2px solid #fff;box-sizing:content-box}
#topCampana:has(.sop-cn) .d{display:none}
.sop-avisos{position:fixed;top:58px;right:16px;width:min(380px,calc(100% - 32px));max-height:min(520px,calc(100vh - 80px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 20px 50px -18px rgba(12,42,67,.35);z-index:130;overflow:hidden}
.sop-av-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);font-family:var(--fd)}
.sop-av-h button,.sop-av-f button{font-size:12.5px;color:var(--green-d);font-weight:600}
.sop-av-b{overflow-y:auto;flex:1}
.sop-av{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:11px 14px 11px 17px;border-bottom:1px solid var(--line);position:relative}
.sop-av::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:2px;background:var(--green)}
.sop-av.antecedentes::before{background:var(--purple)}.sop-av.resuelto::before{background:var(--navy)}
.sop-av:hover{background:var(--surface-2)}
.sop-av .t{font-weight:600;font-size:13px}
.sop-av .s{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sop-av .x{font-size:12px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sop-av .w{font-size:11.5px;color:var(--muted-2)}
.sop-av-f{padding:10px 14px;text-align:center}

@media (max-width:760px){.sop-hide-m{display:none}}
/* Avisos de mantención de vehículos (js/69-*): rojo lo vencido, ámbar lo que entró en su ventana de aviso. */
.sop-av.mnt-vencida::before{background:var(--red)}.sop-av.mnt-porvencer::before{background:var(--amber)}

/* El diagnóstico que propone Claude (solo en la mesa): violeta, para no confundirlo con una
   respuesta al cliente (verde agua) ni con una nota interna (dorado). */
.sop-ia{border:1px solid var(--purple-soft);border-left:3px solid var(--purple);background:var(--surface);border-radius:10px;padding:12px 14px;margin-bottom:16px;font-size:13px}
.sop-ia.confirmado{border-left-color:var(--green)}
.sop-ia.descartado{border-left-color:var(--muted-2)}
.sop-ia.apagada{border-left-color:var(--line-2)}
.sop-ia-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.sop-ia-h b{font-family:var(--fd);font-weight:600;font-size:14px}
.sop-ia-h .sp{margin-left:auto}
.sop-ia-logo{color:var(--purple);font-size:14px}
.sop-ia .b-purple{background:var(--purple-soft);color:var(--purple-ink)}
.sop-ia-res{font-weight:600;margin:4px 0 8px}
.sop-ia-b{margin-top:10px}
.sop-ia-b h4{font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);font-weight:600;margin:0 0 3px}
.sop-ia-b p{white-space:pre-wrap;word-break:break-word}
.sop-ia-b ol,.sop-ia-b ul{margin:0;padding-left:20px}
.sop-ia-b li{margin:2px 0}
.sop-ia-link{color:var(--green-d);font-weight:600;font-size:12.5px;text-decoration:underline}
.sop-ia-borr,.sop-ia-det{margin-top:10px}
.sop-ia-borr summary,.sop-ia-det summary{cursor:pointer;font-weight:600;font-size:12.5px;color:var(--purple-ink)}
.sop-ia-borr p{white-space:pre-wrap;word-break:break-word;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin:8px 0}
.sop-ia-aviso{background:var(--gold-soft);color:var(--gold-ink);border-radius:8px;padding:7px 10px;font-size:12.5px;margin:4px 0 8px}
.sop-ia-rev{margin-top:10px;padding:8px 10px;border-radius:8px;font-size:12.5px;white-space:pre-wrap;word-break:break-word}
.sop-ia-rev.confirmado{background:var(--green-soft)}
.sop-ia-rev.descartado{background:var(--surface-2)}
.sop-ia-form{margin-top:10px}
.sop-ia-form label{display:block;font-size:12px;font-weight:600;margin-bottom:4px}
.sop-ia-pie{margin-top:10px;font-size:11.5px;color:var(--muted-2)}
.sop-ia-trabaja{display:flex;align-items:center;gap:8px;color:var(--muted)}
.sop-ia-punto{width:9px;height:9px;border-radius:50%;background:var(--purple);animation:sopLatido 1.2s ease-in-out infinite}
@keyframes sopLatido{0%,100%{opacity:.3}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.sop-ia-punto{animation:none}}
/* Resueltos con Claude y a mano: la proporción grande arriba, el detalle en la tabla */
.sop-via-res{display:flex;gap:28px;flex-wrap:wrap}
.sop-via-res b{font-family:var(--fd);font-size:26px;font-weight:600;letter-spacing:-.02em;margin-right:8px}
.sop-via-res span{color:var(--muted);font-size:12.5px}
.sop-via-res div:first-child b{color:var(--purple)}
.sop-via{font-size:11.5px;color:var(--purple-ink);font-weight:600;margin-top:2px}

/* El despliegue a producción en la ficha: azul, para no confundirlo con Agronomer IA (violeta) */
.sop-dep{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:10px 14px;margin-bottom:16px;font-size:13px}
.sop-dep.on{border-left:3px solid var(--blue)}
.sop-dep .sop-ia-h{margin-bottom:8px}
.sop-dep p{margin:6px 0}
.sop-dep-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sop-dep-form label{font-size:12px;font-weight:600}
.sop-dep-form .inp{width:auto}
.sop-dep-form .sp{margin-left:auto}
.sop-dep-hist{margin:8px 0 0;padding-left:18px;font-size:12.5px;color:var(--muted)}
.sop-dep-hist li{margin:3px 0}
.sop-dep-m{font-size:11.5px;color:var(--blue-ink);font-weight:600;margin-top:2px}
.sop-dep-m.fallido{color:var(--red-ink)}.sop-dep-m.exitoso{color:var(--green-d)}
