/* ServioApp · ACCIONA Ford Hermosillo — V30.67
   Facility Planner, Seguridad DC-3, flujo de mantenimiento y alta con teléfono. */
:root{
  --fp-navy:var(--servio-navy,#172a46);
  --fp-red:#d40000;
  --fp-line:var(--linea,#e5e7eb);
  --fp-soft:#f6f7f9;
  --fp-muted:var(--gris,#6b7280);
  --fp-card:var(--blanco,#fff);
  --fp-ok:var(--verde-texto,#0b7a4f);
  --fp-warn:#b45309;
  --fp-bad:var(--rojo,#dc2626);
  --fp-c:#d40000;
  --fp-p:#2563eb;
  --fp-critica:#b91c1c;
  --fp-alta:#ea580c;
  --fp-media:#ca8a04;
  --fp-baja:#64748b;
}
.ford-oculto{display:none!important}

/* ---------- Encabezados ---------- */
.fp-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:2px 0 14px}
.fp-kicker{font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--fp-red)}
.fp-title{margin:2px 0 4px;font-size:22px;line-height:1.15;color:var(--fp-navy);font-weight:900}
.fp-sub{font-size:12.5px;color:var(--fp-muted);max-width:640px;line-height:1.45}
.fp-weeknav{display:flex;align-items:center;gap:6px}
.fp-weeknav strong{min-width:170px;text-align:center;font-size:13.5px;color:var(--fp-navy)}

/* ---------- KPIs ---------- */
.fp-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:12px}
.fp-kpi{display:block;box-sizing:border-box;width:100%;min-width:0;background:var(--fp-card);border:1px solid var(--fp-line);border-radius:12px;padding:11px 13px;text-align:left;cursor:default;font:inherit;color:inherit}
button.fp-kpi{cursor:pointer}
button.fp-kpi:hover{border-color:var(--fp-navy)}
.fp-kpi.active{outline:2px solid var(--fp-navy);outline-offset:-2px}
.fp-kpi-label{font-size:11px;color:var(--fp-muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.fp-kpi-num{font-size:24px;font-weight:900;color:var(--fp-navy);margin-top:2px;font-variant-numeric:tabular-nums}
.fp-kpi-num small{font-size:12px;color:var(--fp-muted);font-weight:700}
.fp-kpi.bad .fp-kpi-num{color:var(--fp-bad)}
.fp-kpi.warn .fp-kpi-num{color:var(--fp-warn)}
.fp-kpi.ok .fp-kpi-num{color:var(--fp-ok)}

/* ---------- Barra de filtros ---------- */
.fp-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.fp-toolbar input[type=search]{flex:1 1 260px;width:auto!important;min-width:200px}
.fp-toolbar select{flex:0 0 200px;width:200px!important}
.fp-toolbar .btn-secondary{flex:none}
.fp-seg{display:inline-flex;border:1px solid var(--fp-line);border-radius:10px;overflow:hidden;background:var(--fp-card)}
.fp-seg button{width:auto;min-width:0;display:inline-block;border-radius:0;border:0;background:transparent;padding:7px 12px;font:inherit;font-size:12.5px;font-weight:700;color:var(--fp-muted);cursor:pointer;white-space:nowrap}
.fp-seg button+button{border-left:1px solid var(--fp-line)}
.fp-seg button.active{background:var(--fp-navy);color:#fff}

/* ---------- Layout planner ---------- */
.fp-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:12px;align-items:start}
.fp-backlog{background:var(--fp-card);border:1px solid var(--fp-line);border-radius:12px;padding:12px;position:sticky;top:12px;max-height:calc(100vh - 120px);display:flex;flex-direction:column}
.fp-backlog-head{display:flex;justify-content:space-between;align-items:center}
.fp-backlog-head h3{margin:0;font-size:14px;color:var(--fp-navy)}
.fp-count{background:var(--fp-red);color:#fff;border-radius:999px;font-size:11.5px;font-weight:800;padding:2px 9px;font-variant-numeric:tabular-nums}
.fp-backlog-note{font-size:11px;color:var(--fp-muted);margin:3px 0 10px}
.fp-backlog-list{overflow-y:auto;display:flex;flex-direction:column;gap:7px;padding-right:2px;min-height:60px}
.fp-group-title{font-size:10.5px;font-weight:800;color:var(--fp-muted);text-transform:uppercase;letter-spacing:.06em;margin:6px 0 0}
.fp-more{display:block;width:100%;border:1px dashed var(--fp-line);background:transparent;border-radius:8px;padding:7px;font:inherit;font-size:12px;color:var(--fp-muted);cursor:pointer}

.fp-board-wrap{min-width:0}
.fp-board{background:var(--fp-card);border:1px solid var(--fp-line);border-radius:12px;overflow:auto;max-height:calc(100vh - 150px)}
.fp-grid{display:grid;grid-template-columns:150px repeat(7,minmax(104px,1fr));min-width:880px}
.fp-cell{min-width:0;border-right:1px solid var(--fp-line);border-bottom:1px solid var(--fp-line);padding:5px;min-height:64px;display:flex;flex-direction:column;gap:5px}
.fp-cell:last-child{border-right:0}
.fp-hcell{position:sticky;top:0;z-index:3;background:var(--fp-soft);min-height:0;padding:8px;font-size:12px;font-weight:800;color:var(--fp-navy)}
.fp-hcell small{display:block;font-weight:600;color:var(--fp-muted);font-size:11px}
.fp-hcell.hoy{background:#fff1f1;color:var(--fp-red)}
.fp-rcell{position:sticky;left:0;z-index:2;background:var(--fp-card);font-size:12.5px;font-weight:800;color:var(--fp-navy);justify-content:flex-start}
.fp-rcell small{font-weight:600;color:var(--fp-muted);font-size:11px}
.fp-corner{left:0;z-index:4}
.fp-cell.hoy{background:#fffafa}
.fp-cell.sobrecarga{background:#fff7ed}
.fp-cell.drop{background:#eef4ff;outline:2px dashed var(--fp-p);outline-offset:-3px}
.fp-load{font-size:10.5px;font-weight:700;color:var(--fp-muted);margin-top:auto}
.fp-sin-tec .fp-rcell{color:var(--fp-red)}

/* ---------- Tarjetas ---------- */
.fp-card{display:block!important;height:auto!important;min-height:0!important;white-space:normal;flex:none;min-width:0!important;box-sizing:border-box;position:relative;background:var(--fp-card);border:1px solid var(--fp-line);border-left:4px solid var(--fp-baja);border-radius:8px;padding:6px 7px 6px 8px;font-size:11.5px;line-height:1.3;cursor:grab;text-align:left;width:100%;font-family:inherit;color:var(--fp-navy);box-shadow:0 1px 0 rgba(15,23,42,.04)}
.fp-card:hover{box-shadow:0 3px 10px rgba(15,23,42,.10)}
.fp-card:focus-visible{outline:2px solid var(--fp-p);outline-offset:1px}
.fp-card.dragging{opacity:.45}
.fp-card.critica{border-left-color:var(--fp-critica)}
.fp-card.alta{border-left-color:var(--fp-alta)}
.fp-card.media{border-left-color:var(--fp-media)}
.fp-card.cerrado{opacity:.55}
.fp-card.cerrado .fp-card-t{text-decoration:line-through}
.fp-card-top{display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;color:var(--fp-muted)}
.fp-tipo{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;color:#fff;font-size:9.5px;font-weight:900;flex:none}
.fp-tipo.C{background:var(--fp-c)}
.fp-tipo.P{background:var(--fp-p)}
.fp-card-t{font-weight:700;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.fp-card-m{font-size:10.5px;color:var(--fp-muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fp-est{margin-left:auto;font-size:9.5px;font-weight:800;padding:1px 6px;border-radius:999px;background:var(--fp-soft);color:var(--fp-muted);white-space:nowrap}
.fp-est.en_proceso{background:#e0ecff;color:#1d4ed8}
.fp-est.programado,.fp-est.autorizado{background:#eef2ff;color:#4338ca}
.fp-est.material_pendiente{background:#fff7ed;color:#c2410c}
.fp-est.atrasado{background:#fee2e2;color:#b91c1c}
.fp-est.cerrado{background:#dcfce7;color:#15803d}

.fp-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--fp-muted);padding:8px 2px;align-items:center}
.fp-legend span{display:inline-flex;align-items:center;gap:5px}
.fp-dot{width:10px;height:10px;border-radius:3px;display:inline-block}
.fp-dot.fp-c{background:var(--fp-c)}.fp-dot.fp-p{background:var(--fp-p)}
.fp-bar{width:4px;height:12px;border-radius:2px;display:inline-block}
.fp-bar.fp-critica{background:var(--fp-critica)}.fp-bar.fp-alta{background:var(--fp-alta)}
.fp-legend-tip{margin-left:auto}

/* ---------- Modales ---------- */
.fp-modal-top{display:flex;gap:6px;flex-wrap:wrap}
.fp-chip{font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--fp-soft);color:var(--fp-navy)}
.fp-chip.C{background:#fee2e2;color:#991b1b}.fp-chip.P{background:#dbeafe;color:#1e40af}
.fp-det-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;font-size:12px;color:var(--fp-muted);margin:8px 0 14px;padding:10px;background:var(--fp-soft);border-radius:10px}
.fp-det-meta b{color:var(--fp-navy);font-weight:700}
.fp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.fp-modal-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.fp-quick{display:flex;gap:5px;margin-top:5px;flex-wrap:wrap}
.fp-quick button{border:1px solid var(--fp-line);background:var(--fp-card);border-radius:7px;font:inherit;font-size:11px;padding:3px 8px;cursor:pointer;color:var(--fp-navy)}
.fp-check{display:flex;gap:8px;align-items:center;font-size:12.5px;margin:4px 0 10px;cursor:pointer}
.fp-check input{width:16px;height:16px;margin:0}
.fp-cred{border:1px solid #bbf7d0;background:#f0fdf4;border-radius:10px;padding:12px;margin:6px 0 4px;font-size:12.5px}
.fp-cred-row{display:flex;justify-content:space-between;gap:8px;padding:3px 0}
.fp-cred-row code{font-size:14px;font-weight:800;color:var(--fp-navy);letter-spacing:.03em}
.fp-cred-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}

/* ---------- Flujo de mantenimiento (Programación ↔ Mantenimiento) ---------- */
.ff-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px}
.ff-flow:empty{display:none}
.ff-step{background:var(--fp-card);border:1px solid var(--fp-line);border-radius:12px;padding:11px 12px;position:relative}
.ff-step+.ff-step::before{content:"→";position:absolute;left:-11px;top:50%;transform:translate(-50%,-50%);color:var(--fp-muted);font-weight:900}
.ff-step-h{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--fp-muted);display:flex;gap:6px;align-items:center}
.ff-step-h b{display:inline-flex;width:18px;height:18px;border-radius:50%;background:var(--fp-navy);color:#fff;align-items:center;justify-content:center;font-size:10.5px}
.ff-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.ff-chip{min-height:0!important;height:auto!important;align-items:center;line-height:1.3;display:inline-flex;gap:4px;width:auto;min-width:0;border:1px solid var(--fp-line);background:var(--fp-soft);border-radius:999px;padding:4px 10px;font:inherit;font-size:12px;color:var(--fp-navy);cursor:pointer;font-variant-numeric:tabular-nums}
.ff-chip strong{font-weight:900}
.ff-chip.bad{background:#fee2e2;border-color:#fecaca;color:#991b1b}
.ff-chip.warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.ff-chip.ok{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.ff-chip:hover{border-color:var(--fp-navy)}
.ff-collapse{background:var(--fp-card);border:1px solid var(--fp-line);border-left:3px solid var(--fp-red);border-radius:12px;margin-bottom:14px}
.ff-collapse>summary{cursor:pointer;padding:12px 14px;font-weight:800;color:var(--fp-navy);font-size:13.5px;list-style:none;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ff-collapse>summary::-webkit-details-marker{display:none}
.ff-collapse>summary::before{content:"▸";transition:transform .15s}
.ff-collapse[open]>summary::before{transform:rotate(90deg)}
.ff-collapse>summary span{font-size:11.5px;font-weight:600;color:var(--fp-muted)}
.ff-collapse>.card{margin:0 0 0!important;border:0!important;box-shadow:none!important;border-top:1px solid var(--fp-line)!important;border-radius:0 0 12px 12px}

/* ---------- DC-3 ---------- */
.dc3-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.dc3-card{background:var(--fp-card);border:1px solid var(--fp-line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px}
.dc3-card.vencido{border-top:3px solid var(--fp-bad)}
.dc3-card.por_vencer{border-top:3px solid var(--fp-warn)}
.dc3-card.ok{border-top:3px solid var(--fp-ok)}
.dc3-card.sin{border-top:3px solid #94a3b8}
.dc3-card-h{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.dc3-name{font-weight:800;color:var(--fp-navy);font-size:13.5px}
.dc3-sub{font-size:11.5px;color:var(--fp-muted)}
.dc3-docs{display:flex;flex-direction:column;gap:5px}
.dc3-doc{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px;padding:6px 8px;border-radius:8px;background:var(--fp-soft)}
.dc3-doc .t{font-weight:700;color:var(--fp-navy)}
.dc3-doc .v{font-size:11px;color:var(--fp-muted);white-space:nowrap}
.dc3-doc.vencido{background:#fef2f2}.dc3-doc.por_vencer{background:#fffbeb}
.dc3-doc a,.dc3-doc button.link{font-size:11px;font-weight:700;color:var(--fp-p);background:none;border:0;padding:0;cursor:pointer}
.dc3-badge{font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:999px;white-space:nowrap}
.dc3-badge.vencido{background:#fee2e2;color:#991b1b}.dc3-badge.por_vencer{background:#fef3c7;color:#92400e}
.dc3-badge.ok{background:#dcfce7;color:#166534}.dc3-badge.sin{background:#e2e8f0;color:#334155}

/* ---------- Técnico: mis correctivos ---------- */
.fm-list{display:flex;flex-direction:column;gap:8px}
.fm-item{border:1px solid var(--fp-line);border-left:4px solid var(--fp-baja);border-radius:10px;padding:10px 12px}
.fm-item.critica{border-left-color:var(--fp-critica)}.fm-item.alta{border-left-color:var(--fp-alta)}.fm-item.media{border-left-color:var(--fp-media)}
.fm-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.fm-t{font-weight:800;color:var(--fp-navy);font-size:13px}
.fm-m{font-size:11.5px;color:var(--fp-muted);margin-top:3px}
.fm-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .fp-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fp-layout{grid-template-columns:1fr}
  .fp-backlog{position:static;max-height:none}
  .fp-backlog-list{max-height:320px}
}
@media (max-width:720px){
  #view-planner,#view-dc3{padding:0 12px}
  .fp-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ff-flow{grid-template-columns:1fr}
  .ff-step+.ff-step::before{content:none}
  .fp-form-grid,.fp-det-meta{grid-template-columns:1fr}
  .fp-weeknav{width:100%}
  .fp-weeknav strong{flex:1;min-width:0}
  .fp-legend-tip{margin-left:0}
  .fp-seg{width:100%;overflow-x:auto}
  .fp-grid{grid-template-columns:120px repeat(7,minmax(118px,1fr));min-width:946px}
}

/* Tarjeta compacta (dentro del tablero) */
.fp-folio{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.fp-compact{padding:5px 6px 5px 7px;font-size:11px}
.fp-compact .fp-card-t{font-size:11px;font-weight:600;margin-top:2px}
.fp-mark{margin-left:auto;flex:none;width:16px;height:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:900;background:var(--fp-soft);color:var(--fp-muted)}
.fp-mark.atrasado{background:#fee2e2;color:#b91c1c}
.fp-mark.en_proceso{background:#e0ecff;color:#1d4ed8}
.fp-mark.cerrado{background:#dcfce7;color:#15803d}
.fp-modal-actions .btn-secondary,.fp-modal-actions .btn-primary{white-space:nowrap;width:auto}

/* ---------- Menú: "Más módulos" plegable ---------- */
.ford-mas-toggle{display:flex!important;align-items:center;justify-content:space-between;width:100%;background:none!important;border:0!important;cursor:pointer;font:inherit;text-align:left;min-height:0!important;box-shadow:none!important}
.ford-mas-flecha{transition:transform .15s;font-size:10px}
.ford-mas.abierto .ford-mas-flecha{transform:rotate(90deg)}
.ford-mas:not(.abierto) .nav-item:not(.active){display:none!important}
.drawer.collapsed .ford-mas-toggle{display:none!important}

/* ---------- Mantenimiento: pestañas extra ---------- */
#view-mantenimiento .tabs:not(.ford-mas-abierto) .ford-tab-extra:not(.active){display:none!important}
#view-mantenimiento .tabs .ford-oculto{display:none!important}
.ford-tab-mas{font:inherit;cursor:pointer;width:auto!important;min-width:0!important;color:var(--fp-muted)}

/* ---------- Inicio ---------- */
.fi-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.fi-tile{display:block;width:100%;min-width:0;box-sizing:border-box;text-align:left;font:inherit;color:inherit;cursor:pointer;background:var(--fp-card);border:1px solid var(--fp-line);border-radius:14px;padding:16px;border-top:3px solid var(--fp-navy);min-height:0!important}
.fi-tile:hover{box-shadow:0 4px 14px rgba(15,23,42,.08)}
.fi-tile.bad{border-top-color:var(--fp-bad)}.fi-tile.warn{border-top-color:#d97706}.fi-tile.ok{border-top-color:var(--fp-ok)}
.fi-tile-l{font-size:11.5px;font-weight:800;color:var(--fp-muted);text-transform:uppercase;letter-spacing:.05em}
.fi-tile-n{font-size:34px;font-weight:900;color:var(--fp-navy);line-height:1.1;margin-top:4px;font-variant-numeric:tabular-nums}
.fi-tile-s{font-size:12px;color:var(--fp-muted);margin-top:4px}
.fi-tile-s b{color:var(--fp-navy)}
.fi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fi-card{background:var(--fp-card);border:1px solid var(--fp-line);border-radius:14px;padding:14px;min-width:0}
.fi-wide{grid-column:1 / -1}
.fi-card-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px}
.fi-card-h h3{margin:0;font-size:14.5px;color:var(--fp-navy)}
.fi-hint{font-size:11.5px;color:var(--fp-muted)}
.fi-alert{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--fp-line)}
.fi-alert:first-child{border-top:0}
.fi-ico{flex:none;width:30px;height:30px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;background:var(--fp-soft)}
.fi-ico.bad{background:#fee2e2}.fi-ico.warn{background:#fef3c7}
.fi-alert-t{font-weight:700;color:var(--fp-navy);font-size:13px}
.fi-alert-s{font-size:11.5px;color:var(--fp-muted)}
.fi-alert .btn-secondary{margin-left:auto;flex:none;width:auto}
.fi-bars{display:flex;flex-direction:column;gap:8px}
.fi-bar-row{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:8px;align-items:center;font-size:12px}
.fi-bar-lab{color:var(--fp-navy);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px}
.fi-bar-track{height:8px;background:var(--fp-soft);border-radius:4px;overflow:hidden}
.fi-bar-fill{height:100%;background:var(--fp-navy);border-radius:4px}
.fi-bar-fill.bad{background:#b91c1c}
.fi-bar-n{text-align:right;font-weight:800;color:var(--fp-navy);font-variant-numeric:tabular-nums}
.fi-tec{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-top:1px solid var(--fp-line);font-size:12.5px}
.fi-tec:first-child{border-top:0}
.fi-tec b{color:var(--fp-navy)}
.fi-pill{font-size:11px;font-weight:800;padding:2px 9px;border-radius:999px;background:var(--fp-soft);color:var(--fp-navy)}
.fi-pill.cero{background:#fff7ed;color:#9a3412}
@media (max-width:1000px){.fi-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.fi-grid{grid-template-columns:1fr}}
@media (max-width:720px){#view-inicio{padding:0 12px}.fi-tile-n{font-size:28px}}
.fi-kpi-table{width:100%;border-collapse:collapse;font-size:12.5px}
.fi-kpi-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--fp-muted);font-weight:800;padding:7px 8px;border-bottom:1px solid var(--fp-line);white-space:nowrap}
.fi-kpi-table td{padding:8px;border-bottom:1px solid var(--fp-line);font-variant-numeric:tabular-nums;color:var(--fp-navy)}
.fi-kpi-table th:not(:first-child),.fi-kpi-table td:not(:first-child){text-align:right}
.fi-kpi-table tr:last-child td{border-bottom:0}
.fi-muted{color:var(--fp-muted)}
.fi-num-bad{color:#b91c1c;font-weight:800}
.fi-cumpl{font-weight:800;padding:2px 8px;border-radius:999px;background:var(--fp-soft)}
.fi-cumpl.ok{background:#dcfce7;color:#166534}.fi-cumpl.warn{background:#fef3c7;color:#92400e}.fi-cumpl.bad{background:#fee2e2;color:#991b1b}
.fp-subhead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:0 0 12px}
.fp-subhead h3{color:var(--fp-navy);font-size:16px}
.ford-collapse-body{padding:12px 14px 14px;border-top:1px solid var(--fp-line)}
#ford-prog-embed{margin-bottom:14px}
#mtto-tab-planeacion .fp-backlog{top:72px}
.fp-dc3{display:inline-block;margin-top:4px;font-size:10px;font-weight:800;padding:1px 7px;border-radius:999px;width:fit-content}
.fp-dc3.bad{background:#fee2e2;color:#991b1b}.fp-dc3.warn{background:#fef3c7;color:#92400e}

/* ---------- Ficha del equipo (QR) ---------- */
.fe-head{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;background:var(--fp-card);border:1px solid var(--fp-line);border-radius:14px;padding:14px;margin-bottom:12px}
.fe-qr{width:132px;flex:none;background:#fff;border:1px solid var(--fp-line);border-radius:10px;padding:4px}
.fe-qr svg{width:100%;height:auto;display:block}
.fe-titulo{flex:1;min-width:220px}
.fe-chips{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 10px}
.fe-crit.critica,.fe-crit.alta{background:#fee2e2;color:#991b1b}
.fe-acciones{display:flex;gap:8px;flex-wrap:wrap}
.fe-acciones button{width:auto}
.fe-foto{width:150px;height:110px;object-fit:cover;border-radius:10px;border:1px solid var(--fp-line)}
.fe-small{font-size:16px!important;margin-top:6px}
.fe-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,2fr);gap:12px;align-items:start}
.fe-info{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0;font-size:12.5px}
.fe-info dt{color:var(--fp-muted);font-weight:700}
.fe-info dd{margin:0;color:var(--fp-navy);font-weight:600;word-break:break-word}
.fe-hist{list-style:none;margin:0;padding:0}
.fe-item{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--fp-line)}
.fe-item:first-child{border-top:0}
.fe-dot{flex:none;width:22px;height:22px;border-radius:6px;color:#fff;font-size:11px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;margin-top:1px}
.fe-dot.P{background:var(--fp-p)}.fe-dot.C{background:var(--fp-c)}
.fe-body{flex:1;min-width:0}
.fe-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.fe-top b{color:var(--fp-navy);font-size:13px}
.fe-meta{font-size:11.5px;color:var(--fp-muted);margin-top:2px}
.fe-det{font-size:12px;color:var(--fp-navy);margin-top:6px;line-height:1.45}
.fe-det div+div{margin-top:3px}
.fe-mats{margin-top:6px;display:flex;flex-direction:column;gap:4px}
.fe-mat{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:11.5px;background:var(--fp-soft);border-radius:8px;padding:5px 8px;color:var(--fp-navy)}
.fe-mat span:last-child{color:var(--fp-muted)}
.fe-eventos{margin-top:6px;font-size:11.5px}
.fe-eventos summary{cursor:pointer;color:var(--fp-p);font-weight:700}
.fe-eventos ol{margin:6px 0 0;padding-left:18px;color:var(--fp-navy)}
.fe-eventos li{margin:3px 0}
.fe-eventos li div{color:var(--fp-muted)}
.fe-link{display:inline-block!important;width:auto!important;min-height:0!important;margin-top:6px;background:none!important;border:0!important;padding:0!important;color:var(--fp-p)!important;font-weight:700;font-size:12px;cursor:pointer}
.fe-aviso{background:#eff6ff!important;color:#1e3a8a!important;border-color:#bfdbfe!important}
@media (max-width:900px){.fe-grid{grid-template-columns:1fr}}
@media (max-width:720px){#view-equipo{padding:0 12px}.fe-qr{width:110px}.fe-foto{display:none}}

/* Arrastre con puntero (V30.71) */
.fp-card.fp-movible{cursor:grab;user-select:none;-webkit-user-select:none}
.fp-ghost{position:fixed;left:0;top:0;z-index:9999;pointer-events:none;opacity:.92;box-shadow:0 10px 24px rgba(15,23,42,.25);transform-origin:0 0}
body.fp-arrastrando,body.fp-arrastrando *{cursor:grabbing!important;user-select:none!important}
.fp-card:focus-visible{outline:2px solid var(--fp-p);outline-offset:1px}
/* Que el tablero no se salga de la pantalla: se desplaza dentro de su recuadro */
#mtto-tab-planeacion,#mtto-tab-planeacion .fp-layout,#mtto-tab-planeacion .fp-board-wrap{min-width:0;max-width:100%}
#view-mantenimiento{min-width:0;max-width:100%}
#mtto-tab-planeacion .fp-board{max-width:100%}

/* Barra para subir correctivos por Excel (V30.72) */
.fc-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;background:var(--fp-card);border:1px solid var(--fp-line);border-left:4px solid var(--fp-red);border-radius:12px;padding:14px 16px;margin-bottom:12px}
.fc-bar-txt{flex:1;min-width:260px}
.fc-bar-txt b{display:block;color:var(--fp-navy);font-size:15px;margin-bottom:3px}
.fc-bar-txt span{font-size:12px;color:var(--fp-muted);line-height:1.45}
.fc-bar-btns{display:flex;gap:8px;flex-wrap:wrap}
.fc-bar-btns button{width:auto}
/* Filtros de correctivos en una sola fila */
.correctivo-filter-bar{display:flex!important;flex-wrap:wrap;gap:8px;padding:10px 12px;align-items:center}
.correctivo-filter-bar .filter-select{width:auto!important;flex:1 1 170px;min-width:150px}
.correctivo-filter-bar input.filter-select{flex:2 1 240px}
.correctivo-filter-bar .btn-secondary{width:auto;flex:none}
.fp-chip-x{border:0;cursor:pointer;font:inherit;font-size:11.5px;margin-left:6px;vertical-align:middle;width:auto;background:#e0ecff;color:#1d4ed8}
.fi-kpi-table td:last-child .btn-secondary{width:auto}

/* ---------- Línea de tiempo mensual (V30.75) ---------- */
.fp-layout.fp-mes{grid-template-columns:1fr}
.fp-layout.fp-mes .fp-backlog,.fp-layout.fp-mes .fp-legend{display:none}
#fp-vista{margin-right:8px}
.fg-leyenda{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:11.5px;color:var(--fp-muted);padding:10px 12px;border-bottom:1px solid var(--fp-line);position:sticky;left:0}
.fg-leyenda span{display:inline-flex;gap:5px;align-items:center}
.fg-tip{flex-basis:100%;font-size:11px}
.fg-sw{display:inline-block;width:20px;height:9px;border-radius:5px}
.fg-sw.esp,.fg-bar.esp{background:repeating-linear-gradient(45deg,#dbe2ea,#dbe2ea 4px,#f1f5f9 4px,#f1f5f9 8px)}
.fg-sw.prog,.fg-bar.prog{background:#2563eb}
.fg-sw.proc,.fg-bar.proc{background:#f59e0b}
.fg-sw.ok,.fg-bar.ok{background:#16a34a}
.fg-sw.hoy{background:#d40000;width:3px;height:12px}
.fg-sw.sem{background:#eef4ff;border:1px solid #c7d7fe}
.fg-grid{display:grid;grid-template-columns:300px minmax(0,1fr);min-width:960px}
.fg-name{padding:6px 10px;border-bottom:1px solid #f1f5f9;min-width:0;cursor:pointer;position:sticky;left:0;background:var(--fp-card);z-index:1}
.fg-name:hover b{color:var(--fp-p)}
.fg-name b{display:block;font-size:12px;color:var(--fp-navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fg-name small{display:block;font-size:10.5px;color:var(--fp-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fg-name .fp-tipo{width:15px;height:15px;font-size:9px;vertical-align:1px}
.fg-h{position:sticky;top:0;z-index:3;background:var(--fp-soft);border-bottom:1px solid var(--fp-line);font-size:11px;font-weight:800;color:var(--fp-muted);cursor:default}
.fg-name.fg-h{z-index:4;display:flex;align-items:center}
.fg-days{display:grid;grid-template-columns:repeat(var(--fg-n),1fr);padding:0}
.fg-day{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:0;width:auto!important;min-width:0!important;min-height:0!important;padding:5px 0!important;border:0!important;border-radius:0!important;background:transparent!important;cursor:pointer;font:inherit;color:var(--fp-muted)}
.fg-day b{font-size:11.5px;color:var(--fp-navy)}.fg-day small{font-size:9.5px}
.fg-day.sem{background:#eef4ff!important}
.fg-day.hoy b{color:#d40000}
.fg-day:hover{background:#e0ecff!important}
.fg-track{position:relative;border-bottom:1px solid #f1f5f9;min-height:40px;cursor:crosshair}
.fg-track:hover{background:#fafcff}
.fg-track.cerrado{opacity:.6}
.fg-semcol{position:absolute;top:0;bottom:0;background:#eef4ff}
.fg-hoy{position:absolute;top:0;bottom:0;width:2px;background:#d40000;opacity:.55;transform:translateX(-1px)}
.fg-bar{position:absolute;top:14px;height:12px;border-radius:6px}
.fg-flag{position:absolute;top:5px;font-size:12px;font-style:normal;transform:translateX(2px);pointer-events:none}
.fg-tag{position:absolute;top:12px;font-size:10px;font-weight:800;color:#475569;background:#f1f5f9;border-radius:999px;padding:1px 7px;white-space:nowrap;pointer-events:none}
.fg-tag.bad{color:#b91c1c;background:#fee2e2}
.fg-grupo{grid-column:1/-1;background:#f1f5f9;font-weight:800;font-size:12.5px;color:var(--fp-navy);padding:7px 10px;position:sticky;left:0}
.fg-grupo span{font-weight:600;color:var(--fp-muted);font-size:11.5px;margin-left:6px}
.fg-more-wrap{padding:6px 10px}
/* V30.77 · Correctivos abiertos / cerrados */
.fc-vista{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--fp-line);border-radius:12px;background:var(--fp-card);margin-bottom:12px;flex-wrap:wrap}
.fc-vista button{font:inherit;font-size:13px;font-weight:700;border:0;border-radius:9px;padding:9px 16px;background:transparent;color:var(--fp-muted);cursor:pointer;display:inline-flex;gap:8px;align-items:center}
.fc-vista button b{font-size:12px;background:var(--fp-line);color:var(--fp-navy);border-radius:999px;padding:1px 8px;min-width:24px;text-align:center}
.fc-vista button.active{background:var(--fp-navy);color:#fff}
.fc-vista button.active b{background:rgba(255,255,255,.2);color:#fff}
.fc-cerrados-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;background:var(--fp-card);border:1px solid var(--fp-line);border-left:4px solid #1C7C3E;border-radius:12px;padding:14px 16px;margin-bottom:12px}
.fc-cerrados-bar[hidden]{display:none}
.fc-mes{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--fp-muted);font-weight:600}
.fc-cerrados-bar .fc-bar-btns{align-items:flex-end}
#mtto-tab-correctivos.fc-modo-cerrados .fc-bar,#mtto-tab-correctivos.fc-modo-cerrados #ford-correctivos-import,#mtto-tab-correctivos.fc-modo-cerrados #correctivos-stats{display:none}
/* V30.85 · Refacciones más usadas */
.rf-ctrl{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.rf-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 16px 12px}
@media (max-width:700px){.rf-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.rf-kpi{background:var(--fp-bg,#f4f6f9);border-radius:10px;padding:9px 12px;display:flex;flex-direction:column;gap:2px}
.rf-kpi span{font-size:11px;color:var(--fp-muted);text-transform:uppercase;letter-spacing:.4px;font-weight:700}
.rf-kpi b{font-size:20px;color:var(--fp-navy)}
.rf-bar{height:5px;border-radius:3px;background:var(--fp-line);margin:4px 0 2px;max-width:220px;overflow:hidden}
.rf-bar i{display:block;height:100%;background:#b45309;border-radius:3px}
/* V30.88 · Detalle de inspección */
#modal-insp-detalle .idt-g{margin:10px 0;border:1px solid var(--fp-line);border-radius:10px;padding:8px 12px}
#modal-insp-detalle .idt-g h4{margin:0 0 6px;font-size:13px}
#modal-insp-detalle .idt-r{display:flex;gap:10px;align-items:flex-start;padding:6px 0;border-top:1px solid var(--fp-line);font-size:12.5px}
#modal-insp-detalle .idt-r img{width:120px;height:90px;object-fit:cover;border-radius:6px;border:1px solid var(--fp-line)}
#modal-insp-detalle .b{font-weight:700;padding:1px 7px;border-radius:9px;font-size:11px}
#modal-insp-detalle .ok{background:#dcfce7;color:#166534}#modal-insp-detalle .no{background:#fee2e2;color:#991b1b}#modal-insp-detalle .na{background:#eef0f3;color:#555}
#modal-insp-detalle .res{display:flex;gap:16px;flex-wrap:wrap;margin:8px 0;font-size:13px}
/* V30.89 · Equipos por área */
.eq-card{padding:0;overflow:hidden;margin-bottom:14px}
.eq-bar{display:flex;gap:8px;flex-wrap:wrap;padding:12px 14px;border-bottom:1px solid var(--fp-line)}
.eq-bar #eq-q{flex:1;min-width:200px}
.eq-bulk{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 14px;background:#fff7ed;border-bottom:1px solid var(--fp-line);font-size:13px}
.eq-resumen{display:flex;gap:18px;flex-wrap:wrap;padding:10px 14px;font-size:12.5px;color:var(--fp-muted)}
.eq-resumen b{color:var(--fp-navy);font-size:16px}
.eq-table td{vertical-align:middle}
.eq-grp td{background:var(--fp-bg,#f4f6f9);font-weight:800;color:var(--fp-navy);font-size:12.5px;padding:7px 12px}
.eq-grp span{font-weight:500;color:var(--fp-muted);margin-left:6px}
.eq-sub{font-size:11px;color:var(--fp-muted)}
.eq-r{font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;white-space:nowrap}
.eq-r.bad{background:#fee2e2;color:#991b1b}.eq-r.warn{background:#ffedd5;color:#9a3412}.eq-r.mid{background:#fef3c7;color:#92400e}.eq-r.ok{background:#dcfce7;color:#166534}
.eq-acc{white-space:nowrap;text-align:right}.eq-acc .btn-sm{margin-left:4px}
.eq-danger{color:#b42318!important;border-color:#fca5a5!important}
.eq-baja td{opacity:.6}
.eq-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.eq-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
@media (max-width:620px){.eq-2,.eq-3{grid-template-columns:1fr}.eq-acc{white-space:normal}}
/* 15. QR públicos para reportar */
.qrr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}
.qrr-it{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border,#e2e6ec);border-radius:12px;padding:10px;background:var(--surface,#fff)}
.qrr-it.off{opacity:.55}
.qrr-qr{width:84px;height:84px;flex:none;background:#fff;border-radius:6px;padding:2px}.qrr-qr svg{width:100%;height:100%}
.qrr-s{font-size:12px;color:var(--text-muted,#5b6675);margin:2px 0 6px}
.qrr-acc{display:flex;gap:6px;flex-wrap:wrap}.qrr-acc .btn-sm{text-decoration:none}
.qrr-acc .btn-sm{padding:4px 9px;font-size:12px;min-height:0}
/* 16. Cámara con candado + cierre de correctivo con 3 fotos */
.cam-ov{position:fixed;inset:0;z-index:100000;background:#000;display:none;flex-direction:column;color:#fff}
.cam-ov.show{display:flex}
.cam-top{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;font-size:14px}
.cam-top span{font-size:12px;opacity:.8}
.cam-vista{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.cam-vista video,.cam-vista img{max-width:100%;max-height:100%;object-fit:contain}
.cam-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px calc(18px + env(safe-area-inset-bottom))}
.cam-bar[hidden]{display:none}
.cam-b{font:inherit;font-size:15px;background:rgba(255,255,255,.14);color:#fff;border:0;border-radius:999px;padding:11px 16px;min-width:96px;cursor:pointer}
.cam-b.cam-ok{background:#D40000;font-weight:700}
.cam-disparo{width:72px;height:72px;border-radius:50%;border:5px solid #fff;background:#D40000;cursor:pointer;flex:none}
.cam-disparo:active{transform:scale(.93)}
.cam-b:focus-visible,.cam-disparo:focus-visible{outline:3px solid #60a5fa;outline-offset:3px}
.cc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cc-slot{border:1.5px dashed var(--border,#cbd5e1);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:6px;align-items:stretch;text-align:center}
.cc-slot.ok{border-style:solid;border-color:#1C7C3E}
.cc-et{font-size:12px;font-weight:800}
.cc-slot.ok .cc-et{color:#1C7C3E}
.cc-slot img,.cc-vacio{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;background:var(--gris-light,#f1f5f9)}
.cc-vacio{display:flex;align-items:center;justify-content:center;font-size:11.5px;color:var(--gris,#64748b)}
@media (max-width:420px){.cc-grid{gap:6px}.cc-slot{padding:6px}}
/* 17. Gantt diarios (preventivos / correctivos / planes) con el formato del planner */
.gantt-daily-table .fp-tipo.C{background:#d40000}.gantt-daily-table .fp-tipo.P{background:#2563eb}
.gantt-daily-table td.gd-lbl{min-width:300px;max-width:300px;width:300px;padding:6px 10px!important;vertical-align:middle}
.gd-t{font-size:12px;font-weight:600;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gd-t b{font-weight:800;font-variant-numeric:tabular-nums}
.gd-lbl small{display:block;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;font-size:10.5px;color:var(--gris)}
.gantt-daily-table td.gd-cell{height:34px;padding:0!important;position:relative}
.gd-seg{position:absolute!important;left:-1px;right:-1px;top:12px;height:10px!important;min-height:0!important;min-width:0!important;width:auto!important;border:0!important;padding:0!important;margin:0!important;border-radius:0!important;box-shadow:none!important;background:#2563eb;cursor:pointer;display:block}
.gd-seg.ini{left:4px;border-top-left-radius:5px!important;border-bottom-left-radius:5px!important}
.gd-seg.fin{right:4px;border-top-right-radius:5px!important;border-bottom-right-radius:5px!important}
.gd-seg.azul{background:#2563eb}.gd-seg.naranja{background:#f59e0b}.gd-seg.rojo{background:#d40000}.gd-seg.verde{background:#16a34a}.gd-seg.gris{background:#94a3b8}
.gd-seg:hover,.gd-seg:focus-visible{outline:2px solid #0f172a;outline-offset:1px;z-index:1}
.gd-row:hover td{background:#f8fafc}
/* 18. Mi operación: encabezado y pasos */
.mo-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;margin-bottom:12px}
.mo-who{display:flex;align-items:center;gap:12px;min-width:0}
.mo-av{width:42px;height:42px;border-radius:50%;background:#D40000;color:#fff;font-weight:800;font-size:18px;display:flex;align-items:center;justify-content:center;flex:none}
.mo-who b{display:block;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mo-who small{display:block;font-size:12px;color:var(--gris)}
.mo-pasos{padding:0;margin-bottom:14px;overflow:hidden}
.mo-pasos summary{cursor:pointer;padding:12px 16px;font-weight:800;font-size:14px;list-style:none;display:flex;justify-content:space-between;gap:8px;align-items:center}
.mo-pasos summary::-webkit-details-marker{display:none}
.mo-pasos summary span{font-weight:500;font-size:11.5px;color:var(--gris)}
.mo-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 16px}
.mo-cols h4{margin:0 0 6px;font-size:13.5px;display:flex;align-items:center;gap:6px}
.mo-cols ol{margin:0;padding-left:20px;font-size:13px;line-height:1.55}
.mo-cols .fp-tipo.C{background:#d40000}.mo-cols .fp-tipo.P{background:#2563eb}
.mo-nota{font-size:12px;color:var(--gris);padding:10px 16px 14px}
@media (max-width:640px){.mo-cols{grid-template-columns:1fr}}
/* 19. Tema claro siempre. Con el celular en modo oscuro la app mezclaba tarjetas
   blancas con letra clara (casi no se leía). Se fija el tema claro en todo. */
:root{color-scheme:light}
@media (prefers-color-scheme:dark){
  :root{--fondo:#f7f8fa;--shell-bg:#fff;--shell-borde:#eef0f3;--shell-texto:#1f2430;--shell-texto-2:#5f6673;--texto:#111827;--texto-2:#374151;--gris:#6b7280;--linea:#e5e7eb;--blanco:#fff;--gris-light:#f3f4f6;--azul-light:#eef2ff;--verde-light:#ecfdf5;--rojo-light:#fef2f2;--naranja-light:#fffbeb;--morado-light:#f5f3ff;--marca-light:#fff1ea}
  html .field input,html .field select,html .field textarea,html .filter-select,html input,html select,html textarea{background-color:#fff;color:#111827;border-color:#d5dde5}
  html input::placeholder,html textarea::placeholder{color:#9ca3af}
  html th{color:#5f7388;background:#f8fafc;border-color:#e5e7eb}
  html tbody tr:hover{background:#f8fafc}
  html .nav-item:hover,html .nav-item.active,html .bottom-nav-item.active{background:#fef2f2}
  html .btn-secondary{color:#223548;background:#fff;border-color:#d5dde5}
  html .empty-state,html .section-sub,html .item-sub,html .meta{color:#6b7280!important}
  html .comp-urgencia-filtro,html .comp-more>summary,html .comp-more-menu{color:#223548;background:#fff;border-color:#d5dde5}
  html .comp-more-menu button{color:#223548}
  html :where(a,button,input,select,textarea,[tabindex]):focus-visible{outline-color:#2563eb!important;box-shadow:0 0 0 2px #fff,0 0 0 5px #2563eb61!important}
}
/* Orden de servicio: las filas largas (instrucciones) se acomodan abajo en vez de partirse letra por letra */
#modal-orden-servicio .fin-cascada-fila{flex-wrap:wrap}
#modal-orden-servicio .fin-cascada-fila span:first-child{color:var(--gris);flex:none}
#modal-orden-servicio .fin-cascada-fila span:last-child{white-space:normal;text-align:right;min-width:0;flex:1 1 55%;overflow-wrap:anywhere}
/* 20. Mi equipo (supervisor) */
.me-aviso{background:#FFF7ED;color:#9A3412;border:1px solid #fed7aa;border-radius:10px;padding:10px 12px;font-size:12.5px;margin-bottom:12px}
.me-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}
.me-kpi{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:#fff;border:1px solid #e5e7eb;border-left:4px solid #16a34a;border-radius:12px;padding:12px 14px;cursor:pointer;font:inherit;color:#111827;min-height:0}
.me-kpi.bad{border-left-color:#d40000}.me-kpi.warn{border-left-color:#f59e0b}
.me-kpi b{font-size:26px;line-height:1.1;font-variant-numeric:tabular-nums}
.me-kpi span:last-child{font-size:12px;color:#5f7388;font-weight:600}
.me-kpi .me-ic{font-size:15px}
.me-kpi:hover{box-shadow:0 4px 14px rgba(15,23,42,.08)}
.me-lista{display:flex;flex-direction:column}
.me-fila{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:none;border:0;border-top:1px solid #eef0f3;padding:11px 16px;cursor:pointer;font:inherit;color:inherit;min-height:0}
.me-fila:first-child{border-top:0}
.me-fila:hover{background:#f8fafc}
.me-av2{width:36px;height:36px;border-radius:50%;background:#fee2e2;color:#b42318;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.me-fd{flex:1;min-width:0}
.me-fd b{font-size:14px}
.me-fd small{display:block;font-size:12px;color:#5f7388;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.me-chip{display:inline-block;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 7px;margin-left:4px;background:#f1f5f9;color:#475569;vertical-align:1px}
.me-chip.bad{background:#fee2e2;color:#b42318}.me-chip.warn{background:#fef3c7;color:#92400e}
.me-hoy{text-align:right;flex:none}
.me-hoy b{display:block;font-size:15px;font-variant-numeric:tabular-nums}
.me-hoy small{font-size:11px;color:#5f7388}
.me-rev{border-top:1px solid #eef0f3;padding:12px 16px}
.me-rev:first-child{border-top:0}
.me-rev-top{display:flex;align-items:center;gap:6px;min-width:0}
.me-rev-top b{font-variant-numeric:tabular-nums;flex:none}
.me-rev-t{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.me-rev-m{font-size:12px;color:#5f7388;margin:3px 0 8px}
.me-rev-f{display:grid;grid-template-columns:repeat(3,minmax(0,110px));gap:8px}
.me-rev-f a,.me-sinfoto{position:relative;display:block;aspect-ratio:4/3;border-radius:8px;overflow:hidden;background:#f1f5f9;text-decoration:none}
.me-rev-f img{width:100%;height:100%;object-fit:cover;display:block}
.me-rev-f a span,.me-sinfoto span:last-child{position:absolute;left:0;right:0;bottom:0;background:rgba(15,23,42,.7);color:#fff;font-size:10.5px;font-weight:700;padding:2px 6px}
.me-sinfoto{border:1.5px dashed #fca5a5}
.me-sinfoto span:first-child{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:#b42318}
.me-rev-n{font-size:13px;margin:8px 0;background:#f8fafc;border-radius:8px;padding:8px 10px}
.me-rev-n.vacio{color:#b42318;background:#fef2f2}
.me-rev-a{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.me-num{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 16px 16px}
.me-n{border:1px solid #eef0f3;border-radius:12px;padding:10px 12px}
.me-n span{display:block;font-size:12px;color:#5f7388;font-weight:600}
.me-n b{display:block;font-size:24px;font-variant-numeric:tabular-nums;margin:2px 0}
.me-n small{font-size:11.5px;color:#5f7388}
@media (max-width:820px){.me-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.me-num{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.me-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.me-kpi b{font-size:22px}}
.mo-head>.btn-sm{white-space:nowrap;flex:none}
/* 1c. Reasignar varios */
#fp-sel.active{background:#0f172a;color:#fff;border-color:#0f172a}
.fp-selbar{position:sticky;top:8px;z-index:20;display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;background:#0f172a;color:#fff;border-radius:14px;padding:12px 14px;margin:0 0 12px;box-shadow:0 10px 26px rgba(15,23,42,.25)}
.fp-selbar[hidden]{display:none}
.fp-selbar-n{min-width:170px}
.fp-selbar-n b{font-size:22px;font-variant-numeric:tabular-nums;margin-right:4px}
.fp-selbar-n small{display:block;font-size:11.5px;opacity:.75}
.fp-selbar-f{display:flex;flex-direction:column;gap:3px;font-size:11.5px;font-weight:700;opacity:.95;flex:1 1 180px}
.fp-selbar-f .filter-select{background:#fff;color:#111827;min-height:40px}
.fp-selbar-b{display:flex;gap:8px;margin-left:auto}
.fp-selbar .btn-secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.fp-modo-sel .fp-card{cursor:pointer}
.fp-modo-sel [data-fp-drop],.fp-modo-sel [data-fp-row]{cursor:copy}
.fp-card.fp-sel{outline:3px solid #2563eb;outline-offset:1px;background:#eff6ff!important}
.fp-card.fp-sel::after{content:"✓";position:absolute;top:-7px;right:-7px;width:18px;height:18px;border-radius:50%;background:#2563eb;color:#fff;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center}
.fp-card{position:relative}
/* 21. Avisos */
.av-wrap{position:relative;display:inline-flex}
.av-btn{position:relative;background:transparent;border:0;font-size:20px;cursor:pointer;padding:6px 8px;border-radius:10px;min-height:40px;min-width:40px}
.av-btn:hover{background:#f1f5f9}
.av-badge{position:absolute;top:2px;right:0;background:#d40000;color:#fff;font-size:10.5px;font-weight:800;border-radius:999px;padding:1px 5px;min-width:17px;text-align:center;line-height:1.4}
.av-panel{position:absolute;right:0;top:calc(100% + 6px);width:min(360px,calc(100vw - 24px));max-height:70vh;overflow:auto;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 18px 40px rgba(15,23,42,.18);z-index:9999}
.av-panel[hidden]{display:none}
.av-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid #eef0f3;position:sticky;top:0;background:#fff}
.av-link{background:none;border:0;color:#2563eb;font-size:12px;font-weight:700;cursor:pointer;min-height:0}
.av-perm{display:block;width:calc(100% - 24px);margin:10px 12px 0;background:#fef2f2;color:#b42318;border:1px solid #fecaca;border-radius:10px;padding:9px;font-weight:700;cursor:pointer;min-height:0}
.av-it{display:flex;gap:10px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid #f1f5f9;padding:10px 14px;cursor:pointer;font:inherit;color:#111827;min-height:0}
.av-it:hover{background:#f8fafc}
.av-it.nuevo{background:#fff7f7}
.av-it.nuevo b::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#d40000;margin-right:6px;vertical-align:1px}
.av-ic{font-size:18px;flex:none}
.av-tx{min-width:0}
.av-tx b{display:block;font-size:13px}
.av-tx span{display:block;font-size:12.5px;color:#374151;overflow-wrap:anywhere}
.av-tx small{font-size:11px;color:#6b7280}
.av-vacio{padding:18px 14px;font-size:13px;color:#6b7280;text-align:center}
@media (max-width:640px){.fp-selbar{top:auto;bottom:calc(70px + env(safe-area-inset-bottom));position:fixed;left:8px;right:8px;margin:0}.fp-selbar-b{width:100%;justify-content:flex-end}}
/* 22. Preventivos: tabla legible y cerrados */
#tabla-preventivos-ordenes .btn-sm{white-space:nowrap}
#tabla-preventivos-ordenes td{vertical-align:middle}
#tabla-preventivos-ordenes td:first-child{min-width:200px}
#tabla-preventivos-ordenes td:nth-child(2){min-width:140px;overflow-wrap:anywhere}
#tabla-preventivos-ordenes td:nth-child(3){white-space:nowrap}
#tabla-preventivos-ordenes .badge{white-space:nowrap}
#tabla-preventivos-ordenes tr.fp-cerrada td{background:#fbfdfb}
.qrr-av{border:1.5px solid #25D366;background:#f0fdf4;border-radius:12px;padding:12px;margin-bottom:12px}
.qrr-av>b{display:block;font-size:14px}
.qrr-av>span{display:block;font-size:12px;color:#5f7388;margin-bottom:6px}
.qrr-av-it{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #d1fae5}
.qrr-av-it small{display:block;font-size:12px;color:#5f7388}
.qrr-av-it .btn-sm{white-space:nowrap;text-decoration:none;background:#25D366;border-color:#25D366}
/* Tickets: sin botón de ubicar en el mapa */
.btn-zona-ticket{display:none!important}
/* 23. Perfiles de Servicios */
.area-oculto{display:none!important}
.area-chip{display:inline-block;margin-top:4px;font-size:11px;font-weight:700;background:rgba(255,255,255,.2);border-radius:999px;padding:2px 8px}
.area-panel{margin-bottom:14px;padding:0}
.area-panel summary{cursor:pointer;padding:14px 16px;list-style:none}
.area-panel summary::-webkit-details-marker{display:none}
.area-panel summary b{display:block;font-size:14px}
.area-panel summary span{display:block;font-size:12px;color:var(--gris)}
.area-lista{padding:0 16px 12px}
.area-it{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-top:1px solid #eef0f3}
.area-it small{display:block;font-size:12px;color:var(--gris)}
.area-it .filter-select{max-width:330px;flex:0 1 330px}
@media (max-width:560px){.area-it{flex-direction:column;align-items:stretch}.area-it .filter-select{max-width:none;flex:auto}}
/* 25. Jardinería: reporte diario y avances */
.rj-form{padding:0 16px 16px}
.rj-l{display:block;font-size:12px;font-weight:700;color:#374151;margin-bottom:4px}
.rj-g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.rj-zonas{display:flex;flex-direction:column;gap:8px}
.rj-z{border:1.5px solid #e5e7eb;border-radius:12px;background:#fff}
.rj-z.on{border-color:#16a34a;background:#f0fdf4}
.rj-zh{display:flex;align-items:center;gap:10px;padding:11px 12px;cursor:pointer;font-size:14px}
.rj-zh input{width:20px;height:20px;min-height:0;accent-color:#16a34a}
.rj-pct{margin-left:auto;font-weight:800;color:#166534;font-variant-numeric:tabular-nums}
.rj-zb{padding:0 12px 12px;display:flex;flex-direction:column;gap:10px}
.rj-acts{display:flex;flex-wrap:wrap;gap:6px}
.rj-act{font:inherit;font-size:12.5px;border:1.5px solid #d1d5db;background:#fff;border-radius:999px;padding:6px 11px;cursor:pointer;min-height:0;color:#111827}
.rj-act.on{background:#16a34a;border-color:#16a34a;color:#fff;font-weight:700}
.rj-av{display:flex;flex-direction:column;gap:4px;font-size:13px}
.rj-av input{width:100%;accent-color:#16a34a;min-height:0}
.rj-fotos{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rj-f{position:relative;display:inline-flex;flex-direction:column;align-items:center;width:64px}
.rj-f img{width:64px;height:48px;object-fit:cover;border-radius:6px}
.rj-f small{font-size:10px;color:#5f7388}
.rj-f button{position:absolute;top:-6px;right:-6px;width:20px;height:20px;min-height:0;border-radius:50%;border:0;background:#d40000;color:#fff;font-size:12px;line-height:1;cursor:pointer;padding:0}
.rj-nz{display:flex;gap:8px;margin-top:8px}
.rj-nz .filter-select{flex:1}
.rj-msg{color:#b42318;font-size:13px;margin-top:8px;min-height:1em}
.rj-mes{display:flex;flex-direction:column;font-size:11.5px;font-weight:700;gap:2px}
.rj-avl{display:flex;flex-direction:column;padding:0 16px 14px}
.rj-avi{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(80px,1fr) 46px;gap:12px;align-items:center;padding:9px 0;border-top:1px solid #eef0f3}
.rj-avi:first-child{border-top:0}
.rj-avn small{display:block;font-size:11.5px;color:#5f7388;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rj-bar{height:10px;border-radius:999px;background:#eef2f7;overflow:hidden}
.rj-bar i{display:block;height:100%;border-radius:999px}
.rj-bar i.ok{background:#16a34a}.rj-bar i.mid{background:#84cc16}.rj-bar i.low{background:#f59e0b}
.rj-avp{text-align:right;font-variant-numeric:tabular-nums}
.rj-h{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;border-top:1px solid #eef0f3}
.rj-h small{display:block;font-size:12px;color:#5f7388}
.rj-h .rj-inc{color:#b42318}
.rj-hb{display:flex;gap:6px;flex:none}
@media (max-width:600px){.rj-g3{grid-template-columns:1fr 1fr}.rj-avi{grid-template-columns:1fr 46px}.rj-bar{grid-column:1/-1;grid-row:2}.rj-h{flex-direction:column;align-items:stretch}.rj-hb{justify-content:flex-end}}
/* 26. Bandeja de Compras / Almacén */
.cb-wrap{margin-bottom:14px;overflow:hidden}
.cb-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 16px 12px}
.cb-k{border:1px solid #eef0f3;border-left:4px solid #94a3b8;border-radius:10px;padding:9px 12px}
.cb-k.ok{border-left-color:#16a34a}.cb-k.warn{border-left-color:#f59e0b}.cb-k.bad{border-left-color:#d40000}
.cb-k b{display:block;font-size:22px;font-variant-numeric:tabular-nums}
.cb-k span{font-size:12px;color:#5f7388}
.cb-cols{display:grid;grid-template-columns:repeat(5,minmax(230px,1fr));gap:10px;padding:0 16px 16px;overflow-x:auto}
.cb-col{background:#f8fafc;border-radius:12px;padding:10px;min-width:0}
.cb-col h4{margin:0;font-size:13.5px;display:flex;justify-content:space-between}
.cb-col h4 span{background:#e2e8f0;border-radius:999px;padding:0 8px;font-size:12px}
.cb-col>p{font-size:11.5px;color:#5f7388;margin:2px 0 8px}
.cb-card{background:#fff;border:1px solid #e5e7eb;border-left:4px solid #2563eb;border-radius:10px;padding:9px 10px;margin-bottom:8px}
.cb-card.urg{border-left-color:#d40000}
.cb-t{display:flex;justify-content:space-between;gap:8px;font-size:13.5px}
.cb-t span{white-space:nowrap;font-weight:700;color:#374151}
.cb-s,.cb-m{font-size:11.5px;color:#5f7388;margin-top:2px;overflow-wrap:anywhere}
.cb-bs{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.cb-b{font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 7px;background:#f1f5f9;color:#475569}
.cb-b.ok{background:#dcfce7;color:#166534}.cb-b.warn{background:#fef3c7;color:#92400e}.cb-b.bad{background:#fee2e2;color:#b42318}
.cb-a{display:flex;gap:6px;align-items:center;margin-top:8px;flex-wrap:wrap}
.cb-a .btn-sm{white-space:nowrap}
.cb-x{margin-left:auto;background:none;border:0;color:#94a3b8;font-size:18px;cursor:pointer;min-height:0;padding:0 4px}
.cb-x:hover{color:#d40000}
.cb-vacio{font-size:12px;color:#94a3b8;text-align:center;padding:14px 0}
@media (max-width:700px){.cb-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cb-cols{grid-template-columns:repeat(5,minmax(240px,82vw));scroll-snap-type:x mandatory}.cb-col{scroll-snap-align:start}}
/* 27. Reporte mensual para Ford */
.rf-mens{margin-bottom:14px;border-top:3px solid #D40000}
.rmf-in{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;padding:14px 16px}
.rmf-ctl{display:flex;gap:10px;align-items:flex-end}
.rmf-mes{display:flex;flex-direction:column;font-size:11.5px;font-weight:700;gap:2px}
.rmf-prev{padding:0 16px 14px}
.rmf-k{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.rmf-k div{border:1px solid #eef0f3;border-radius:10px;padding:8px 10px}
.rmf-k span{display:block;font-size:11px;color:#5f7388;font-weight:600}
.rmf-k b{display:block;font-size:20px;font-variant-numeric:tabular-nums}
.rmf-k small{font-size:11px;color:#5f7388}
@media (max-width:900px){.rmf-k{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:520px){.rmf-k{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* 28. Incidentes para todos */
.inc-btn{display:inline-flex;align-items:center;gap:4px;background:#fff1f1;color:#b42318;border:1px solid #f5c2c2;border-radius:999px;font-weight:700;font-size:13px;padding:6px 12px;min-height:38px;cursor:pointer;margin-right:4px}
.inc-btn:hover{background:#ffe4e4}
.inc-btn:focus-visible,.inc-chip:focus-visible,.inc-foto-add:focus-visible{outline:3px solid #D40000;outline-offset:2px}
@media (max-width:520px){.inc-btn-tx{display:none}.inc-btn{padding:6px 9px}}
.inc-card{max-width:600px;width:96vw;max-height:92vh;overflow:auto}
.inc-campo{margin-top:14px}
.inc-campo>label,.inc-dos label{display:block;font-size:12.5px;font-weight:700;margin-bottom:6px;color:#1f2937}
.inc-campo textarea,.inc-campo>input{width:100%}
.inc-dos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:480px){.inc-dos{grid-template-columns:1fr}}
.inc-chips{display:flex;flex-wrap:wrap;gap:6px}
.inc-chip{border:1px solid #d0d5dd;background:#fff;color:#344054;border-radius:999px;padding:8px 13px;font-size:13px;font-weight:600;cursor:pointer;min-height:40px}
.inc-chip.on{background:#D40000;border-color:#D40000;color:#fff}
.inc-fotos{display:flex;gap:8px;flex-wrap:wrap}
.inc-foto{position:relative;width:96px;height:96px;border-radius:10px;overflow:hidden;border:1px solid #d0d5dd;background:#f8fafc}
.inc-foto img{width:100%;height:100%;object-fit:cover}
.inc-foto-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:24px;cursor:pointer;border:2px dashed #98a2b3;color:#344054}
.inc-foto-add span{font-size:11.5px;font-weight:700}
.inc-foto-x{position:absolute;top:4px;right:4px;width:26px;height:26px;border-radius:50%;border:0;background:rgba(15,23,42,.75);color:#fff;cursor:pointer;font-size:12px}
.inc-nota{font-size:11.5px;color:#667085;margin-top:6px}
.inc-ref{display:grid;grid-template-columns:1fr 70px 92px 36px;gap:6px;margin-bottom:6px}
@media (max-width:520px){.inc-ref{grid-template-columns:1fr 1fr 40px;padding-bottom:8px;border-bottom:1px dashed #e4e7ec}.inc-ref [data-r="nombre"]{grid-column:1 / -1}}
.inc-ref input[type=number]{min-width:0}
.inc-aviso{font-size:12.5px;color:#b42318;margin-top:10px;min-height:1em;font-weight:600}
.inc-extra{margin:4px 0 10px;font-size:12.5px;color:#344054}
.inc-lugar{font-weight:700;margin-bottom:4px}
.inc-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.inc-tag{background:#f2f4f7;color:#344054;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:700}
.inc-tag.si{background:#fff4e5;color:#b54708}
.inc-mini{display:flex;gap:6px;margin:6px 0}
.inc-mini img{width:72px;height:72px;object-fit:cover;border-radius:8px;border:1px solid #e4e7ec}
.inc-reflist{margin:4px 0 6px 18px;padding:0}
.inc-corr{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;font-weight:600}
/* 29. Perfiles unificados · organigrama · bitácora */
.perf-oculto{display:none!important}
.perf-nota{font-size:11.5px;color:#667085;margin-top:4px}
.area-filtro{padding:8px 0}
.area-filtro input{width:100%}
.area-fijo{font-size:12px;font-weight:700;color:#475467;background:#f2f4f7;border-radius:999px;padding:4px 10px}
#view-bitacora .card{padding:14px}
.bt-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.bt-tab{border:1px solid #d0d5dd;background:#fff;border-radius:999px;padding:8px 14px;font-weight:700;font-size:13px;cursor:pointer;min-height:40px;color:#344054}
.bt-tab.on{background:#1f2937;border-color:#1f2937;color:#fff}
.bt-tab:focus-visible,.bt-chip:focus-visible,.org-t:focus-visible{outline:3px solid #D40000;outline-offset:2px}
.bt-fil{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.bt-fil select,.bt-fil input{min-height:40px}
.bt-fil input{flex:1;min-width:180px}
.bt-chips{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 10px}
.bt-chip{border:1px solid #e4e7ec;background:#f9fafb;border-radius:999px;padding:5px 11px;font-size:12px;color:#344054;cursor:pointer}
.bt-chip.on{background:#1f2937;color:#fff;border-color:#1f2937}
.bt-chip.bad{background:#fef3f2;border-color:#fecdca;color:#b42318}
.bt-tabla{display:flex;flex-direction:column}
.bt-fila{display:grid;grid-template-columns:120px 210px 1fr;gap:10px;padding:9px 4px;border-top:1px solid #eef0f3;font-size:13px;align-items:start}
.bt-cuando{color:#667085;font-variant-numeric:tabular-nums;font-size:12px}
.bt-quien small,.bt-que small{display:block;color:#667085;font-size:11.5px;margin-top:2px}
.bt-mod{display:inline-block;background:#eef2ff;color:#3730a3;border-radius:6px;padding:1px 7px;font-size:11px;font-weight:700;margin-right:4px}
@media (max-width:640px){.bt-fila{grid-template-columns:1fr;gap:2px}.bt-cuando{order:3}}
.org-ayuda{font-size:12.5px;color:#667085;margin:0 0 8px}
.org-sub{margin:16px 0 6px;font-size:13px;color:#b42318}
.org-arbol,.org-h{list-style:none;margin:0;padding:0}
.org-h{margin-left:18px;padding-left:12px;border-left:2px solid #e4e7ec}
.org-n{margin:6px 0}
.org-card{border:1px solid #e4e7ec;border-radius:10px;padding:8px 10px;background:#fff}
.org-card.warn{border-color:#fecdca;background:#fffbfa}
.niv-6>.org-card,.niv-5>.org-card,.niv-4>.org-card{border-left:4px solid #1f2937}
.niv-3>.org-card{border-left:4px solid #D40000}
.niv-2>.org-card{border-left:4px solid #2C5DA8}
.niv-1>.org-card{border-left:4px solid #98a2b3}
.org-t{all:unset;cursor:pointer;display:block;width:100%}
.org-t small{display:block;color:#667085;font-size:12px}
.org-k{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}
.org-k span{font-size:11.5px;background:#f2f4f7;border-radius:999px;padding:2px 8px;color:#344054;font-weight:600}
.org-k span.bad{background:#fef3f2;color:#b42318}
.org-det{margin-top:8px;font-size:12.5px}
.org-det ul{margin:0;padding-left:18px}
.org-det li{margin:3px 0}
.org-det li.bad{color:#b42318}
.org-e{color:#667085;font-size:11.5px}
.org-vacio{color:#667085}
@media (max-width:520px){.org-h{margin-left:6px;padding-left:8px}}
/* 30. Cierres por aprobar */
.ap-panel{margin:0 0 14px;padding:12px 14px;border-left:4px solid #b54708}
.ap-panel summary{cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ap-n{background:#b54708;color:#fff;border-radius:999px;padding:1px 9px;font-weight:800;font-size:13px}
.ap-sub{flex-basis:100%;font-size:12px;color:#667085}
.ap-lista{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.ap-it{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid #e4e7ec;border-radius:10px;padding:9px 11px;flex-wrap:wrap}
.ap-tx{min-width:0;display:flex;flex-direction:column;gap:2px;font-size:13px}
.ap-tx small{color:#667085;font-size:11.5px}
.ap-bt{display:flex;gap:6px;flex-wrap:wrap}
.ap-bt button,.ap-mini button{min-height:36px}
.ap-mini{display:flex;gap:4px;margin-top:6px}
/* Firma de quien recibe (correctivos) */
.cc-firma{margin-top:12px;border:1px solid #bbf7d0;background:#f0fdf4;border-radius:10px;padding:10px 11px}
.cc-firma-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px}
.cc-firma-c{display:block;width:100%;height:120px;margin-top:6px;border:1px dashed #86efac;border-radius:8px;background:#fff;touch-action:none}
.eq-mfm{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}
.eq-mfm[hidden]{display:none}
.eq-carga{margin:10px 14px 0;padding:10px 12px;border-radius:10px;font-size:13px;background:#eef3fb;color:var(--fp-navy)}
.eq-carga.ok{background:#e9f7ef;color:#1d6b3c}.eq-carga.err{background:#fdecec;color:#a12b2b}
.eq-bulk[hidden],.eq-carga[hidden]{display:none}
.cc-paro{margin-top:10px}.cc-paro[hidden],.cc-firma[hidden]{display:none}
.eqf-auto{display:flex;gap:6px;align-items:flex-start;font-size:12.5px;font-weight:700;margin:6px 0 8px}.eqf-auto span{font-weight:400;color:var(--gris)}
.fp-row-sup{color:#64748b;background:#f8fafc}
/* Compras más recurrentes (dashboard) */
#cr-card{margin-top:14px}
.cr-res{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--fp-muted,#64748b);margin-bottom:10px}.cr-res b{color:#0f172a;font-size:15px}
.cr-p{color:#b45309}
.cr-lista{display:grid;gap:9px}
.cr-it{display:flex;gap:10px;align-items:flex-start}
.cr-n{flex:0 0 24px;height:24px;border-radius:50%;background:#fee2e2;color:#b91c1c;font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center}
.cr-m{flex:1;min-width:0}
.cr-t{display:flex;justify-content:space-between;gap:8px;font-size:13px}.cr-t b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cr-t span{flex:none;font-weight:700;color:#0f172a}
.cr-bar{height:6px;background:#f1f5f9;border-radius:99px;margin:4px 0;overflow:hidden}.cr-bar i{display:block;height:100%;background:#D40000;border-radius:99px}
.cr-s{font-size:11.5px;color:#64748b}
#cr-card .card-head button{white-space:nowrap}#cr-meses{width:auto!important;min-width:0}
.perfil-cambio{position:fixed;left:50%;top:14px;transform:translateX(-50%);z-index:5000;background:#0f172a;color:#fff;padding:12px 18px;border-radius:12px;font-size:14px;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.25);max-width:92vw}
.be-res{display:grid;gap:6px;margin-top:8px}
.be-it{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--fp-line,#e5e7eb);border-radius:10px;flex-wrap:wrap}
.be-m{flex:1;min-width:180px}.be-m b{display:block;font-size:13px}.be-m small{font-size:11.5px;color:#64748b}
.be-e{font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px}.be-e.ok{background:#dcfce7;color:#166534}.be-e.warn{background:#fef9c3;color:#854d0e}.be-e.bad{background:#fee2e2;color:#991b1b}
.be-a{display:flex;gap:6px}
/* Revisión de cierre antes de aprobar (V33.22.1) */
.ap-ov{position:fixed;inset:0;z-index:4500;background:rgba(15,23,42,.55);display:none;align-items:center;justify-content:center;padding:12px}
.ap-ov.on{display:flex}
.ap-dlg{background:#fff;border-radius:16px;width:min(860px,100%);max-height:94vh;display:flex;flex-direction:column;box-shadow:0 24px 70px rgba(0,0,0,.35);color:#0f172a}
.ap-dh{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:14px 16px;border-bottom:1px solid #eef0f3}
.ap-dh b{font-size:16px;display:block}.ap-dh small{color:#64748b;font-size:12.5px}
.ap-x{border:0;background:#f1f5f9;border-radius:10px;width:36px;height:36px;font-size:16px;cursor:pointer;min-height:0}
.ap-db{overflow:auto;padding:14px 16px}
.ap-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:#334155;margin-bottom:10px}
.ap-warn{background:#fff7ed;color:#9a3412;border-radius:10px;padding:8px 10px;font-size:13px;font-weight:600;margin:8px 0}
.ap-g{margin:10px 0}.ap-gt{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-bottom:6px}.ap-gt span{background:#f1f5f9;border-radius:99px;padding:1px 7px;margin-left:4px}
.ap-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.ap-fotos a{display:block;position:relative;border-radius:10px;overflow:hidden;background:#f1f5f9;aspect-ratio:4/3}
.ap-fotos img{width:100%;height:100%;object-fit:cover;display:block}
.ap-fotos span{position:absolute;left:0;right:0;bottom:0;background:rgba(15,23,42,.65);color:#fff;font-size:11px;padding:3px 6px}
.ap-bl{border:1px solid #eef0f3;border-radius:10px;padding:9px 11px;margin:8px 0}.ap-bl small{display:block;font-size:11px;font-weight:800;text-transform:uppercase;color:#64748b;letter-spacing:.04em}.ap-bl p{margin:4px 0 0;font-size:13.5px;white-space:pre-wrap}
.ap-firma{max-height:80px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-top:4px}
.ap-df{display:flex;justify-content:flex-end;gap:8px;align-items:center;padding:12px 16px;border-top:1px solid #eef0f3}
.ap-ya{margin-right:auto;font-weight:700;color:#16a34a}
@media (max-width:600px){.ap-ov{padding:0}.ap-dlg{border-radius:0;max-height:100vh;height:100%}.ap-fotos{grid-template-columns:repeat(2,1fr)}}
/* Avisos sin leer al principio */
.av-top{margin:0 0 14px;border-radius:14px;background:#eff6ff;border:1px solid #bfdbfe;padding:10px 12px}
.av-top.asig{background:#fff7ed;border-color:#fdba74;box-shadow:0 0 0 3px rgba(251,146,60,.15)}
.av-top-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:14px;color:#0f172a}
.av-top-h small{color:#64748b;font-size:12px}
.av-top-acc{margin-left:auto;display:flex;gap:6px}
.av-top-acc button{border:1px solid #cbd5e1;background:#fff;border-radius:9px;padding:5px 10px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.av-top-l{display:grid;gap:6px;margin-top:8px}
.av-top-it{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:11px;padding:9px 11px;font:inherit;cursor:pointer;color:#0f172a}
.av-top-it.asig{border-left:4px solid #ea580c}
.av-top-it > span:first-child{font-size:20px}
.av-top-it b{display:block;font-size:13.5px}
.av-top-it small{display:block;color:#475569;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:62vw}
.av-top-it i{margin-left:auto;font-style:normal;color:#94a3b8;font-size:20px}
@media (max-width:640px){.av-top-acc{margin-left:0;width:100%}.av-top-acc button{flex:1}}
/* Selección múltiple de PDF para Maximo */
.mx-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid #eef0f3;background:#fafbfc}
.mx-bar .mx-todos{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;cursor:pointer}
.mx-bar .mx-n{font-size:12.5px;color:#64748b;margin-right:auto}
.mx-chk{width:18px;height:18px;margin:0 8px 0 0;vertical-align:middle;cursor:pointer;accent-color:#D40000}
.mx-bar input[type=checkbox]{width:18px;height:18px;accent-color:#D40000}
.cb-cons{margin:0 0 12px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;padding:8px 12px;font-size:12.5px}.cb-cons summary{cursor:pointer;font-weight:700;color:#475569}.cb-cons-l{display:grid;gap:6px;margin-top:8px}.cb-cons-l>div{display:flex;flex-wrap:wrap;gap:6px;align-items:center}

/* V33.79 · filtros de las listas de Maximo */
.mxf-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 10px;padding:10px 16px;border-bottom:1px solid #eef0f3;background:#fff}
.mxf-bar label{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:700;color:#64748b;min-width:130px;flex:0 1 150px}
.mxf-bar label.mxf-q{flex:1 1 220px}
.mxf-bar .filter-select{width:100%;min-height:38px}
.mxf-bar .mxf-n{font-size:12px;color:#64748b;margin-left:auto;align-self:center}
@media (max-width:640px){.mxf-bar label{flex:1 1 45%}}
/* V33.88 · bandeja de compras compacta */
#cb-board .cb-cols{grid-template-columns:repeat(5,minmax(200px,1fr));gap:8px}
#cb-board .cb-col{padding:8px}
#cb-board .cb-col>p{font-size:11px;margin:1px 0 6px;line-height:1.3}
#cb-board .cb-card{padding:7px 8px;margin-bottom:6px;border-radius:8px;border-left-width:3px}
#cb-board .cb-t{font-size:12.5px;line-height:1.25;gap:6px}
#cb-board .cb-t b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:700}
#cb-board .cb-t span{font-size:11.5px}
#cb-board .cb-s{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
#cb-board .cb-s,#cb-board .cb-m{font-size:11px;line-height:1.3;margin-top:1px}
#cb-board .cb-m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#cb-board .cb-bs{margin-top:4px;gap:3px}
#cb-board .cb-b{font-size:10px;padding:0 6px}
#cb-board .cb-a{margin-top:6px;gap:4px}
#cb-board .cb-a .btn-sm{min-height:30px;padding:4px 9px;font-size:11.5px;border-radius:7px;box-shadow:none}
#cb-board .cb-ver{border:1px solid #cbd5e1;background:#fff;border-radius:7px;padding:4px 8px;font-size:11.5px;font-weight:600;cursor:pointer;min-height:30px;color:#1e293b}
#cb-board .cb-ver:hover{background:#f1f5f9}
#cb-board .cb-x{font-size:16px}
