.eqa-iot-shell{--eqa-ink:#17212b;--eqa-muted:#66707a;--eqa-line:#dfe5e8;--eqa-card:#fff;--eqa-bg:#f5f7f8;--eqa-orange:#e76f00;--eqa-green:#198754;--eqa-yellow:#d28a00;--eqa-red:#c9352b;--eqa-blue:#246b9f;font-family:Arial,Helvetica,sans-serif;color:var(--eqa-ink);max-width:1400px;margin:0 auto}.eqa-iot-shell *{box-sizing:border-box}.eqa-iot-loading{padding:28px;background:var(--eqa-bg);border:1px solid var(--eqa-line);border-radius:12px}.eqa-iot-topbar{display:flex;gap:18px;justify-content:space-between;align-items:flex-start;margin:0 0 18px}.eqa-iot-title h2{font-size:24px;margin:0 0 5px}.eqa-iot-title p{margin:0;color:var(--eqa-muted)}.eqa-iot-live-meta{font-size:12px;color:var(--eqa-muted);text-align:right}.eqa-iot-status{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;font-weight:700;font-size:12px}.eqa-iot-status.normal{background:#e7f5ee;color:#12663f}.eqa-iot-status.warning{background:#fff4d8;color:#8d5c00}.eqa-iot-status.critical{background:#ffebe9;color:#a42b23}.eqa-iot-status.invalid{background:#edf0f2;color:#55606b}.eqa-iot-grid{display:grid;gap:16px}.eqa-iot-grid.kpis{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:16px}.eqa-iot-card{background:var(--eqa-card);border:1px solid var(--eqa-line);border-radius:12px;padding:16px;box-shadow:0 1px 2px rgba(0,0,0,.03)}.eqa-iot-card h3{font-size:15px;margin:0 0 13px}.eqa-iot-kpi-label{font-size:12px;color:var(--eqa-muted);margin-bottom:8px}.eqa-iot-kpi-value{font-size:28px;font-weight:700;line-height:1.05}.eqa-iot-kpi-sub{font-size:12px;color:var(--eqa-muted);margin-top:7px}.eqa-iot-sections{display:grid;grid-template-columns:1.7fr 1fr;gap:16px}.eqa-iot-temperatures{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.eqa-iot-temperature{border:1px solid var(--eqa-line);border-radius:10px;padding:13px;min-height:118px}.eqa-iot-temperature.normal{border-top:4px solid var(--eqa-green)}.eqa-iot-temperature.warning{border-top:4px solid var(--eqa-yellow)}.eqa-iot-temperature.critical{border-top:4px solid var(--eqa-red)}.eqa-iot-temperature.invalid{border-top:4px solid #8c969f;background:#fafbfc}.eqa-iot-tag{font-size:11px;color:var(--eqa-muted);margin-bottom:6px}.eqa-iot-zone{font-size:13px;font-weight:700}.eqa-iot-temp-value{font-size:25px;font-weight:700;margin:11px 0 5px}.eqa-iot-state{font-size:11px;font-weight:700;text-transform:uppercase}.eqa-iot-list{margin:0;padding:0;list-style:none}.eqa-iot-list li{padding:10px 0;border-bottom:1px solid var(--eqa-line);display:flex;justify-content:space-between;gap:12px;font-size:13px}.eqa-iot-list li:last-child{border-bottom:0}.eqa-iot-badge{border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;white-space:nowrap}.eqa-iot-badge.warning{background:#fff4d8;color:#8d5c00}.eqa-iot-badge.critical{background:#ffebe9;color:#a42b23}.eqa-iot-badge.normal{background:#e7f5ee;color:#12663f}.eqa-iot-empty{padding:18px;background:#f7faf8;color:#386346;border-radius:8px;font-size:13px}.eqa-iot-process-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.eqa-iot-burner{border:1px solid var(--eqa-line);padding:14px;border-radius:10px}.eqa-iot-burner.interlock{border-color:var(--eqa-yellow);background:#fffdf6}.eqa-iot-burner.fault{border-color:var(--eqa-red);background:#fff8f7}.eqa-iot-burner h4{margin:0 0 5px;font-size:15px}.eqa-iot-burner-zone{font-size:12px;color:var(--eqa-muted);margin-bottom:11px}.eqa-iot-burner-state{font-size:12px;display:flex;justify-content:space-between;padding:4px 0}.eqa-iot-toggle{font-weight:700}.eqa-iot-on{color:var(--eqa-green)}.eqa-iot-off{color:var(--eqa-muted)}.eqa-iot-problem{color:var(--eqa-red)}.eqa-iot-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.eqa-iot-toolbar .eqa-iot-button{border:1px solid var(--eqa-line);background:#fff;border-radius:8px;padding:8px 12px;cursor:pointer;font-size:13px}.eqa-iot-toolbar .eqa-iot-button.active{background:var(--eqa-orange);border-color:var(--eqa-orange);color:#fff}.eqa-iot-chart{width:100%;height:340px;border:1px solid var(--eqa-line);border-radius:10px;padding:8px;background:#fff}.eqa-iot-chart svg{width:100%;height:100%;display:block}.eqa-iot-legend{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0 0;font-size:12px}.eqa-iot-legend span{display:inline-flex;align-items:center;gap:5px}.eqa-iot-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot-1{background:#e76f00}.dot-2{background:#246b9f}.dot-3{background:#198754}.dot-4{background:#8d4d9e}.dot-5{background:#a34d1d}.eqa-iot-quality-row{border-left:4px solid #7b858e;background:#fafbfc;padding:12px;margin:10px 0;border-radius:0 8px 8px 0}.eqa-iot-error{border:1px solid #f2b7b2;background:#fff3f2;color:#8d261f;border-radius:10px;padding:16px}.eqa-iot-states{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.eqa-iot-state-item{border:1px solid var(--eqa-line);padding:11px;border-radius:8px;font-size:13px}.eqa-iot-state-item small{display:block;color:var(--eqa-muted);margin-top:5px}@media(max-width:1000px){.eqa-iot-grid.kpis,.eqa-iot-temperatures{grid-template-columns:repeat(3,minmax(0,1fr))}.eqa-iot-sections{grid-template-columns:1fr}.eqa-iot-process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.eqa-iot-topbar,.eqa-iot-toolbar{display:block}.eqa-iot-live-meta{text-align:left;margin-top:10px}.eqa-iot-grid.kpis,.eqa-iot-temperatures,.eqa-iot-process-grid,.eqa-iot-states{grid-template-columns:1fr}.eqa-iot-card{padding:13px}}
.eqa-iot-dot.dot-5{background:#a34d1d}
.eqa-iot-temperature small{display:block;margin-top:6px;color:#66707a;font-size:11px;font-weight:500}
.eqa-iot-badge.stale{background:#edf0f2;color:#55606b}.eqa-iot-badge.live{background:#e7f5ee;color:#12663f}.eqa-iot-badge.demo{background:#eaf2ff;color:#1d5f92}.eqa-iot-badge.unknown{background:#fff4d8;color:#8d5c00}.eqa-iot-history-notice{margin:0 0 16px;border:1px solid #d6dde2;border-left:4px solid #7b858e;background:#f5f7f8;color:#45515c;border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.5}.eqa-iot-temperature.historical{border-top:4px solid #7b858e;background:#fafbfc}.eqa-iot-card-historical{background:#fafbfc}.eqa-iot-burner.historical,.eqa-iot-state-item.historical{background:#fafbfc;border-color:#d6dde2}.eqa-iot-history-text{color:#55606b}.eqa-iot-kpi-value{word-break:break-word}

.eqa-iot-unknown{color:#8d5c00;background:#fff4d8;border-radius:999px;padding:2px 7px;font-size:11px}.eqa-iot-burner-raw{margin-top:8px;padding-top:8px;border-top:1px dashed #dfe5e8;color:#66707a;font-size:10px;line-height:1.35}

.eqa-iot-list .eqa-iot-badge.normal{background:#e7f5ee;color:#12663f}.eqa-iot-list .eqa-iot-badge.unknown{background:#fff4d8;color:#8d5c00}.eqa-iot-burner-state .eqa-iot-problem{font-weight:700}.eqa-iot-burner-raw strong{color:#8d5c00}


/* Diagnóstico de respuestas REST no válidas (v0.3.8) */
.eqa-iot-error span{line-height:1.55}
.eqa-iot-error-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.eqa-iot-diagnostics{margin-top:16px;padding:12px 14px;border:1px solid rgba(142,38,31,.2);border-radius:10px;background:rgba(255,255,255,.7);font-size:13px;color:#343a40}
.eqa-iot-diagnostics summary{cursor:pointer;font-weight:700;color:#842029}
.eqa-iot-diagnostics dl{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr);gap:8px 14px;margin:14px 0 8px}
.eqa-iot-diagnostics dt{font-weight:700}
.eqa-iot-diagnostics dd{margin:0;min-width:0;overflow-wrap:anywhere}
.eqa-iot-diagnostics code{white-space:normal;overflow-wrap:anywhere;font-size:12px}
.eqa-iot-diagnostics p{margin:10px 0 0;color:#66707a;font-size:12px}
@media (max-width:680px){.eqa-iot-diagnostics dl{grid-template-columns:1fr}.eqa-iot-diagnostics dd{margin-bottom:6px}}


/* Aplicación frontal unificada (v0.4.0) */
.eqa-iot-app-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 18px;border:1px solid var(--eqa-line);border-bottom:0;border-radius:14px 14px 0 0;background:#fff}
.eqa-iot-app-brand{display:grid;gap:3px;min-width:0}.eqa-iot-app-brand strong{font-size:19px;line-height:1.2}.eqa-iot-app-brand span{font-size:12px;color:var(--eqa-muted);overflow-wrap:anywhere}.eqa-iot-app-eyebrow{font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--eqa-orange)}
.eqa-iot-app-summary{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.eqa-iot-app-summary small{display:block;width:100%;text-align:right;color:var(--eqa-muted);margin-top:2px}.eqa-iot-app-summary .eqa-iot-button{padding:6px 9px;background:#fff;border:1px solid var(--eqa-line);border-radius:7px;cursor:pointer;font-size:11px}
.eqa-iot-tabs{display:flex;gap:4px;overflow-x:auto;padding:0 10px;border:1px solid var(--eqa-line);background:#f7f9fa;scrollbar-width:thin}.eqa-iot-tab{appearance:none;border:0;border-bottom:3px solid transparent;background:transparent;color:#52606b;cursor:pointer;font-size:13px;font-weight:700;padding:14px 13px 11px;white-space:nowrap}.eqa-iot-tab:hover{color:var(--eqa-ink);background:#fff}.eqa-iot-tab.active{border-bottom-color:var(--eqa-orange);background:#fff;color:var(--eqa-ink)}.eqa-iot-tab:focus-visible{outline:2px solid var(--eqa-blue);outline-offset:-2px}.eqa-iot-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;margin-left:4px;padding:0 5px;border-radius:999px;background:#ffebe9;color:#a42b23;font-size:10px}
.eqa-iot-app-content{padding:20px 18px 24px;border:1px solid var(--eqa-line);border-top:0;border-radius:0 0 14px 14px;background:var(--eqa-bg)}.eqa-iot-app-content>.eqa-iot-topbar:first-child{margin-top:0}
@media(max-width:760px){.eqa-iot-app-header{align-items:flex-start;padding:14px}.eqa-iot-app-summary{max-width:48%}.eqa-iot-app-summary small{text-align:left}.eqa-iot-app-content{padding:14px 10px 18px}.eqa-iot-tabs{padding:0 4px}.eqa-iot-tab{padding-left:10px;padding-right:10px}}
@media(max-width:520px){.eqa-iot-app-header{display:block}.eqa-iot-app-summary{justify-content:flex-start;max-width:none;margin-top:12px}.eqa-iot-app-summary small{width:100%}}


/* Logo configurable de la empresa en el frontend (v0.4.1) */
.eqa-iot-app-identity{display:flex;align-items:center;gap:16px;min-width:0}
.eqa-iot-company-logo{display:flex;align-items:center;justify-content:flex-start;flex:0 0 auto;width:var(--eqa-company-logo-width,180px);max-width:36vw}
.eqa-iot-company-logo img{display:block;width:100%;height:auto;max-height:86px;object-fit:contain;object-position:left center}
@media(max-width:760px){.eqa-iot-app-identity{gap:11px}.eqa-iot-company-logo{width:var(--eqa-company-logo-mobile-width,120px);max-width:34vw}.eqa-iot-company-logo img{max-height:64px}}
@media(max-width:520px){.eqa-iot-app-identity{align-items:flex-start}.eqa-iot-company-logo{max-width:42vw}}

/* Formularios operativos configurables (v0.5.1) */
.eqa-iot-forms-view{display:grid;gap:16px}
.eqa-iot-form-chooser{display:flex;gap:8px;flex-wrap:wrap;padding:10px;border:1px solid var(--eqa-line);border-radius:10px;background:#fff}
.eqa-iot-form-chooser .eqa-iot-button{border:1px solid var(--eqa-line);background:#fff;border-radius:8px;padding:8px 12px;cursor:pointer;font-size:13px}
.eqa-iot-form-chooser .eqa-iot-button.active{background:var(--eqa-orange);border-color:var(--eqa-orange);color:#fff}
.eqa-iot-form-card{padding:20px}
.eqa-iot-form-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid var(--eqa-line)}
.eqa-iot-form-heading h2{margin:4px 0 6px;font-size:22px}
.eqa-iot-form-heading p{margin:0;color:var(--eqa-muted);font-size:13px;line-height:1.5;max-width:760px}
.eqa-iot-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}
.eqa-iot-form-field{min-width:0}
.eqa-iot-form-field>label{display:block;margin-bottom:7px;font-size:13px;font-weight:700;color:var(--eqa-ink)}
.eqa-iot-form-control{display:flex;align-items:stretch;min-width:0}
.eqa-iot-form-field input[type="text"],.eqa-iot-form-field input[type="email"],.eqa-iot-form-field input[type="number"],.eqa-iot-form-field input[type="date"],.eqa-iot-form-field input[type="time"],.eqa-iot-form-field input[type="datetime-local"],.eqa-iot-form-field select,.eqa-iot-form-field textarea{display:block;width:100%;min-width:0;min-height:42px;padding:9px 11px;border:1px solid #cbd4d9;border-radius:8px;background:#fff;color:var(--eqa-ink);font:inherit;font-size:14px;box-shadow:none}
.eqa-iot-form-field textarea{resize:vertical;line-height:1.45}
.eqa-iot-form-field input:focus,.eqa-iot-form-field select:focus,.eqa-iot-form-field textarea:focus{outline:2px solid rgba(36,107,159,.18);border-color:var(--eqa-blue)}
.eqa-iot-form-unit{display:flex;align-items:center;padding:0 11px;margin-left:-1px;border:1px solid #cbd4d9;border-radius:0 8px 8px 0;background:#f4f6f7;color:#52606b;font-size:13px;font-weight:700;white-space:nowrap}
.eqa-iot-form-control:has(.eqa-iot-form-unit) input{border-radius:8px 0 0 8px}
.eqa-iot-required{color:var(--eqa-red)}
.eqa-iot-form-help{display:block;margin-top:6px;color:var(--eqa-muted);font-size:11px;line-height:1.4}
.eqa-iot-field-error{min-height:16px;margin-top:4px;color:var(--eqa-red);font-size:11px;font-weight:700}
.eqa-iot-form-field.has-error input,.eqa-iot-form-field.has-error select,.eqa-iot-form-field.has-error textarea{border-color:var(--eqa-red);background:#fff8f7}
.eqa-iot-form-field-checkbox{grid-column:1/-1;padding:12px 14px;border:1px solid var(--eqa-line);border-radius:9px;background:#fafbfc}
.eqa-iot-checkbox{display:flex!important;align-items:flex-start;gap:9px;margin:0!important;font-weight:600!important;cursor:pointer}
.eqa-iot-checkbox input{margin-top:2px}
.eqa-iot-radio-group{display:flex;gap:14px;flex-wrap:wrap;padding:10px 12px;border:1px solid #cbd4d9;border-radius:8px;background:#fff}
.eqa-iot-radio-group label{display:flex;align-items:center;gap:5px;font-size:13px}
.eqa-iot-form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--eqa-line)}
.eqa-iot-form-actions .eqa-iot-button{border:1px solid var(--eqa-line);background:#fff;border-radius:8px;padding:10px 15px;cursor:pointer;font-size:13px;font-weight:700}
.eqa-iot-form-actions .eqa-iot-submit{background:var(--eqa-orange);border-color:var(--eqa-orange);color:#fff}
.eqa-iot-form-actions .eqa-iot-button:disabled{opacity:.6;cursor:wait}
.eqa-iot-form-feedback{margin-top:14px}
.eqa-iot-form-message{padding:12px 14px;border-radius:9px;font-size:13px;line-height:1.45}
.eqa-iot-form-message.success{border:1px solid #add8c3;background:#edf8f2;color:#12663f}
.eqa-iot-form-message.error{border:1px solid #f2b7b2;background:#fff3f2;color:#8d261f}
.eqa-iot-form-note p{margin:0;color:var(--eqa-muted);font-size:13px;line-height:1.55}
@media(max-width:760px){.eqa-iot-form-grid{grid-template-columns:1fr}.eqa-iot-form-heading{display:block}.eqa-iot-form-heading .eqa-iot-badge{display:inline-flex;margin-top:10px}.eqa-iot-form-card{padding:14px}}

/* Historial de alarmas y datos no disponibles (v0.6.0) */
.eqa-iot-temperature.unavailable{border-top:4px solid #8c969f;background:#fafbfc}
.eqa-iot-table-wrap{width:100%;overflow-x:auto}
.eqa-iot-history-table{width:100%;border-collapse:collapse;font-size:12px;min-width:760px}
.eqa-iot-history-table th,.eqa-iot-history-table td{padding:11px 10px;border-bottom:1px solid var(--eqa-line);text-align:left;vertical-align:top}
.eqa-iot-history-table th{background:#f7f9fa;color:#52606b;font-size:11px;text-transform:uppercase;letter-spacing:.03em}
.eqa-iot-history-table tbody tr:last-child td{border-bottom:0}
.eqa-iot-history-table small{color:var(--eqa-muted)}
.eqa-iot-alarm-history .eqa-iot-form-heading{margin-bottom:8px;padding-bottom:12px}
.eqa-iot-alarm-history .eqa-iot-form-heading h3{margin:0 0 5px}
.eqa-iot-alarm-history .eqa-iot-form-heading p{margin:0;color:var(--eqa-muted);font-size:12px}

/* Analítica, filtros y auditoría de alarmas (v0.7.0) */
.eqa-iot-alarm-analysis{display:grid;gap:16px;margin-top:16px}
.eqa-iot-alarm-analysis-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.eqa-iot-alarm-analysis-head h2{margin:4px 0 7px;font-size:22px}
.eqa-iot-alarm-analysis-head p{margin:0;color:var(--eqa-muted);font-size:12px;line-height:1.5}
.eqa-iot-alarm-periods,.eqa-iot-export-actions,.eqa-iot-alarm-filter-actions,.eqa-iot-alarm-pagination{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.eqa-iot-alarm-periods .eqa-iot-button,.eqa-iot-export-actions .eqa-iot-button,.eqa-iot-alarm-filter-actions .eqa-iot-button,.eqa-iot-alarm-pagination .eqa-iot-button{border:1px solid var(--eqa-line);background:#fff;border-radius:8px;padding:8px 11px;cursor:pointer;font-size:12px;font-weight:700}
.eqa-iot-alarm-periods .eqa-iot-button.active,.eqa-iot-alarm-filter-actions .eqa-iot-button.active,.eqa-iot-alarm-pagination .eqa-iot-button.active{background:var(--eqa-orange);border-color:var(--eqa-orange);color:#fff}
.eqa-iot-alarm-pagination .eqa-iot-button:disabled{opacity:.45;cursor:not-allowed}
.eqa-iot-alarm-filters{display:grid;grid-template-columns:1.35fr repeat(6,minmax(125px,1fr));gap:11px;padding:15px;border:1px solid var(--eqa-line);border-radius:12px;background:#fff}
.eqa-iot-alarm-filters label{display:block;min-width:0}
.eqa-iot-alarm-filters label>span{display:block;margin-bottom:6px;color:var(--eqa-muted);font-size:11px;font-weight:700}
.eqa-iot-alarm-filters input,.eqa-iot-alarm-filters select{display:block;width:100%;height:39px;min-width:0;padding:8px 9px;border:1px solid #cbd4d9;border-radius:8px;background:#fff;color:var(--eqa-ink);font:inherit;font-size:12px}
.eqa-iot-alarm-filter-actions{grid-column:1/-1;padding-top:3px}
.eqa-iot-alarm-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}
.eqa-iot-insight-card{margin-bottom:16px;border-left:4px solid var(--eqa-blue)}
.eqa-iot-insight-card ul{margin:0;padding-left:20px;color:#34414c;font-size:13px;line-height:1.6}
.eqa-iot-insight-card p{margin:10px 0 0;color:var(--eqa-muted);font-size:11px;line-height:1.5}
.eqa-iot-alarm-chart-card,.eqa-iot-alarm-audit{margin-top:16px}
.eqa-iot-alarm-chart-card .eqa-iot-form-heading,.eqa-iot-alarm-audit .eqa-iot-form-heading{margin-bottom:12px;padding-bottom:12px}
.eqa-iot-alarm-chart-card .eqa-iot-form-heading h3,.eqa-iot-alarm-audit .eqa-iot-form-heading h3{margin:0 0 5px}
.eqa-iot-alarm-chart-card .eqa-iot-form-heading p,.eqa-iot-alarm-audit .eqa-iot-form-heading p{margin:0;color:var(--eqa-muted);font-size:12px}
.eqa-iot-alarm-chart{width:100%;min-height:330px;border:1px solid var(--eqa-line);border-radius:10px;padding:8px;background:#fff}
.eqa-iot-alarm-chart svg{display:block;width:100%;height:300px}
.eqa-iot-alarm-chart-legend{display:flex;gap:10px 16px;flex-wrap:wrap;padding:8px 7px 2px;font-size:11px;color:#52606b}
.eqa-iot-alarm-chart-legend span{display:inline-flex;align-items:center;gap:6px}
.eqa-iot-alarm-chart-legend i{display:inline-block;width:10px;height:10px;border-radius:2px}
.eqa-iot-alarm-pagination{justify-content:center;padding-top:15px}
.eqa-iot-alarm-pagination>span{color:var(--eqa-muted);font-size:12px}
@media(max-width:1180px){.eqa-iot-alarm-filters{grid-template-columns:repeat(4,minmax(140px,1fr))}.eqa-iot-alarm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.eqa-iot-alarm-analysis-head{display:block}.eqa-iot-alarm-periods{margin-top:12px}.eqa-iot-alarm-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.eqa-iot-alarm-kpis{grid-template-columns:1fr}.eqa-iot-export-actions{margin-top:10px}.eqa-iot-alarm-chart svg{height:260px}}
@media(max-width:480px){.eqa-iot-alarm-filters{grid-template-columns:1fr}.eqa-iot-alarm-chart{overflow-x:auto}.eqa-iot-alarm-chart svg{min-width:760px}.eqa-iot-alarm-pagination{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}.eqa-iot-alarm-pagination .eqa-iot-button{white-space:nowrap}}

/* Perfil EQA Quemador 91 */
.eqa-iot-card-alert{border-left:4px solid #a42b23;background:#fff8f7}

/* Multiaplicación / selector de clientes (v0.9.0) */
.eqa-iot-application-switcher{display:flex;align-items:center;gap:8px;margin-top:8px;width:max-content;max-width:100%;font-size:11px;color:var(--eqa-muted);font-weight:700}
.eqa-iot-application-switcher span{white-space:nowrap}
.eqa-iot-application-switcher select{min-width:190px;max-width:320px;height:32px;padding:4px 28px 4px 8px;border:1px solid var(--eqa-line);border-radius:7px;background:#fff;color:var(--eqa-ink);font-size:12px;font-weight:700}
@media(max-width:620px){.eqa-iot-application-switcher{width:100%;align-items:flex-start;flex-direction:column;gap:4px}.eqa-iot-application-switcher select{width:100%;max-width:100%}}

/* Memoria de proceso · Quemador 91 (v0.9.1) */
.eqa-iot-burner91-hero{display:grid;grid-template-columns:1.35fr repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.eqa-iot-process-phase{border-left:4px solid var(--eqa-orange)}.eqa-iot-process-phase .eqa-iot-kpi-value{font-size:27px}.eqa-iot-process-milestones-card{margin-bottom:16px}.eqa-iot-milestones{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.eqa-iot-milestone{border:1px solid var(--eqa-line);border-radius:9px;padding:12px;background:#fafbfc}.eqa-iot-milestone span,.eqa-iot-process-current span,.eqa-iot-process-last span{display:block;color:var(--eqa-muted);font-size:11px;margin-bottom:5px}.eqa-iot-milestone strong{display:block;font-size:13px;line-height:1.35}.eqa-iot-milestone small{display:block;color:var(--eqa-muted);margin-top:5px}.eqa-iot-burner91-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,.8fr);gap:16px;align-items:start}.eqa-iot-process-sidebar{display:grid;gap:16px}.eqa-iot-process-states{grid-template-columns:repeat(2,minmax(0,1fr))}.eqa-iot-process-state-card{padding:13px;position:relative;overflow:hidden}.eqa-iot-process-state-card.is-active{border-color:#87caa6;background:#f3fbf6;box-shadow:inset 4px 0 0 var(--eqa-green)}.eqa-iot-process-state-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.eqa-iot-process-state-head>div:first-child{min-width:0}.eqa-iot-process-state-head>div:first-child>strong{display:block;font-size:13px}.eqa-iot-process-state-head small{display:block;margin-top:4px;color:var(--eqa-muted);font-size:10px;line-height:1.35}.eqa-iot-process-current{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--eqa-line);margin-top:11px;padding-top:9px}.eqa-iot-process-current span{margin:0}.eqa-iot-process-current strong{font-size:13px}.eqa-iot-process-last{border-top:1px dashed var(--eqa-line);margin-top:9px;padding-top:9px}.eqa-iot-process-last strong{display:block;font-size:12px;line-height:1.35}.eqa-iot-process-last small{display:block;color:var(--eqa-muted);font-size:10px;margin-top:3px}.eqa-iot-process-events{display:grid;gap:8px}.eqa-iot-process-event{display:flex;gap:9px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--eqa-line)}.eqa-iot-process-event:last-child{border-bottom:0}.eqa-iot-process-event-index{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;border-radius:50%;background:#edf0f2;font-size:10px;font-weight:700;flex:0 0 auto}.eqa-iot-process-event strong{display:block;font-size:12px}.eqa-iot-process-event small{display:block;color:var(--eqa-muted);font-size:10px;margin-top:3px}.eqa-iot-process-alerts{display:grid;gap:8px}.eqa-iot-process-alerts>div{display:flex;justify-content:space-between;gap:10px;align-items:center;border-bottom:1px solid var(--eqa-line);padding-bottom:8px}.eqa-iot-process-alerts>div:last-child{border-bottom:0}.eqa-iot-card-alert{border-color:#efb2ac;background:#fff8f7}
@media(max-width:1200px){.eqa-iot-burner91-hero{grid-template-columns:repeat(3,minmax(0,1fr))}.eqa-iot-process-phase{grid-column:span 2}.eqa-iot-milestones{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.eqa-iot-burner91-layout{grid-template-columns:1fr}.eqa-iot-burner91-hero{grid-template-columns:repeat(2,minmax(0,1fr))}.eqa-iot-process-phase{grid-column:span 2}}
@media(max-width:620px){.eqa-iot-burner91-hero,.eqa-iot-milestones,.eqa-iot-process-states{grid-template-columns:1fr}.eqa-iot-process-phase{grid-column:auto}.eqa-iot-process-state-head{display:block}.eqa-iot-process-state-head .eqa-iot-toggle{display:inline-block;margin-top:7px}}


/* Acceso frontal al monitor (v0.9.2.2) */
.eqa-iot-login-shell{max-width:620px;margin:18px 0 28px}
.eqa-iot-login-card{background:#fff;border:1px solid var(--eqa-line);border-radius:14px;padding:28px;box-shadow:0 7px 24px rgba(23,33,43,.07)}
.eqa-iot-login-eyebrow{font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--eqa-orange);margin-bottom:8px}
.eqa-iot-login-card h2{margin:0 0 8px;font-size:25px;line-height:1.15;color:var(--eqa-ink)}
.eqa-iot-login-intro,.eqa-iot-login-card>p{margin:0 0 22px;color:var(--eqa-muted);font-size:14px;line-height:1.5}
.eqa-iot-login-message{margin:0 0 18px;padding:11px 13px;border:1px solid #f2b7b2;background:#fff3f2;color:#8d261f;border-radius:8px;font-size:13px;font-weight:700}
.eqa-iot-login-field{display:block;margin-bottom:15px}
.eqa-iot-login-field>span{display:block;margin-bottom:6px;font-size:12px;font-weight:700;color:var(--eqa-ink)}
.eqa-iot-login-field input{display:block;width:100%;height:44px;padding:8px 11px;border:1px solid #cfd7dc;border-radius:8px;background:#fff;color:var(--eqa-ink);font:inherit;outline:none}
.eqa-iot-login-field input:focus{border-color:var(--eqa-orange);box-shadow:0 0 0 3px rgba(231,111,0,.12)}
.eqa-iot-login-remember{display:flex;align-items:center;gap:8px;margin:2px 0 18px;font-size:12px;color:var(--eqa-muted);cursor:pointer}
.eqa-iot-login-remember input{margin:0}
.eqa-iot-login-submit{display:inline-flex;align-items:center;justify-content:center;min-width:130px;height:42px;padding:0 20px;border:1px solid var(--eqa-orange);border-radius:8px;background:var(--eqa-orange);color:#fff;font-size:13px;font-weight:800;cursor:pointer}
.eqa-iot-login-submit:hover{filter:brightness(.96)}
.eqa-iot-access-card .eqa-iot-login-help{margin-top:-8px;margin-bottom:18px;font-size:13px}
.eqa-iot-login-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border:1px solid var(--eqa-line);border-radius:8px;background:#fff;color:var(--eqa-ink);text-decoration:none;font-size:12px;font-weight:700}
@media(max-width:620px){.eqa-iot-login-shell{margin:12px 0 20px}.eqa-iot-login-card{padding:20px 16px}.eqa-iot-login-card h2{font-size:22px}.eqa-iot-login-submit{width:100%}}

/* v0.10 · compact MySQL analytics */
.eqa-iot-analytics-kpis{margin-bottom:16px}.eqa-iot-analytics-insights-card{margin-bottom:16px}.eqa-iot-insights-list{display:grid;gap:10px}.eqa-iot-insight{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:flex-start;border:1px solid var(--eqa-line);border-radius:10px;padding:12px;background:#fff}.eqa-iot-insight.normal{border-left:4px solid #3b7d56}.eqa-iot-insight.warning{border-left:4px solid #bd7b16}.eqa-iot-insight.critical{border-left:4px solid #b7332a}.eqa-iot-insight strong{display:block;font-size:13px}.eqa-iot-insight p{margin:4px 0 0;color:var(--eqa-muted);font-size:12px;line-height:1.45}.eqa-iot-analytics-two{margin-top:16px}.eqa-iot-analytics-bars{display:grid;gap:11px;margin-top:15px}.eqa-iot-analytics-bar-row{display:grid;grid-template-columns:minmax(90px,140px) 1fr minmax(70px,auto);gap:10px;align-items:center;font-size:12px}.eqa-iot-analytics-bar-track{height:10px;background:#edf0f2;border-radius:999px;overflow:hidden}.eqa-iot-analytics-bar-track i{display:block;height:100%;background:currentColor;opacity:.7;border-radius:999px}.eqa-iot-analytics-bar-row strong{text-align:right;font-size:12px}.eqa-iot-analytics-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.eqa-iot-analytics-detail>div{border:1px solid var(--eqa-line);border-radius:9px;padding:11px}.eqa-iot-analytics-detail span{display:block;color:var(--eqa-muted);font-size:11px;margin-bottom:4px}.eqa-iot-analytics-detail strong{font-size:15px}.eqa-iot-storage-note{margin-top:16px;border:1px dashed var(--eqa-line);border-radius:10px;padding:12px 14px;color:var(--eqa-muted);font-size:11px;line-height:1.5;background:#fafbfc}.eqa-iot-storage-note strong{color:var(--eqa-ink)}
@media(max-width:700px){.eqa-iot-analytics-bar-row{grid-template-columns:90px 1fr 64px}.eqa-iot-analytics-detail{grid-template-columns:1fr}}
.eqa-iot-analytics-bar-row strong small{display:block;margin-top:2px;color:var(--eqa-muted);font-size:9px;font-weight:500;white-space:nowrap}.eqa-iot-analytics-comparison strong{display:block}.eqa-iot-analytics-comparison small{display:block;margin-top:4px;color:var(--eqa-muted);font-size:10px;line-height:1.35}

/* ============================================================
 * v0.10.1 · Soft Industrial UI
 * Inspirado en neumorphism, manteniendo contraste operativo.
 * ============================================================ */
.eqa-iot-shell{
  --eqa-ink:#17191d;
  --eqa-muted:#626971;
  --eqa-line:rgba(95,101,108,.16);
  --eqa-card:#f0f0ee;
  --eqa-bg:#e9e9e6;
  --eqa-surface:#efefed;
  --eqa-surface-hi:#f7f7f5;
  --eqa-orange:#d86b18;
  --eqa-green:#27724d;
  --eqa-yellow:#a96f12;
  --eqa-red:#a7342d;
  --eqa-blue:#496c87;
  --eqa-soft-shadow:10px 10px 22px rgba(147,147,140,.28),-9px -9px 20px rgba(255,255,255,.82);
  --eqa-soft-shadow-sm:5px 5px 12px rgba(147,147,140,.24),-5px -5px 12px rgba(255,255,255,.76);
  --eqa-soft-inset:inset 3px 3px 7px rgba(155,155,149,.23),inset -3px -3px 7px rgba(255,255,255,.78);
  --eqa-radius:18px;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  background:var(--eqa-bg);
  padding:18px;
  border-radius:26px;
}
.eqa-iot-shell *{scrollbar-color:#b9b9b4 transparent}
.eqa-iot-app-content{background:var(--eqa-bg);border:0;padding:22px 18px 28px;border-radius:0 0 24px 24px}
.eqa-iot-app-header{
  background:var(--eqa-bg);border:0;border-radius:24px 24px 0 0;padding:20px 22px 17px;
}
.eqa-iot-app-brand strong{font-size:21px;letter-spacing:-.02em;color:var(--eqa-ink)}
.eqa-iot-app-brand span{color:var(--eqa-muted)}
.eqa-iot-app-eyebrow{color:#5e6369;letter-spacing:.08em}
.eqa-iot-title h2{font-size:25px;letter-spacing:-.03em;color:var(--eqa-ink)}
.eqa-iot-title p{color:var(--eqa-muted)}
.eqa-iot-tabs{
  gap:9px;padding:7px 18px 13px;background:var(--eqa-bg);border:0;overflow-x:auto;
}
.eqa-iot-tab{
  border:0!important;border-radius:999px!important;padding:10px 16px!important;background:var(--eqa-surface)!important;
  color:#50565d!important;box-shadow:var(--eqa-soft-shadow-sm);transition:transform .15s ease,box-shadow .15s ease,color .15s ease;
}
.eqa-iot-tab:hover{transform:translateY(-1px);color:var(--eqa-ink)!important}
.eqa-iot-tab.active{
  color:var(--eqa-ink)!important;background:var(--eqa-surface)!important;box-shadow:var(--eqa-soft-inset)!important;
}
.eqa-iot-tab:focus-visible{outline:2px solid rgba(73,108,135,.55);outline-offset:3px}
.eqa-iot-tab-count{box-shadow:none;background:#eadad8;color:#8e302b}

.eqa-iot-card,
.eqa-iot-login-card,
.eqa-iot-form-card,
.eqa-iot-quality-row,
.eqa-iot-history-notice,
.eqa-iot-storage-note{
  background:var(--eqa-surface);border:1px solid rgba(255,255,255,.7);border-radius:var(--eqa-radius);
  box-shadow:var(--eqa-soft-shadow);
}
.eqa-iot-card{padding:18px}
.eqa-iot-card h2,.eqa-iot-card h3,.eqa-iot-card h4{color:var(--eqa-ink);letter-spacing:-.01em}
.eqa-iot-card h3{font-size:15px}
.eqa-iot-kpi-label{color:#686e75;font-weight:650;letter-spacing:.01em}
.eqa-iot-kpi-value{color:#111317;letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.eqa-iot-kpi-sub{color:#6d737a;line-height:1.4}

.eqa-iot-grid{gap:18px}.eqa-iot-grid.kpis{gap:18px;margin-bottom:18px}.eqa-iot-sections{gap:18px}
.eqa-iot-burner91-hero{gap:18px;margin-bottom:18px}
.eqa-iot-process-milestones-card{margin-bottom:18px}
.eqa-iot-burner91-layout{gap:18px}
.eqa-iot-process-sidebar{gap:18px}

/* Tarjetas interiores hundidas: etapas, temperaturas, hitos y detalles */
.eqa-iot-temperature,
.eqa-iot-state-item,
.eqa-iot-burner,
.eqa-iot-milestone,
.eqa-iot-analytics-detail>div,
.eqa-iot-insight{
  background:var(--eqa-surface);border:1px solid rgba(255,255,255,.68);border-radius:14px;
  box-shadow:var(--eqa-soft-inset);
}
.eqa-iot-temperature{padding:15px;min-height:122px}
.eqa-iot-temperature.normal{border-top:0;box-shadow:inset 0 4px 0 rgba(39,114,77,.72),var(--eqa-soft-inset)}
.eqa-iot-temperature.warning{border-top:0;box-shadow:inset 0 4px 0 rgba(169,111,18,.76),var(--eqa-soft-inset)}
.eqa-iot-temperature.critical{border-top:0;box-shadow:inset 0 4px 0 rgba(167,52,45,.78),var(--eqa-soft-inset)}
.eqa-iot-temperature.invalid,.eqa-iot-temperature.historical{border-top:0;background:#ececea}
.eqa-iot-temp-value{letter-spacing:-.035em}
.eqa-iot-process-state-card{border-radius:15px;padding:14px}
.eqa-iot-process-state-card.is-active{
  background:#e9f1ec;border-color:rgba(39,114,77,.24);box-shadow:inset 4px 0 0 var(--eqa-green),var(--eqa-soft-inset);
}
.eqa-iot-process-current{border-top-color:rgba(95,101,108,.15)}
.eqa-iot-process-last{border-top-color:rgba(95,101,108,.2)}
.eqa-iot-process-event{border-bottom-color:rgba(95,101,108,.14)}
.eqa-iot-process-event-index{background:var(--eqa-surface);box-shadow:var(--eqa-soft-shadow-sm);color:#474d53}

/* Inputs/selects/textarea: aspecto encastrado */
.eqa-iot-shell input:not([type="checkbox"]):not([type="radio"]),
.eqa-iot-shell select,
.eqa-iot-shell textarea,
.eqa-iot-application-switcher select{
  border:1px solid rgba(105,110,116,.14)!important;background:var(--eqa-surface)!important;color:var(--eqa-ink)!important;
  border-radius:12px!important;box-shadow:var(--eqa-soft-inset)!important;outline:none!important;
}
.eqa-iot-shell input:not([type="checkbox"]):not([type="radio"]):focus,
.eqa-iot-shell select:focus,
.eqa-iot-shell textarea:focus{
  border-color:rgba(73,108,135,.38)!important;box-shadow:var(--eqa-soft-inset),0 0 0 3px rgba(73,108,135,.12)!important;
}
.eqa-iot-application-switcher{gap:9px;color:#676d74}
.eqa-iot-application-switcher select{height:36px;padding-left:12px;font-weight:700}

/* Botones elevados / presionados */
.eqa-iot-toolbar .eqa-iot-button,
.eqa-iot-app-summary .eqa-iot-button,
.eqa-iot-login-secondary,
.eqa-iot-button,
.eqa-iot-login-submit{
  background:var(--eqa-surface)!important;border:1px solid rgba(255,255,255,.72)!important;color:#33373c!important;
  border-radius:12px!important;box-shadow:var(--eqa-soft-shadow-sm)!important;font-weight:700;transition:transform .14s ease,box-shadow .14s ease;
}
.eqa-iot-button:hover,.eqa-iot-login-secondary:hover,.eqa-iot-login-submit:hover{transform:translateY(-1px);filter:none!important}
.eqa-iot-button:active,.eqa-iot-login-secondary:active,.eqa-iot-login-submit:active,.eqa-iot-toolbar .eqa-iot-button.active{
  transform:translateY(0);box-shadow:var(--eqa-soft-inset)!important;
}
.eqa-iot-login-submit,.eqa-iot-submit{
  background:#deded9!important;color:#191b1e!important;border-color:rgba(255,255,255,.85)!important;
}

/* Badges: contraste industrial, pero integrados */
.eqa-iot-status,.eqa-iot-badge{border:1px solid rgba(255,255,255,.5);box-shadow:2px 2px 6px rgba(140,140,135,.14),-2px -2px 5px rgba(255,255,255,.55)}
.eqa-iot-status.normal,.eqa-iot-badge.normal,.eqa-iot-badge.live{background:#dfeae3;color:#245f42}
.eqa-iot-status.warning,.eqa-iot-badge.warning,.eqa-iot-badge.unknown{background:#eee4ce;color:#7c5718}
.eqa-iot-status.critical,.eqa-iot-badge.critical{background:#ecd8d6;color:#8f302a}
.eqa-iot-status.invalid,.eqa-iot-badge.stale{background:#e0e0dd;color:#555c63}
.eqa-iot-badge.demo{background:#dfe7ec;color:#415e72}

/* Alarmas y estados críticos conservan prioridad visual */
.eqa-iot-card-alert{
  background:#eee2e0!important;border:1px solid rgba(167,52,45,.24)!important;
  box-shadow:inset 4px 0 0 var(--eqa-red),var(--eqa-soft-shadow)!important;
}
.eqa-iot-burner.fault{background:#eee2e0;border-color:rgba(167,52,45,.24);box-shadow:inset 4px 0 0 var(--eqa-red),var(--eqa-soft-inset)}
.eqa-iot-burner.interlock{background:#eee8db;border-color:rgba(169,111,18,.24);box-shadow:inset 4px 0 0 var(--eqa-yellow),var(--eqa-soft-inset)}
.eqa-iot-error{background:#eee2e0;border:1px solid rgba(167,52,45,.28);border-radius:16px;box-shadow:var(--eqa-soft-shadow);color:#7e2b27}
.eqa-iot-empty{background:#e2ebe5;color:#355e46;border-radius:13px;box-shadow:var(--eqa-soft-inset)}

/* Insights */
.eqa-iot-insight{padding:14px}
.eqa-iot-insight.normal{border-left:0;box-shadow:inset 4px 0 0 #3b7d56,var(--eqa-soft-inset)}
.eqa-iot-insight.warning{border-left:0;box-shadow:inset 4px 0 0 #a97118,var(--eqa-soft-inset)}
.eqa-iot-insight.critical{border-left:0;box-shadow:inset 4px 0 0 #a7342d,var(--eqa-soft-inset)}
.eqa-iot-insight p{color:#646a71}
.eqa-iot-analytics-bar-track{background:#dededb;box-shadow:inset 2px 2px 4px rgba(145,145,139,.2),inset -2px -2px 4px rgba(255,255,255,.55)}

/* Gráficos y tablas */
.eqa-iot-chart,.eqa-iot-alarm-chart{
  background:var(--eqa-surface)!important;border:1px solid rgba(255,255,255,.7)!important;border-radius:16px!important;box-shadow:var(--eqa-soft-inset)!important;
}
.eqa-iot-list li{border-bottom-color:rgba(95,101,108,.13)}
.eqa-iot-history-notice,.eqa-iot-storage-note{background:#e5e5e2;color:#555c63;border-style:solid}

/* Login frontal como panel de producto */
.eqa-iot-login-shell{max-width:640px;margin:26px auto 36px}
.eqa-iot-login-card{padding:32px;border-radius:22px}
.eqa-iot-login-card h2{font-size:28px;letter-spacing:-.035em}
.eqa-iot-login-eyebrow{color:#6e7378}
.eqa-iot-login-message{background:#eee2e0;border-color:rgba(167,52,45,.24);border-radius:13px;color:#7e2b27}
.eqa-iot-login-remember input{accent-color:#676b6f}

/* Jerarquía extra en el Quemador 91 */
.eqa-iot-process-phase{
  border-left:0;box-shadow:inset 0 4px 0 rgba(216,107,24,.78),var(--eqa-soft-shadow)!important;
}
.eqa-iot-process-phase .eqa-iot-kpi-value{font-size:28px}
.eqa-iot-milestone strong{font-size:14px}
.eqa-iot-milestone span{font-weight:650;color:#62686e}

/* Más aire y foco en pantallas grandes */
@media(min-width:1100px){
  .eqa-iot-app-content{padding:26px 24px 32px}
  .eqa-iot-app-header{padding-left:28px;padding-right:28px}
  .eqa-iot-tabs{padding-left:24px;padding-right:24px}
}
@media(max-width:760px){
  .eqa-iot-shell{padding:10px;border-radius:18px}
  .eqa-iot-app-header{border-radius:18px 18px 0 0;padding:16px 12px 12px}
  .eqa-iot-tabs{padding:6px 10px 12px;gap:8px}
  .eqa-iot-tab{padding:9px 13px!important}
  .eqa-iot-app-content{padding:16px 10px 22px;border-radius:0 0 18px 18px}
  .eqa-iot-card{padding:15px;border-radius:16px}
  .eqa-iot-grid.kpis,.eqa-iot-burner91-hero{gap:13px}
}
@media(prefers-reduced-motion:reduce){.eqa-iot-shell *{transition:none!important;scroll-behavior:auto!important}}


/* ================================================================
 * v0.10.2 · Secuencia visual + navegación móvil hamburguesa
 * ================================================================ */
.eqa-iot-mobile-nav{display:none;background:var(--eqa-bg);padding:4px 18px 12px}
.eqa-iot-menu-toggle{
  width:100%;display:flex;align-items:center;gap:12px;justify-content:flex-start;padding:11px 13px;border:1px solid rgba(255,255,255,.72);
  border-radius:14px;background:var(--eqa-surface);box-shadow:var(--eqa-soft-shadow-sm);color:var(--eqa-ink);cursor:pointer;text-align:left
}
.eqa-iot-menu-toggle strong{font-size:14px}
.eqa-iot-hamburger{width:24px;height:18px;display:flex;flex-direction:column;justify-content:space-between;flex:0 0 auto}
.eqa-iot-hamburger i{display:block;width:24px;height:2px;border-radius:999px;background:#25282c;transition:transform .18s ease,opacity .18s ease}
.eqa-iot-menu-toggle.is-open .eqa-iot-hamburger i:nth-child(1){transform:translateY(8px) rotate(45deg)}
.eqa-iot-menu-toggle.is-open .eqa-iot-hamburger i:nth-child(2){opacity:0}
.eqa-iot-menu-toggle.is-open .eqa-iot-hamburger i:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

.eqa-iot-sequence{--eqa-sequence-count:7;display:grid;grid-template-columns:repeat(var(--eqa-sequence-count),minmax(165px,1fr));gap:0;overflow-x:auto;padding:12px 5px 18px;scrollbar-width:thin}
.eqa-iot-sequence.eqa-iot-sequence-count-5{--eqa-sequence-count:5}
.eqa-iot-sequence.eqa-iot-sequence-count-6{--eqa-sequence-count:6}
.eqa-iot-sequence.eqa-iot-sequence-count-7{--eqa-sequence-count:7}
.eqa-iot-sequence-step{position:relative;min-width:0;padding:0 8px}
.eqa-iot-sequence-rail{height:34px;display:flex;align-items:center;justify-content:center;position:relative}
.eqa-iot-sequence-rail:before,.eqa-iot-sequence-rail:after{content:"";position:absolute;top:50%;height:3px;background:#d3d3cf;transform:translateY(-50%);z-index:0}
.eqa-iot-sequence-rail:before{left:-7px;right:50%}.eqa-iot-sequence-rail:after{left:50%;right:-7px}
.eqa-iot-sequence-step:first-child .eqa-iot-sequence-rail:before,.eqa-iot-sequence-step:last-child .eqa-iot-sequence-rail:after{display:none}
.eqa-iot-sequence-dot{position:relative;z-index:1;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--eqa-surface);box-shadow:var(--eqa-soft-shadow-sm);font-size:12px;font-weight:800;color:#686e75}
.eqa-iot-sequence-step.is-complete .eqa-iot-sequence-dot{background:#dfeae3;color:#245f42}
.eqa-iot-sequence-step.is-active .eqa-iot-sequence-dot{background:#deded9;color:#111317;box-shadow:var(--eqa-soft-inset),0 0 0 4px rgba(216,107,24,.12)}
.eqa-iot-sequence-step.is-complete .eqa-iot-sequence-rail:before,.eqa-iot-sequence-step.is-complete .eqa-iot-sequence-rail:after,.eqa-iot-sequence-step.is-active .eqa-iot-sequence-rail:before{background:#8ca99a}
.eqa-iot-sequence-body{height:calc(100% - 34px);min-height:245px;margin-top:7px;padding:15px 15px 13px;border:1px solid rgba(255,255,255,.7);border-radius:15px;background:var(--eqa-surface);box-shadow:var(--eqa-soft-inset)}
.eqa-iot-sequence-body .eqa-iot-process-state-head{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;align-items:start}
.eqa-iot-sequence-body .eqa-iot-process-state-head>div:first-child>strong{display:block;font-size:16px;line-height:1.22;overflow-wrap:anywhere}
.eqa-iot-sequence-body .eqa-iot-process-state-head small{margin-top:6px}
.eqa-iot-sequence-step.is-active .eqa-iot-sequence-body{box-shadow:inset 0 4px 0 rgba(216,107,24,.78),var(--eqa-soft-inset)}
.eqa-iot-sequence-step.is-complete .eqa-iot-sequence-body{box-shadow:inset 0 4px 0 rgba(39,114,77,.62),var(--eqa-soft-inset)}
.eqa-iot-sequence-status{display:inline-flex;align-items:center;justify-content:center;justify-self:start;max-width:100%;border-radius:999px;padding:5px 9px;background:#e2e2df;color:#62686e;font-size:11px;font-weight:800;line-height:1.15}
.eqa-iot-sequence-step.is-active .eqa-iot-sequence-status{background:#eadfd4;color:#784616}
.eqa-iot-sequence-step.is-complete .eqa-iot-sequence-status{background:#dfeae3;color:#245f42}
.eqa-iot-sequence-data{display:grid;gap:10px;margin-top:14px}
.eqa-iot-sequence-data>div{padding-top:10px;border-top:1px solid rgba(95,101,108,.14)}
.eqa-iot-sequence-data span{display:block;color:var(--eqa-muted);font-size:10px;margin-bottom:4px}
.eqa-iot-sequence-data strong{display:block;font-size:12px;line-height:1.38;font-variant-numeric:tabular-nums}
.eqa-iot-sequence-data small{display:block;color:var(--eqa-muted);font-size:10px;margin-top:4px;line-height:1.35}

@media(max-width:760px){
  .eqa-iot-mobile-nav{display:block;padding:4px 10px 10px}
  .eqa-iot-tabs{display:none!important;overflow:visible;flex-direction:column;align-items:stretch;padding:4px 10px 14px}
  .eqa-iot-tabs.is-open{display:flex!important}
  .eqa-iot-tab{width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center;border-radius:13px!important;padding:11px 13px!important}
  .eqa-iot-app-summary .eqa-iot-refresh{width:100%;margin-top:10px}
  .eqa-iot-sequence{display:grid;grid-template-columns:1fr;overflow:visible;padding:6px 0 8px;gap:0}
  .eqa-iot-sequence-step{display:grid;grid-template-columns:38px minmax(0,1fr);padding:0;min-width:0}
  .eqa-iot-sequence-rail{height:auto;min-height:100%;align-items:flex-start;padding-top:15px}
  .eqa-iot-sequence-rail:before,.eqa-iot-sequence-rail:after{width:3px;height:auto;left:50%;right:auto;transform:translateX(-50%);top:0;bottom:0}
  .eqa-iot-sequence-rail:before{top:0;bottom:50%}.eqa-iot-sequence-rail:after{top:50%;bottom:0}
  .eqa-iot-sequence-body{height:auto;min-height:0;margin:5px 0 12px 4px}
  .eqa-iot-process-state-head{display:flex!important}
  .eqa-iot-sequence-data{grid-template-columns:1fr 1fr}
  .eqa-iot-sequence-data>div:first-child{grid-column:1/-1}
}
@media(max-width:430px){
  .eqa-iot-sequence-data{grid-template-columns:1fr}
  .eqa-iot-sequence-data>div:first-child{grid-column:auto}
  .eqa-iot-app-summary{display:block}
}


/* ================================================================
 * v0.10.3 · Formularios y gráficos responsive
 * ================================================================ */
/* Los contenedores nunca deben imponer un ancho mayor al viewport. */
.eqa-iot-forms-view,
.eqa-iot-form-card,
.eqa-iot-form-card form,
.eqa-iot-form-grid,
.eqa-iot-form-field,
.eqa-iot-form-control,
.eqa-iot-chart,
.eqa-iot-alarm-chart,
.eqa-iot-alarm-chart-card,
.eqa-iot-app-content{width:100%;max-width:100%;min-width:0}
.eqa-iot-form-grid>*{min-width:0;max-width:100%}
.eqa-iot-form-field input,
.eqa-iot-form-field select,
.eqa-iot-form-field textarea{max-width:100%;min-width:0;-webkit-appearance:none;appearance:none}
.eqa-iot-form-field input[type="checkbox"],
.eqa-iot-form-field input[type="radio"]{-webkit-appearance:auto;appearance:auto}
.eqa-iot-form-control{overflow:visible}
.eqa-iot-form-unit{max-width:38%;overflow:hidden;text-overflow:ellipsis}
.eqa-iot-radio-group{max-width:100%;min-width:0}
.eqa-iot-radio-group label{min-width:0}

/* Gráficos: sin ancho fijo ni desplazamiento horizontal. El SVG conserva
   su viewBox y se adapta al ancho real del dispositivo. */
.eqa-iot-chart{height:clamp(270px,36vw,360px);min-height:0;overflow:hidden;padding:10px}
.eqa-iot-chart svg{display:block;width:100%;height:100%;max-width:100%;min-width:0;overflow:visible}
.eqa-iot-alarm-chart{min-height:0;height:auto;overflow:hidden;padding:10px}
.eqa-iot-alarm-chart svg{display:block;width:100%;height:clamp(270px,34vw,330px);max-width:100%;min-width:0}
.eqa-iot-alarm-chart-legend{max-width:100%;row-gap:8px}

@media(max-width:760px){
  .eqa-iot-form-card{padding:14px}
  .eqa-iot-form-grid{grid-template-columns:minmax(0,1fr);gap:14px}
  .eqa-iot-form-heading{display:flex;flex-direction:column;gap:8px}
  .eqa-iot-form-heading h2{font-size:clamp(19px,5vw,22px);overflow-wrap:anywhere}
  .eqa-iot-form-chooser{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .eqa-iot-form-chooser .eqa-iot-button{width:100%;min-width:0;white-space:normal;line-height:1.25}
  .eqa-iot-form-field input[type="text"],
  .eqa-iot-form-field input[type="email"],
  .eqa-iot-form-field input[type="number"],
  .eqa-iot-form-field input[type="date"],
  .eqa-iot-form-field input[type="time"],
  .eqa-iot-form-field input[type="datetime-local"],
  .eqa-iot-form-field select,
  .eqa-iot-form-field textarea{font-size:16px;min-height:46px;padding:10px 11px}
  .eqa-iot-form-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .eqa-iot-form-actions .eqa-iot-button{width:100%;min-width:0;white-space:normal}
  .eqa-iot-radio-group{gap:10px;padding:11px}

  .eqa-iot-chart{height:300px;padding:6px}
  .eqa-iot-alarm-chart{padding:6px;overflow:hidden!important}
  .eqa-iot-alarm-chart svg{height:300px;min-width:0!important}
  .eqa-iot-alarm-chart-legend{padding-left:3px;padding-right:3px}
}

@media(max-width:480px){
  .eqa-iot-form-chooser{grid-template-columns:1fr}
  .eqa-iot-form-actions{grid-template-columns:1fr}
  .eqa-iot-form-control{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch}
  .eqa-iot-form-unit{max-width:32vw;margin-left:-1px;padding:0 9px}
  .eqa-iot-radio-group{display:grid;grid-template-columns:1fr}
  .eqa-iot-form-field-checkbox{padding:11px}
  .eqa-iot-checkbox{line-height:1.35}
  .eqa-iot-chart{height:285px;padding:4px}
  .eqa-iot-alarm-chart{overflow:hidden!important;padding:4px}
  .eqa-iot-alarm-chart svg{width:100%!important;height:285px!important;min-width:0!important;max-width:100%!important}
  .eqa-iot-alarm-chart-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px}
  .eqa-iot-alarm-chart-legend span{min-width:0;align-items:flex-start;line-height:1.25}
  .eqa-iot-alarm-chart-legend i{flex:0 0 10px;margin-top:2px}
}

@media(max-width:360px){
  .eqa-iot-form-control{grid-template-columns:1fr}
  .eqa-iot-form-unit{max-width:none;width:100%;margin:-1px 0 0;border-radius:0 0 12px 12px!important;justify-content:flex-start;min-height:34px}
  .eqa-iot-form-control:has(.eqa-iot-form-unit) input{border-radius:12px 12px 0 0!important}
  .eqa-iot-alarm-chart-legend{grid-template-columns:1fr}
}

/* ================================================================
 * v0.10.4.1 · Modo Aplicación independiente de WordPress
 * ================================================================ */
html:has(body.eqa-iot-standalone-body){margin-top:0!important;background:#f0f1ef}
body.eqa-iot-standalone-body{
  margin:0!important;min-height:100vh;min-height:100dvh;background:#f0f1ef;color:#202327;
  overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility
}
body.eqa-iot-standalone-body #wpadminbar{display:none!important}
.eqa-iot-standalone-root{
  width:100%;min-height:100vh;min-height:100dvh;padding:clamp(10px,1.8vw,24px);box-sizing:border-box
}
.eqa-iot-standalone-root>.eqa-iot-shell{
  max-width:1600px;width:100%;margin:0 auto;padding:clamp(8px,1.1vw,16px);border-radius:24px
}
.eqa-iot-standalone-root>.eqa-iot-login-shell{
  min-height:calc(100vh - 48px);min-height:calc(100dvh - 48px);display:grid;place-items:center;max-width:760px;background:transparent;box-shadow:none;border:0
}
.eqa-iot-standalone-root .eqa-iot-login-card{width:min(100%,560px);margin:0 auto}
.eqa-iot-app-header-right{display:flex;align-items:flex-start;justify-content:flex-end;gap:14px;min-width:0}
.eqa-iot-app-actions-top{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.eqa-iot-app-action{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 11px;
  border:1px solid rgba(255,255,255,.72);border-radius:12px;background:var(--eqa-surface,#ecece8);box-shadow:var(--eqa-soft-shadow-sm);
  color:var(--eqa-ink,#202327);font:inherit;font-size:11px;font-weight:750;line-height:1;text-decoration:none;cursor:pointer;white-space:nowrap
}
.eqa-iot-app-action:hover{color:var(--eqa-ink,#202327);transform:translateY(-1px)}
.eqa-iot-app-action:active{transform:none;box-shadow:var(--eqa-soft-inset)}
.eqa-iot-app-logout{color:#73504a}
body.eqa-iot-standalone-body:fullscreen,.eqa-iot-standalone-root:fullscreen{background:#f0f1ef}
:fullscreen .eqa-iot-standalone-root{padding:14px}
:fullscreen .eqa-iot-standalone-root>.eqa-iot-shell{max-width:none}

@media(max-width:980px){
  .eqa-iot-app-header-right{flex-direction:column;align-items:flex-end}
  .eqa-iot-app-actions-top{max-width:420px}
}
@media(max-width:760px){
  .eqa-iot-standalone-root{padding:0}
  .eqa-iot-standalone-root>.eqa-iot-shell{padding:8px;border-radius:0;min-height:100dvh}
  .eqa-iot-standalone-root>.eqa-iot-login-shell{padding:16px;min-height:100dvh}
  .eqa-iot-app-header-right{width:100%;align-items:stretch;margin-top:12px}
  .eqa-iot-app-actions-top{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;max-width:none}
  .eqa-iot-app-action{min-width:0;white-space:normal;text-align:center;line-height:1.15;padding:9px 7px}
}
@media(max-width:480px){
  .eqa-iot-app-actions-top{grid-template-columns:repeat(2,minmax(0,1fr))}
  .eqa-iot-app-action:last-child:nth-child(3){grid-column:1/-1}
  .eqa-iot-standalone-root>.eqa-iot-login-shell{padding:10px}
}
.eqa-iot-app-action[hidden]{display:none!important}

/* 0.10.5 · Frontend form manager */
.eqa-iot-form-mode-switch{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.eqa-iot-form-mode-switch .eqa-iot-button.active{font-weight:700;box-shadow:inset 3px 3px 7px rgba(0,0,0,.11),inset -3px -3px 7px rgba(255,255,255,.82)}
.eqa-iot-form-manager{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:18px;align-items:start}
.eqa-iot-form-manager-list,.eqa-iot-form-manager-editor{min-width:0}
.eqa-iot-managed-form-list{display:grid;gap:9px;margin-top:14px}
.eqa-iot-managed-form-item{appearance:none;width:100%;border:0;border-radius:14px;padding:12px 14px;text-align:left;background:var(--eqa-soft-surface,#f1f1ef);color:inherit;cursor:pointer;box-shadow:4px 4px 10px rgba(0,0,0,.10),-4px -4px 10px rgba(255,255,255,.72)}
.eqa-iot-managed-form-item strong,.eqa-iot-managed-form-item small{display:block}
.eqa-iot-managed-form-item small{margin-top:4px;opacity:.7}
.eqa-iot-managed-form-item.active{box-shadow:inset 3px 3px 7px rgba(0,0,0,.11),inset -3px -3px 7px rgba(255,255,255,.78)}
.eqa-iot-form-builder-main{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px}
.eqa-iot-form-builder-main label:first-child,.eqa-iot-form-builder-main label:nth-child(2),.eqa-iot-form-builder-main .eqa-iot-builder-check{grid-column:1/-1}
.eqa-iot-form-builder-main label,.eqa-iot-form-builder-grid label{display:grid;gap:6px;font-size:13px;font-weight:600;min-width:0}
.eqa-iot-form-builder-main input,.eqa-iot-form-builder-main textarea,.eqa-iot-form-builder-grid input,.eqa-iot-form-builder-grid textarea,.eqa-iot-form-builder-grid select{width:100%;max-width:100%;box-sizing:border-box}
.eqa-iot-builder-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;justify-content:flex-start;gap:8px!important}
.eqa-iot-builder-check input{width:auto!important;margin:0}
.eqa-iot-form-builder-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:8px 0 12px}
.eqa-iot-form-builder-heading h3{margin:0}
.eqa-iot-form-builder-fields{display:grid;gap:14px}
.eqa-iot-form-builder-field{border-radius:16px;padding:14px;background:rgba(255,255,255,.28);box-shadow:inset 1px 1px 2px rgba(255,255,255,.8),inset -1px -1px 2px rgba(0,0,0,.04)}
.eqa-iot-form-builder-field-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.eqa-iot-form-builder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.eqa-iot-builder-options{grid-column:1/-1}
.eqa-iot-form-builder-advanced{margin-top:12px}
.eqa-iot-form-builder-advanced summary{cursor:pointer;font-weight:700;font-size:13px;margin-bottom:10px}
.eqa-iot-text-action{appearance:none;border:0;background:transparent;padding:4px 2px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.eqa-iot-text-action.danger,.eqa-iot-button-danger{color:#9b2d25}
.eqa-iot-button-danger{border-color:rgba(155,45,37,.18)}
@media(max-width:900px){.eqa-iot-form-manager{grid-template-columns:1fr}.eqa-iot-form-builder-main,.eqa-iot-form-builder-grid{grid-template-columns:1fr}.eqa-iot-builder-options{grid-column:auto}}
@media(max-width:560px){.eqa-iot-form-mode-switch{display:grid;grid-template-columns:1fr}.eqa-iot-form-mode-switch .eqa-iot-button{width:100%}.eqa-iot-form-builder-heading{align-items:stretch;flex-direction:column}.eqa-iot-form-builder-heading .eqa-iot-button{width:100%}}


/* v0.10.6 · registros paginados y procesos manuales */
.eqa-iot-process-info{margin:0 0 16px;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.56);box-shadow:inset 2px 2px 5px rgba(0,0,0,.06),inset -2px -2px 5px rgba(255,255,255,.82);line-height:1.55}
.eqa-iot-process-builder{grid-column:1/-1;display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(180px,1fr));gap:14px;padding:15px;border-radius:16px;background:rgba(255,255,255,.38);box-shadow:inset 2px 2px 6px rgba(0,0,0,.06),inset -2px -2px 6px rgba(255,255,255,.78)}
.eqa-iot-process-builder[hidden]{display:none!important}.eqa-iot-process-builder label{min-width:0}.eqa-iot-process-builder small{display:block;margin-top:6px;line-height:1.4;color:var(--eqa-muted,#5f6872)}
.eqa-iot-record-filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,.8fr) minmax(220px,1.5fr) auto;gap:12px;align-items:end;margin-bottom:16px}.eqa-iot-record-filters label{display:grid;gap:6px;min-width:0}.eqa-iot-record-filters label>span{font-size:12px;font-weight:700}.eqa-iot-record-filters .eqa-iot-button{min-height:44px}
.eqa-iot-record-list{display:grid;gap:14px}.eqa-iot-record-card{padding:18px}.eqa-iot-record-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.eqa-iot-record-head h3{margin:3px 0 4px}.eqa-iot-record-head p{margin:0;color:var(--eqa-muted,#5f6872);font-size:13px}
.eqa-iot-record-process{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.eqa-iot-record-process>div{padding:11px 12px;border-radius:14px;background:rgba(255,255,255,.42);box-shadow:inset 1px 1px 4px rgba(0,0,0,.055),inset -1px -1px 4px rgba(255,255,255,.8)}.eqa-iot-record-process span,.eqa-iot-record-data span{display:block;font-size:11px;color:var(--eqa-muted,#5f6872);margin-bottom:4px}.eqa-iot-record-process strong{font-size:14px}
.eqa-iot-record-details{margin-top:13px}.eqa-iot-record-details summary{cursor:pointer;font-weight:700;font-size:13px}.eqa-iot-record-data{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin-top:12px}.eqa-iot-record-data>div{padding:9px 0;border-bottom:1px solid rgba(0,0,0,.06);min-width:0}.eqa-iot-record-data strong{display:block;overflow-wrap:anywhere}
.eqa-iot-record-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px}.eqa-iot-record-pagination span{text-align:center;font-size:13px}.eqa-iot-record-pagination button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:900px){.eqa-iot-process-builder{grid-template-columns:1fr}.eqa-iot-record-filters{grid-template-columns:1fr 1fr}.eqa-iot-record-search{grid-column:1/-1}.eqa-iot-record-filters .eqa-iot-button{width:100%}.eqa-iot-record-process{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.eqa-iot-record-filters{grid-template-columns:1fr}.eqa-iot-record-search{grid-column:auto}.eqa-iot-record-head{display:grid}.eqa-iot-record-process,.eqa-iot-record-data{grid-template-columns:1fr}.eqa-iot-record-pagination{display:grid;grid-template-columns:1fr}.eqa-iot-record-pagination .eqa-iot-button{width:100%}.eqa-iot-record-pagination span{grid-row:1}}

/* v0.11.0 · Simulador didáctico de caldera */
.eqa-iot-process-variables-card{margin:16px 0}
.eqa-iot-process-variables{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.eqa-iot-process-variable{min-width:0;padding:14px;border-radius:15px;background:rgba(255,255,255,.45);box-shadow:inset 1px 1px 3px rgba(255,255,255,.82),inset -1px -1px 3px rgba(0,0,0,.045)}
.eqa-iot-process-variable span,.eqa-iot-process-variable small{display:block;color:var(--eqa-muted,#5f6872)}
.eqa-iot-process-variable span{font-size:12px;font-weight:700;margin-bottom:7px}.eqa-iot-process-variable strong{display:block;font-size:23px;line-height:1.1;overflow-wrap:anywhere}.eqa-iot-process-variable small{font-size:11px;margin-top:7px;line-height:1.35}
.eqa-iot-process-variables.is-compact{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:12px}
.eqa-iot-simulator-card{margin:0 0 16px}
.eqa-iot-simulator-status{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:18px;align-items:center;padding:14px 0}
.eqa-iot-simulator-status>div:first-child span,.eqa-iot-simulator-status>div:first-child small{display:block}.eqa-iot-simulator-status>div:first-child span{font-size:12px;color:var(--eqa-muted,#5f6872);font-weight:700}.eqa-iot-simulator-status>div:first-child strong{display:block;font-size:25px;margin:4px 0}.eqa-iot-simulator-status>div:first-child small{color:var(--eqa-muted,#5f6872)}
.eqa-iot-simulator-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.eqa-iot-simulator-actions .eqa-iot-button:disabled{opacity:.42;cursor:not-allowed;transform:none}
.eqa-iot-sim-sequence{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:4px}.eqa-iot-sim-sequence>div{padding:10px;border-radius:12px;background:rgba(255,255,255,.38);border:1px solid rgba(0,0,0,.045);min-width:0}.eqa-iot-sim-sequence>div.is-current{box-shadow:inset 2px 2px 5px rgba(0,0,0,.10),inset -2px -2px 5px rgba(255,255,255,.82)}.eqa-iot-sim-sequence strong,.eqa-iot-sim-sequence span{display:block}.eqa-iot-sim-sequence strong{font-size:12px;line-height:1.3}.eqa-iot-sim-sequence span{font-size:11px;color:var(--eqa-muted,#5f6872);margin-top:5px}
.eqa-iot-demo-guide{margin-top:16px}.eqa-iot-demo-guide-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.eqa-iot-demo-guide-grid>div{padding:13px;border-radius:14px;background:rgba(255,255,255,.4)}.eqa-iot-demo-guide-grid strong,.eqa-iot-demo-guide-grid span{display:block}.eqa-iot-demo-guide-grid strong{margin-bottom:6px}.eqa-iot-demo-guide-grid span{font-size:12px;line-height:1.45;color:var(--eqa-muted,#5f6872)}
.eqa-iot-score-explainer{margin-top:16px}.eqa-iot-score-components{display:grid;gap:12px}.eqa-iot-score-component{padding:14px;border-radius:15px;background:rgba(255,255,255,.38)}.eqa-iot-score-component-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;margin-bottom:10px}.eqa-iot-score-component-head strong,.eqa-iot-score-component-head small,.eqa-iot-score-component-head b,.eqa-iot-score-component-head span{display:block}.eqa-iot-score-component-head small{margin-top:4px;color:var(--eqa-muted,#5f6872);line-height:1.4}.eqa-iot-score-component-head>div:last-child{text-align:right}.eqa-iot-score-component-head b{font-size:18px}.eqa-iot-score-component-head span{font-size:11px;color:var(--eqa-muted,#5f6872);margin-top:3px}.eqa-iot-score-foot{display:flex;justify-content:space-between;gap:12px;margin-top:8px;font-size:12px}.eqa-iot-score-foot span{color:var(--eqa-muted,#5f6872)}
@media(max-width:1000px){.eqa-iot-process-variables,.eqa-iot-process-variables.is-compact{grid-template-columns:repeat(2,minmax(0,1fr))}.eqa-iot-sim-sequence{grid-template-columns:repeat(4,minmax(0,1fr))}.eqa-iot-demo-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.eqa-iot-simulator-status{grid-template-columns:1fr}.eqa-iot-simulator-actions{justify-content:stretch;display:grid;grid-template-columns:1fr}.eqa-iot-simulator-actions .eqa-iot-button{width:100%}.eqa-iot-sim-sequence{grid-template-columns:repeat(2,minmax(0,1fr))}.eqa-iot-score-component-head{grid-template-columns:1fr}.eqa-iot-score-component-head>div:last-child{text-align:left}.eqa-iot-score-foot{display:grid}}
@media(max-width:480px){.eqa-iot-process-variables,.eqa-iot-process-variables.is-compact,.eqa-iot-demo-guide-grid{grid-template-columns:1fr}.eqa-iot-sim-sequence{grid-template-columns:1fr 1fr}.eqa-iot-process-variable strong{font-size:21px}}

/* ============================================================
 * v0.11.2 · Actualización en vivo sin parpadeo en todas las vistas
 * ============================================================ */
.eqa-iot-refresh-progress{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:8px 14px 9px;
  border-left:1px solid var(--eqa-line);
  border-right:1px solid var(--eqa-line);
  background:rgba(247,247,245,.88);
  overflow:hidden;
}
.eqa-iot-refresh-progress[hidden]{display:none!important}
.eqa-iot-refresh-progress-track{height:4px;border-radius:999px;background:rgba(95,101,108,.13);overflow:hidden}
.eqa-iot-refresh-progress-track i{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left center;border-radius:999px;background:linear-gradient(90deg,var(--eqa-orange),#ef9a4e);will-change:transform}
.eqa-iot-refresh-progress-meta{display:flex;align-items:center;gap:7px;min-width:154px;justify-content:flex-end;font-size:10px;color:var(--eqa-muted);white-space:nowrap}
.eqa-iot-refresh-progress-meta strong{min-width:28px;color:var(--eqa-ink);font-size:11px;text-align:right}
.eqa-iot-refresh-progress.is-fetching .eqa-iot-refresh-progress-track i{transform:scaleX(1)!important;animation:eqaIoTRefreshPulse .8s ease-in-out infinite alternate}
.eqa-iot-refresh-progress.is-fetching .eqa-iot-refresh-progress-meta strong::after{content:' •';color:var(--eqa-orange)}
@keyframes eqaIoTRefreshPulse{from{opacity:.42}to{opacity:1}}

.eqa-iot-value-updated{animation:eqaIoTValueUpdate .62s ease-out}
@keyframes eqaIoTValueUpdate{0%{opacity:.58;transform:translateY(1px)}40%{opacity:1}100%{transform:none}}

.eqa-iot-sim-phase-progress{margin:2px 0 14px;padding:11px 12px;border:1px solid var(--eqa-line);border-radius:11px;background:rgba(255,255,255,.32)}
.eqa-iot-sim-phase-progress-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px;font-size:11px;color:var(--eqa-muted)}
.eqa-iot-sim-phase-progress-head strong{color:var(--eqa-ink);font-size:11px}
.eqa-iot-sim-phase-progress-track{height:9px;border-radius:999px;background:rgba(95,101,108,.13);overflow:hidden;box-shadow:inset 1px 1px 2px rgba(0,0,0,.06)}
.eqa-iot-sim-phase-progress-track i{display:block;height:100%;min-width:0;border-radius:999px;background:linear-gradient(90deg,var(--eqa-orange),#ef9a4e);transition:width .45s ease;box-shadow:0 0 12px rgba(216,107,24,.23)}
.eqa-iot-sim-phase-progress.is-running .eqa-iot-sim-phase-progress-track i{background:linear-gradient(90deg,var(--eqa-green),#64a67e);animation:eqaIoTRunningGlow 1.6s ease-in-out infinite alternate}
@keyframes eqaIoTRunningGlow{from{opacity:.72}to{opacity:1}}

@media(max-width:620px){
  .eqa-iot-refresh-progress{grid-template-columns:1fr;padding:7px 10px;gap:5px}
  .eqa-iot-refresh-progress-meta{min-width:0;justify-content:space-between}
  .eqa-iot-sim-phase-progress-head{align-items:flex-start;flex-direction:column;gap:3px}
}


/* v0.11.4 · Cabecera de etapas sin solapamiento */
.eqa-iot-sequence-body .eqa-iot-process-state-head{display:block !important}
.eqa-iot-sequence-head-main{min-width:0}
.eqa-iot-sequence-head-main strong{display:block;font-size:15px;line-height:1.24;overflow-wrap:anywhere;word-break:break-word;padding-right:0}
.eqa-iot-sequence-head-main small{display:block;margin-top:6px;color:var(--eqa-muted);font-size:10px;line-height:1.35}
.eqa-iot-sequence-head-status{margin-top:8px}
.eqa-iot-sequence-head-status .eqa-iot-sequence-status{display:inline-flex;max-width:100%;white-space:normal;vertical-align:top}
@media(max-width:760px){
  .eqa-iot-sequence-head-status{margin-top:7px}
}

/* v0.11.6: producto integrado, sin cabecera del theme */
.eqa-iot-product-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border-bottom:1px solid #e3e7ec;padding:12px clamp(18px,3vw,46px);min-height:75px}
.eqa-iot-product-brand{display:flex;align-items:center;gap:18px;text-decoration:none;color:#182335;font-size:16px;font-weight:650}
.eqa-iot-product-brand img{width:104px;height:auto;max-height:55px;object-fit:contain}
.eqa-iot-product-brand>span{padding-left:16px;border-left:1px solid #d6dce3;line-height:1.15}
.eqa-iot-product-brand small{display:block;font-size:11px;font-weight:500;color:#697889;margin-top:4px}
.eqa-iot-product-user{display:flex;align-items:center;gap:15px;font-size:13px;color:#45556a}
.eqa-iot-product-exit{padding:9px 14px;border:1px solid #dce2e8;border-radius:8px;text-decoration:none;color:#243044;font-weight:700;background:#fafbfc}
.eqa-iot-product-exit:hover{border-color:#ff792c;color:#dc5e17}
.eqa-iot-standalone-root{padding:16px clamp(12px,2.1vw,34px) 28px;min-height:calc(100dvh - 75px)}
.eqa-iot-standalone-root>.eqa-iot-shell{max-width:1850px;padding:0;background:transparent;box-shadow:none}
@media(max-width:600px){.eqa-iot-product-nav{padding:10px 12px}.eqa-iot-product-brand img{width:74px}.eqa-iot-product-brand>span{padding-left:9px;font-size:13px}.eqa-iot-product-brand small,.eqa-iot-product-identity{display:none}}

/* EQA IoT Monitor 0.11.8 - Industrial workspace. Based on stable 0.11.6 modules.
   Applies ONLY to the standalone monitor, never to public shortcodes. */
@media (min-width: 901px) {
  body.eqa-iot-standalone-body .eqa-iot-standalone-root{padding:14px 20px 30px;max-width:none}
  body.eqa-iot-standalone-body .eqa-iot-standalone-root>.eqa-iot-shell{
    max-width:none;width:100%;display:grid;grid-template-columns:236px minmax(0,1fr);
    align-items:start;column-gap:0;row-gap:0;border:1px solid #dce3e8;border-radius:16px;
    overflow:visible;background:#f5f7f9;min-width:0;
  }
  body.eqa-iot-standalone-body .eqa-iot-app-header{grid-column:1 / -1;grid-row:1;
    border-radius:16px 16px 0 0;min-height:106px;border:0;border-bottom:1px solid #dfe4e8;
    padding:18px 26px;background:#fff}
  body.eqa-iot-standalone-body .eqa-iot-mobile-nav{display:none}
  body.eqa-iot-standalone-body .eqa-iot-tabs{grid-column:1;grid-row:2 / span 2;
    display:flex!important;flex-direction:column;align-items:stretch;gap:5px;
    position:sticky;top:12px;max-height:calc(100vh - 24px);overflow-y:auto;overflow-x:hidden;
    border:0;border-right:1px solid #dee4ea;border-radius:0 0 0 16px;
    background:#fff;padding:53px 13px 22px;min-height:calc(100vh - 200px);}
  body.eqa-iot-standalone-body .eqa-iot-tabs:before{content:'MÓDULOS';position:absolute;
    top:19px;left:23px;letter-spacing:.13em;font-size:10px;font-weight:800;color:#86939c}
  body.eqa-iot-standalone-body .eqa-iot-tab{border:0!important;border-radius:9px!important;
    display:flex;align-items:center;justify-content:space-between;white-space:normal;text-align:left;
    padding:13px 14px!important;min-height:44px;font-weight:700;font-size:13px;color:#53616e;background:transparent;}
  body.eqa-iot-standalone-body .eqa-iot-tab.active{background:#fff0e6!important;color:#ac4c13!important;
    box-shadow:inset 3px 0 0 #f47721}
  body.eqa-iot-standalone-body .eqa-iot-tab:hover:not(.active){background:#f2f5f7}
  body.eqa-iot-standalone-body .eqa-iot-app-content{grid-column:2;grid-row:2;
    width:100%;min-width:0;background:#f6f8fa;padding:24px clamp(16px,2vw,34px) 38px;
    border:0;border-radius:0 0 16px 0;min-height:calc(100vh - 210px)}
  body.eqa-iot-standalone-body .eqa-iot-refresh-progress{grid-column:2;grid-row:3;min-width:0}
}
@media(min-width:901px) and (max-width:1170px){
 body.eqa-iot-standalone-body .eqa-iot-standalone-root>.eqa-iot-shell{grid-template-columns:205px minmax(0,1fr)}
 body.eqa-iot-standalone-body .eqa-iot-tabs{padding-left:9px;padding-right:9px}
}
@media(max-width:900px){
 body.eqa-iot-standalone-body .eqa-iot-standalone-root{padding:8px}
 body.eqa-iot-standalone-body .eqa-iot-app-header{border-radius:12px 12px 0 0}
 body.eqa-iot-standalone-body .eqa-iot-app-content{border-radius:0 0 12px 12px}
}

/* Workspace: accessible installations overview (v0.12.0) */
.eqa-iot-installations{width:min(1220px,calc(100% - 48px));margin:52px auto 90px;color:#202831;font-family:inherit}.eqa-iot-installations-intro{display:flex;justify-content:space-between;align-items:center;gap:32px;margin-bottom:42px}.eqa-iot-installations-eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800;color:#ed7526;margin:0 0 12px}.eqa-iot-installations h1{font-size:clamp(32px,4vw,45px);letter-spacing:-.035em;margin:0 0 12px;line-height:1.1}.eqa-iot-installations-intro p:not(.eqa-iot-installations-eyebrow){margin:0;color:#667381;line-height:1.6}.eqa-iot-installations-count{padding:18px 24px;background:white;border:1px solid #e1e5e9;border-radius:18px;display:flex;flex-direction:column;min-width:170px}.eqa-iot-installations-count strong{font-size:29px}.eqa-iot-installations-count span{font-size:12px;color:#67717c}.eqa-iot-installation-group{margin-bottom:40px}.eqa-iot-installation-group-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.eqa-iot-installation-group-head h2{font-size:19px;margin:0}.eqa-iot-installation-group-head span{font-size:12px;color:#697480}.eqa-iot-installation-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.eqa-iot-installation-card{min-width:0;background:#fff;border:1px solid #e1e5e9;border-radius:18px;padding:23px;display:flex;flex-direction:column;gap:18px;box-shadow:0 8px 24px rgba(35,43,51,.035)}.eqa-iot-installation-card:hover{border-color:#f7b287;box-shadow:0 14px 32px rgba(35,43,51,.075)}.eqa-iot-installation-icon{display:grid;place-items:center;width:45px;height:45px;border-radius:13px;background:#fff0e5;color:#e96e1c;font-size:25px}.eqa-iot-installation-meta{font-size:12px;font-weight:700;color:#68737f;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.eqa-iot-installation-demo{font-size:10px;color:#ac5c19;background:#fff3e3;border-radius:40px;padding:3px 8px}.eqa-iot-installation-info h3{font-size:19px;line-height:1.3;margin:9px 0 6px;overflow-wrap:anywhere}.eqa-iot-installation-info p{font-size:13px;line-height:1.5;color:#6b7580;margin:0}.eqa-iot-installation-open{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none!important;border-top:1px solid #e9edf1;padding-top:15px;color:#d85e11!important;font-weight:800;font-size:13px;margin-top:auto}.eqa-iot-installation-open:hover{text-decoration:underline!important}.eqa-iot-installations-help{font-size:12px;color:#697480;margin-top:24px}@media(max-width:650px){.eqa-iot-installations{width:calc(100% - 32px);margin:30px auto 60px}.eqa-iot-installations-intro{align-items:flex-start;flex-direction:column;gap:18px}.eqa-iot-installations-count{width:100%}.eqa-iot-installation-grid{grid-template-columns:1fr}}

/* Weather module: standalone, accessible, operational-neutral. */
.eqa-weather-screen{max-width:1200px;margin:0 auto;padding:30px 24px 65px;color:#202731}
.eqa-weather-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:20px}
.eqa-weather-heading h1{font-size:clamp(26px,3vw,36px);line-height:1.15;margin:8px 0}.eqa-weather-heading p{color:#667384}
.eqa-weather-back,.eqa-weather-card-link{color:#e66728;text-decoration:none;font-weight:700}
.eqa-weather-disclaimer,.eqa-weather-notice{padding:14px 18px;border:1px solid #f0ddc9;background:#fff8ef;border-radius:12px;margin-bottom:20px;line-height:1.5}
.eqa-weather-region{display:flex;align-items:center;gap:12px;margin:14px 0 22px;font-weight:600}
.eqa-weather-region select,.eqa-weather-config input{min-height:42px;border:1px solid #cbd2d9;border-radius:8px;padding:8px 12px;background:#fff;color:#252b34}
.eqa-weather-location{font-size:21px;font-weight:700;margin:16px 0 14px}.eqa-weather-location small{font-weight:400;color:#667384;font-size:13px}
.eqa-weather-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.eqa-weather-grid article,.eqa-weather-daily,.eqa-weather-config{border:1px solid #e5e8ec;border-radius:16px;background:#fff;padding:21px;box-shadow:0 8px 25px rgba(20,32,48,.035)}
.eqa-weather-grid article span{display:block;color:#667384;font-size:13px;margin-bottom:9px}.eqa-weather-grid article strong{font-size:26px;line-height:1.2}
.eqa-weather-daily{margin-top:20px}.eqa-weather-daily h2{margin:0 0 8px}.eqa-weather-daily p,.eqa-weather-footnote,.eqa-weather-stored{color:#667384;font-size:13px;line-height:1.6}
.eqa-weather-table{overflow:auto}.eqa-weather-table table{width:100%;border-collapse:collapse;text-align:left;margin-top:16px}.eqa-weather-table th,.eqa-weather-table td{padding:12px;border-bottom:1px solid #e8edf1}
.eqa-weather-config{margin-bottom:20px}.eqa-weather-config summary{cursor:pointer;font-weight:700}.eqa-weather-config form{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.eqa-weather-config label{display:flex;flex-direction:column;gap:7px;font-size:13px}.eqa-weather-config button{align-self:end;padding:12px 18px;background:#f1782c;border:0;border-radius:8px;color:white;font-weight:700;cursor:pointer}
.eqa-weather-card-link{display:block;padding:0 16px 16px}.eqa-weather-footnote{margin-top:18px}
@media(max-width:700px){.eqa-weather-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.eqa-weather-screen{padding:22px 15px}.eqa-weather-grid article{padding:15px}.eqa-weather-grid article strong{font-size:22px}}
@media(max-width:420px){.eqa-weather-grid{grid-template-columns:1fr}}

/* v0.12.2 — tipografía moderna y selector compacto, sin tarjetas */
html:has(body.eqa-iot-standalone-body),body.eqa-iot-standalone-body,
body.eqa-iot-standalone-body button,body.eqa-iot-standalone-body input,
body.eqa-iot-standalone-body select,body.eqa-iot-standalone-body textarea,
body.eqa-iot-standalone-body .eqa-iot-shell,
body.eqa-iot-standalone-body .eqa-iot-product-nav,
body.eqa-iot-standalone-body .eqa-weather-screen{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;
}
body.eqa-iot-standalone-body h1,body.eqa-iot-standalone-body h2,
body.eqa-iot-standalone-body h3,body.eqa-iot-standalone-body h4{
  font-family:inherit!important;letter-spacing:-.025em;
}
.eqa-iot-app-switch{display:flex;align-items:center;gap:9px;margin:0}
.eqa-iot-app-switch label{font-size:12px;font-weight:650;color:#516174;white-space:nowrap}
.eqa-iot-app-switch select{min-width:185px;max-width:300px;width:auto;min-height:39px;padding:8px 31px 8px 11px;background:#fff;border:1px solid #d5dfe6;border-radius:9px;color:#182335;font-size:13px;font-weight:600}
.eqa-iot-choose-app{max-width:600px;margin:clamp(35px,10vh,110px) auto;background:#fff;border:1px solid #e2e8ed;border-radius:16px;padding:clamp(22px,4vw,42px);box-shadow:0 12px 35px rgba(18,32,46,.04)}
.eqa-iot-choose-eyebrow{color:#e76f00;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.eqa-iot-choose-app h1{font-size:30px;margin:12px 0}
.eqa-iot-choose-app>p:not(.eqa-iot-choose-eyebrow){font-size:14px;color:#627283;line-height:1.6}
.eqa-iot-choose-app form{margin-top:28px}
.eqa-iot-choose-app label{display:block;font-size:12px;font-weight:700;margin-bottom:8px}
.eqa-iot-choose-controls{display:flex;gap:9px;align-items:stretch}
.eqa-iot-choose-controls select{flex:1;min-width:0;border:1px solid #cfd8e2;border-radius:9px;padding:11px;background:#fff;font-size:14px}
.eqa-iot-choose-controls button{border:0;border-radius:9px;background:#f47726;color:#fff;padding:11px 18px;cursor:pointer;font-weight:750}
@media(max-width:820px){.eqa-iot-product-nav{flex-wrap:wrap}.eqa-iot-product-user{flex-wrap:wrap}.eqa-iot-app-switch select{min-width:140px;max-width:215px}}
@media(max-width:490px){.eqa-iot-choose-controls{flex-direction:column}.eqa-iot-app-switch{width:100%}.eqa-iot-app-switch select{max-width:none;flex:1}}

/* IA opcional en campos de formularios */
.eqa-iot-ai-button{margin:8px 0;font-size:12px}.eqa-iot-ai-compose{margin:12px 0;padding:14px;border:1px solid #d9e0e9;border-radius:10px;background:#f8fafc}.eqa-iot-ai-compose strong{display:block;margin-bottom:6px}.eqa-iot-ai-compose select,.eqa-iot-ai-compose textarea,.eqa-iot-ai-compose input[type=file]{display:block;width:100%;margin:8px 0;box-sizing:border-box}.eqa-iot-ai-compose [role=status]{min-height:20px;font-size:13px}
