/* Telemetry Pilot 1.6.0 · experiencia, accesibilidad y responsive */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;z-index:5000;top:10px;left:10px;padding:12px 16px;border-radius:10px;background:#eff8ff;color:#06111f;font-weight:800;transform:translateY(-160%);transition:transform .16s ease}
.skip-link:focus{transform:translateY(0)}
.portal-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.portal-nav-toggle{display:none}
:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:3px solid #ffd54a!important;outline-offset:3px!important}
.tab-button[aria-selected="true"]{color:var(--cyan);background:rgba(49,215,255,.08);border-color:rgba(49,215,255,.20)}
.tab-panel:focus{outline:none}
.external-resource-warning{margin:0 0 18px;padding:12px 15px;border:1px solid rgba(255,213,74,.38);border-radius:12px;background:rgba(255,213,74,.1);color:#ffe798;font-size:.86rem}
.touch-action{min-height:44px;min-width:44px}
.presentation-mode .portal-shell{width:min(1540px,calc(100% - 28px))}
.presentation-mode .portal-header{position:sticky;top:0;z-index:1200;padding:12px 0;background:rgba(3,11,21,.92);backdrop-filter:blur(16px)}
.presentation-mode .portal-header .eyebrow,.presentation-mode .user-pill,.presentation-mode #logoutBtn,.presentation-mode .tabs,.presentation-mode .footer-note{display:none!important}
.presentation-mode .portal-header h1{margin:0;font-size:clamp(28px,4vw,44px)}
.presentation-mode #presentationModeBtn{border-color:rgba(68,242,161,.55);color:var(--green);background:rgba(68,242,161,.09)}
.presentation-mode .operations-filter-panel{display:none}
.presentation-mode .operations-summary-card{min-height:145px}
.presentation-mode .operations-summary-card strong{font-size:clamp(2.1rem,4vw,3.5rem)}
.presentation-mode .operations-hero{padding-top:26px}
.presentation-mode .panel,.presentation-mode .operations-summary-card{box-shadow:0 20px 65px rgba(0,0,0,.38)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media (forced-colors:active){.tab-button.active,.operations-summary-card,.panel,.kpi,.chart-box{border:1px solid CanvasText}.operations-live-dot{forced-color-adjust:none}}
@media (max-width:900px){
 .portal-shell{width:min(100% - 22px,1180px)}
 .portal-header{align-items:center}
 .portal-header h1{font-size:clamp(34px,8vw,48px)}
 .portal-header-actions{max-width:55%}
 .panel,.environment-status,.charts-card,.alerts-panel,.devices-panel{border-radius:20px}
}
@media (max-width:760px){
 body.portal-nav-open{overflow:hidden}
 .portal-header{position:sticky;top:0;z-index:1350;align-items:center;flex-direction:row;padding:12px 0;background:rgba(3,11,21,.94);backdrop-filter:blur(16px)}
 .portal-header>div:first-child{min-width:0}
 .portal-header .eyebrow,.portal-header .user-pill{display:none}
 .portal-header h1{margin:0;font-size:30px}
 .portal-header-actions{max-width:none;flex-wrap:nowrap;margin-left:auto}
 .portal-nav-toggle{display:inline-flex}
 #presentationModeBtn{font-size:0;padding-inline:13px}
 #presentationModeBtn::after{content:"Presentar";font-size:.82rem}
 #logoutBtn{font-size:0;padding-inline:13px}
 #logoutBtn::after{content:"Salir";font-size:.82rem}
 .tabs{display:none;position:fixed;z-index:1400;inset:72px 11px auto 11px;max-height:calc(100vh - 92px);overflow:auto;margin:0;padding:12px;border:1px solid rgba(49,215,255,.28);border-radius:18px;background:rgba(4,16,28,.98);box-shadow:0 30px 90px rgba(0,0,0,.58);grid-template-columns:1fr}
 body.portal-nav-open .tabs{display:grid}
 .tab-button{width:100%;min-height:48px;margin:0;text-align:left;border:1px solid rgba(49,215,255,.12);border-radius:12px}
 .tab-button.active{border-color:rgba(49,215,255,.38)}
 .tab-panel{scroll-margin-top:88px}
 .devices-table-wrap,.alerts-table-wrap,.alert-events-table-wrap{overflow:visible;border:0;background:transparent}
 .devices-table,.alerts-table,.alert-events-table,.alerts-table.alerts-advanced-table{display:block;min-width:0;width:100%}
 .devices-table thead,.alerts-table thead,.alert-events-table thead{display:none}
 .devices-table tbody,.alerts-table tbody,.alert-events-table tbody{display:grid;gap:12px}
 .devices-table tr,.alerts-table tr,.alert-events-table tr{display:grid;padding:12px;border:1px solid rgba(49,215,255,.18);border-radius:14px;background:rgba(5,17,31,.78);box-shadow:0 12px 30px rgba(0,0,0,.18)}
 .devices-table td,.alerts-table td,.alert-events-table td{display:grid;grid-template-columns:minmax(110px,38%) minmax(0,1fr);gap:10px;align-items:center;min-width:0!important;width:100%;padding:9px 4px;border-bottom:1px solid rgba(49,215,255,.09);text-align:right;overflow-wrap:anywhere}
 .devices-table td:last-child,.alerts-table td:last-child,.alert-events-table td:last-child{border-bottom:0}
 .devices-table td::before,.alerts-table td::before,.alert-events-table td::before{content:attr(data-label);color:var(--muted);font-size:.72rem;font-weight:800;text-align:left;text-transform:uppercase;letter-spacing:.05em}
 .devices-table td[colspan],.alerts-table td[colspan],.alert-events-table td[colspan]{display:block;text-align:center}
 .devices-table td[colspan]::before,.alerts-table td[colspan]::before,.alert-events-table td[colspan]::before{content:none}
 .alerts-table input,.alerts-table select{min-height:44px;min-width:0!important;width:100%!important}
 .operations-map,.devices-map,.wind-dispersion-map{min-height:320px!important}
 .portal-grid,.operations-priority-grid,.history-summary-layout{gap:14px}
}
@media (max-width:430px){
 .portal-shell{width:calc(100% - 14px)}
 .portal-header-actions{gap:6px}
 .portal-header-actions button{min-height:42px;padding:9px 10px}
 .panel,.environment-status,.charts-card,.alerts-panel,.devices-panel{padding:16px!important;border-radius:16px}
 .operations-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
 .operations-summary-card{min-height:112px!important;padding:13px!important}
 .operations-summary-icon{width:38px!important;height:38px!important}
 .operations-summary-card strong{font-size:1.8rem!important}
 .devices-table td,.alerts-table td,.alert-events-table td{grid-template-columns:1fr;text-align:left}
 .operations-map,.devices-map,.wind-dispersion-map{min-height:280px!important}
}
