/* ESTELAR V5.1.85 · CLEAN NAVIGATION
   Capa visual independiente. El navegador legacy permanece en DOM para compatibilidad. */
:root{--module-nav-h:0px;--estelar-mobile-nav-h:0px}
.moduleNav{display:none!important}
.legacyViewSelect{display:none!important}
.currentViewBadgeMobile{display:flex!important;align-items:center;max-width:260px;padding:7px 10px;border:1px solid #ffffff24;border-radius:9px;background:#ffffff12;color:#fff;font-size:10px;font-weight:950;letter-spacing:.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:none}
.headerActions #usersAdminBtn,.headerActions #refreshBtn{display:none!important}
.appMenuBtn{display:inline-flex!important;align-items:center;gap:7px;background:#ffffff18!important;border:1px solid #ffffff24!important;color:#fff!important;padding:9px 12px!important}
.appMenuBtn:hover{background:#ffffff28!important}.appMenuBtn span{font-size:18px;line-height:1}.appMenuBtn b{font-size:12px}

.appNavBackdrop{position:fixed;inset:0;z-index:229;background:rgba(5,20,28,.53);backdrop-filter:blur(2px);opacity:0;transition:opacity .18s ease}
body.appNavOpen .appNavBackdrop{opacity:1}.appNavBackdrop[hidden]{display:none!important}
.appNavDrawer{position:fixed;z-index:230;top:0;right:0;width:min(410px,94vw);height:100dvh;background:#f7fafb;color:#153747;box-shadow:-22px 0 55px rgba(4,26,36,.28);display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;transform:translateX(104%);transition:transform .2s ease;overscroll-behavior:contain}
body.appNavOpen .appNavDrawer{transform:translateX(0)}
.appNavHead{display:grid;grid-template-columns:46px minmax(0,1fr) 42px;align-items:center;gap:10px;padding:15px 16px;background:#102d3d;color:#fff}
.appNavHeadMark{width:42px;height:42px;border-radius:11px;background:#fff;color:#102d3d;display:grid;place-items:center;font-weight:1000}.appNavHead>div:nth-child(2){display:grid;gap:2px}.appNavHead b{font-size:17px}.appNavHead small{font-size:10px;color:#bed1da}
.appNavClose{width:40px;height:40px;border:0!important;border-radius:10px!important;background:#ffffff12!important;color:#fff!important;font-size:25px!important;padding:0!important;cursor:pointer}
.appNavSession{display:grid;grid-template-columns:1.1fr .9fr;gap:8px;padding:10px 13px;background:#eef4f6;border-bottom:1px solid #d8e3e8}.appNavSession>div{min-width:0;display:grid;gap:2px;padding:8px 9px;border-radius:9px;background:#fff}.appNavSession small,.appNavCurrent small{font-size:8px;font-weight:950;letter-spacing:.08em;color:#78909b}.appNavSession b{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appNavSession>div:last-child b{color:#24734a}
.appNavCurrent{display:grid;gap:2px;padding:10px 16px;border-bottom:1px solid #dce6ea;background:#fff}.appNavCurrent b{font-size:12px;color:#c62c21}
.appNavScroll{overflow:auto;padding:10px 10px 16px;scrollbar-width:thin}.appNavSection{margin-bottom:11px}.appNavSection[hidden]{display:none!important}.appNavSectionTitle{display:flex;align-items:center;gap:7px;padding:5px 6px 7px;color:#708793;text-transform:uppercase;letter-spacing:.07em;font-size:9px}.appNavSectionTitle span{width:18px;text-align:center;font-size:12px}.appNavSectionItems{display:grid;gap:5px}
.appNavItem{width:100%;min-height:54px;border:1px solid #d9e4e8;border-radius:11px;background:#fff;color:#173b4c;display:grid;grid-template-columns:34px minmax(0,1fr) auto 16px;align-items:center;gap:8px;padding:8px 9px;text-align:left;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .12s ease}.appNavItem:hover{background:#eef6f8;border-color:#b6ccd5;transform:translateX(-1px)}.appNavItem.active{background:#e8f3f6;border-color:#78a9bc;box-shadow:inset 4px 0 #d72d22}.appNavItem.danger{background:#fff7f6;border-color:#efcbc6}.appNavItem.danger .appNavIcon{background:#ffe2de;color:#b52a20}.appNavItem[hidden]{display:none!important}
.appNavIcon{width:32px;height:32px;border-radius:9px;background:#eaf2f5;color:#123e52;display:grid;place-items:center;font-weight:1000;font-size:14px}.appNavCopy{display:grid;gap:2px;min-width:0}.appNavCopy b{font-size:12px}.appNavCopy small{font-size:9px;color:#718893;line-height:1.2;white-space:normal}.appNavChevron{color:#8ba0aa;font-size:18px}.appNavBadge{min-width:22px;height:22px;border-radius:999px;background:#d72d22;color:#fff;display:grid;place-items:center;padding:0 6px;font-size:9px;font-weight:950}.appNavBadge[hidden]{display:none!important}
.appNavDetails{margin-top:5px;border:1px solid #d9e4e8;border-radius:11px;background:#fff;overflow:hidden}.appNavDetails summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:10px 12px;cursor:pointer;color:#536f7c;font-size:10px;font-weight:900}.appNavDetails summary::-webkit-details-marker{display:none}.appNavDetails[open] summary{border-bottom:1px solid #e1eaed;background:#f7fafb}.appNavStatusGrid{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:7px}.appNavStatusItem{border:0;border-radius:8px;background:#f0f5f7;color:#365767;padding:9px 7px;font-size:9px;font-weight:900;cursor:pointer}.appNavStatusItem.active{background:#d72d22;color:#fff}
.appNavFooter{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #d8e3e8;background:#fff}.appNavFooter button{border:0;border-radius:9px;background:#eaf1f4;color:#173b4c;padding:10px;font-size:11px;font-weight:900;cursor:pointer}.appNavFooter .appNavLogout{background:#fbe5e1;color:#a92b21}
body.appNavOpen{overflow:hidden}
.mobileQuickNav{display:none}

/* Barra superior: deja navegación fuera y conserva sólo estado + acciones principales. */
.topbar{gap:11px!important;padding-left:14px!important;padding-right:14px!important}.brand{flex:0 0 auto}.headerActions{flex-wrap:nowrap!important;gap:6px!important}.headerActions #logoutBtn{display:none!important}.headerActions #newRequestBtn{padding:9px 12px!important;font-size:12px!important}.sync{white-space:nowrap}.userBadge{white-space:nowrap}
.approvalAlert{top:var(--topbar-h)!important}
#machineHero,#requestsView{scroll-margin-top:calc(var(--topbar-h) + 14px)!important}

/* Móvil: no ofrece administración de fuentes; el Agent y el AUTO SYNC quedan a cargo. */
@media(max-width:700px){
  :root{--estelar-mobile-nav-h:66px}
  body{padding-bottom:calc(var(--estelar-mobile-nav-h) + env(safe-area-inset-bottom))}
  .topbar{min-height:62px!important;height:auto!important;padding:7px 9px!important;display:grid!important;grid-template-columns:minmax(125px,1fr) minmax(90px,auto) auto!important;align-items:center!important;gap:6px!important;flex-wrap:nowrap!important}
  .brand{min-width:0!important;flex:initial!important}.brandLogo{height:34px!important;max-width:58px!important;border-radius:7px!important}.brand b{font-size:13px!important;white-space:nowrap}.brand small{display:none!important}
  .currentViewBadgeMobile{order:initial!important;max-width:none!important;width:100%!important;justify-content:center;padding:6px 7px!important;font-size:8px!important;border-radius:7px!important;background:#ffffff0e!important;box-shadow:none!important}
  .headerActions{order:initial!important;width:auto!important;margin:0!important;overflow:visible!important;padding:0!important;display:flex!important;justify-content:flex-end!important;gap:5px!important}
  .headerActions>*{display:none!important}.headerActions #syncBadge,.headerActions #appMenuBtn{display:inline-flex!important}.headerActions #syncBadge{padding:4px 6px!important;font-size:0!important;width:12px;height:12px;border-radius:50%;align-self:center}.headerActions #syncBadge::after{content:''}.headerActions #appMenuBtn{width:39px;height:38px;padding:0!important;justify-content:center!important}.headerActions #appMenuBtn span{font-size:20px}.headerActions #appMenuBtn b{display:none!important}
  .appNavDrawer{width:min(390px,94vw)}.appNavSession{grid-template-columns:1fr 1fr}.appNavDesktopOnly{display:none!important}
  .mobileQuickNav{position:fixed;z-index:35;left:0;right:0;bottom:0;height:calc(var(--estelar-mobile-nav-h) + env(safe-area-inset-bottom));padding:5px 6px env(safe-area-inset-bottom);background:rgba(255,255,255,.97);border-top:1px solid #cedce2;box-shadow:0 -7px 24px rgba(8,35,47,.12);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;backdrop-filter:blur(9px)}
  .mobileQuickNav button{min-width:0;border:0;border-radius:9px;background:transparent;color:#58717d;display:grid;place-items:center;align-content:center;gap:2px;padding:4px 2px;cursor:pointer}.mobileQuickNav button span{display:grid;place-items:center;min-width:27px;height:25px;border-radius:8px;font-size:14px;font-weight:950}.mobileQuickNav button b{font-size:8px;white-space:nowrap}.mobileQuickNav button.active{color:#b9281f;background:#fff3f1}.mobileQuickNav button.active span{background:#ffe3df}.mobileQuickNav button[hidden]{display:none!important}
  .toast{bottom:calc(var(--estelar-mobile-nav-h) + env(safe-area-inset-bottom) + 10px)!important}
  .approvalAlert{position:relative!important;top:auto!important}
  #machineHero,#requestsView{scroll-margin-top:calc(var(--topbar-h) + 8px)!important}

  /* Stock móvil = consulta operativa; vinculación/importación queda en escritorio. */
  .stockHeroControls .stockImportBtn,.stockHeroControls #stockRefreshBtn{display:none!important}
  .stockSourcesV5182 .stockSourceCard,.stockSourcesV5182 .stockD1BudgetState{display:none!important}
  .stockSourcesV5182{display:block!important}.stockAutoSyncState{max-width:none!important;min-height:38px!important;border-radius:10px!important;padding:8px 10px!important;font-size:9px!important}
  .stockHero{gap:10px!important}.stockHeroControls{grid-template-columns:minmax(0,1fr) auto!important;align-items:end!important}.stockHeroControls label{grid-column:auto!important}.stockHeroControls input{min-width:0!important}.stockHeroControls>button:not(.stockImportBtn):not(#stockRefreshBtn){width:auto!important;min-width:112px!important;padding-left:9px!important;padding-right:9px!important;font-size:10px!important}
}
@media(max-width:430px){
  .topbar{grid-template-columns:minmax(108px,1fr) minmax(76px,auto) auto!important}.brandLogo{height:31px!important;max-width:52px!important}.brand b{font-size:12px!important}.currentViewBadgeMobile{font-size:7.5px!important;padding:5px 6px!important}
  .appNavDrawer{width:96vw}.appNavCopy small{font-size:8.5px}.mobileQuickNav button b{font-size:7.5px}
  .stockHeroControls{grid-template-columns:1fr!important}.stockHeroControls>button:not(.stockImportBtn):not(#stockRefreshBtn){width:100%!important}
}

/* V5.1.86 · contexto de vista en la barra principal */
.currentViewBadgeMobile{display:none!important}
.appViewContext{min-width:0;flex:1 1 520px;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:'eye title' 'eye sub';align-items:center;column-gap:12px;row-gap:2px;padding:4px 12px;border-left:1px solid #ffffff26}
.appViewContext small{grid-area:eye;align-self:stretch;display:flex;align-items:center;padding-right:12px;border-right:1px solid #ffffff20;color:#78d69a;font-size:8px;font-weight:1000;letter-spacing:.12em;white-space:nowrap}
.appViewContext b{grid-area:title;color:#fff;font-size:14px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.appViewContext span{grid-area:sub;color:#bfd1da;font-size:9px;line-height:1.25;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.appNavSectionTitle{margin:4px 0 6px;padding:7px 9px!important;border-radius:9px;background:#e9f2f5;color:#315866!important;font-size:10px!important;font-weight:1000!important;box-shadow:inset 3px 0 #3e8098}
.appNavSectionTitle span{color:#18475b;font-size:13px!important}.appNavSectionTitle b{font-weight:1000}

/* Alertas operativas en una sola línea, debajo de la barra principal */
.operationalAlerts{position:sticky;top:var(--topbar-h);z-index:19;display:flex;width:100%;background:#c92b20;box-shadow:0 4px 14px #7d171744}
.operationalAlerts:empty{display:none}
.operationalAlerts .approvalAlert,.operationalAlerts .importPendingAlert{position:relative!important;top:auto!important;z-index:auto!important;margin:0!important;min-height:42px;border-radius:0!important;box-shadow:none!important;animation:approvalPulse 1.8s ease-in-out infinite!important}
.operationalAlerts .approvalAlert{flex:1 1 64%;width:auto!important;border-right:1px solid #ffffff35!important}
.operationalAlerts .importPendingAlert{flex:0 1 36%;display:flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;padding:9px 16px!important}
.operationalAlerts .importPendingAlert[hidden],.operationalAlerts .approvalAlert[hidden]{display:none!important}
.operationalAlerts .importPendingAlert span{font-size:11px}.operationalAlerts .importPendingAlert small{display:inline!important;font-size:9px}

/* El contexto descriptivo vive ahora en la barra superior; dejamos los controles en el cuerpo. */
#machineHero{display:none!important}
.stockHero>div:first-child{display:none!important}.stockHero{justify-content:flex-end!important}.stockHeroControls{width:100%!important}
.externalReadHero>div:first-child,.stopHistoryHero>div:first-child{display:none!important}
.externalReadHero,.stopHistoryHero{justify-content:flex-end!important}.externalReadHero .productionHeroControls,.stopHistoryHero .productionHeroControls{width:100%!important;justify-content:flex-end!important}

/* Estado de vínculos: nunca pintar verde si el archivo real no está accesible. */
.stockHeroControls .stockImportBtn.linkUnavailable{background:#fff0d8!important;color:#8a5200!important;border:1px solid #f2c879!important}

@media(max-width:1150px){
  .appViewContext span{max-width:520px}.appViewContext small{display:none}.appViewContext{grid-template-columns:1fr;grid-template-areas:'title' 'sub';border-left:0;padding-left:4px}
}
@media(max-width:700px){
  .topbar{grid-template-columns:minmax(118px,.8fr) minmax(0,1.6fr) auto!important}
  .appViewContext{min-width:0;display:grid!important;padding:2px 4px!important;border:0!important;gap:1px!important}.appViewContext small{display:none!important}.appViewContext b{font-size:10px!important;white-space:nowrap!important}.appViewContext span{font-size:7.5px!important;line-height:1.15!important;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal!important;overflow:hidden!important}
  .operationalAlerts{position:relative!important;top:auto!important;display:grid!important;grid-template-columns:1fr!important}
  .operationalAlerts .approvalAlert,.operationalAlerts .importPendingAlert{width:100%!important;border-right:0!important;border-bottom:1px solid #ffffff32!important;min-height:38px!important}
  .operationalAlerts .importPendingAlert{display:flex!important}.operationalAlerts .importPendingAlert[hidden]{display:none!important}
  .externalReadHero .productionHeroControls,.stopHistoryHero .productionHeroControls{justify-content:stretch!important}
}
/* V5.1.86 · la alerta única también ocupa todo el ancho */
.operationalAlerts .approvalAlert,.operationalAlerts .importPendingAlert{flex:1 1 100%}
.operationalAlerts:has(.approvalAlert:not([hidden])):has(.importPendingAlert:not([hidden])) .approvalAlert{flex:1 1 64%}
.operationalAlerts:has(.approvalAlert:not([hidden])):has(.importPendingAlert:not([hidden])) .importPendingAlert{flex:0 1 36%}

/* V5.1.87 · alertas más compactas + Menú en la misma franja operativa (escritorio). */
.appMenuAlertBtn{display:none;border:1px solid #ffffff40;background:#163b4c;color:#fff;border-radius:10px;padding:8px 14px;align-items:center;justify-content:center;gap:8px;font-weight:950;cursor:pointer;box-shadow:0 0 0 1px #0a2632 inset;white-space:nowrap}
.appMenuAlertBtn span{font-size:20px;line-height:1}.appMenuAlertBtn b{font-size:12px}.appMenuAlertBtn:hover{background:#0f3040}
@media(min-width:701px){
  body.appMenuInAlertsV5187 .headerActions #appMenuBtn{display:none!important}
  .operationalAlerts{align-items:center;gap:0;padding-right:8px!important;min-height:40px!important}
  .operationalAlerts .approvalAlert,.operationalAlerts .importPendingAlert{min-height:38px!important;padding-top:7px!important;padding-bottom:7px!important}
  .operationalAlerts .approvalAlert{flex:0 1 52%!important;max-width:52%!important;border-right:1px solid #ffffff25!important;font-size:14px!important}
  .operationalAlerts .approvalAlert strong{font-size:10px!important;padding:3px 8px!important}.operationalAlerts .approvalAlert small{font-size:9px!important}
  .operationalAlerts .importPendingAlert{flex:0 1 26%!important;max-width:26%!important;margin-left:auto!important;padding-left:10px!important;padding-right:10px!important}
  .operationalAlerts .importPendingAlert span{font-size:10px!important}.operationalAlerts .importPendingAlert small{font-size:8px!important}
  .operationalAlerts .appMenuAlertBtn:not([hidden]){display:inline-flex!important;flex:0 0 112px;margin-left:7px;height:36px}
  .operationalAlerts:has(.approvalAlert[hidden]) .importPendingAlert:not([hidden]){margin-left:0!important;max-width:42%!important;flex-basis:42%!important}
  .operationalAlerts:has(.importPendingAlert[hidden]) .approvalAlert:not([hidden]){max-width:58%!important;flex-basis:58%!important}
}
@media(max-width:700px){.appMenuAlertBtn{display:none!important}}

.operationalAlerts:not(:has(.approvalAlert:not([hidden]))):not(:has(.importPendingAlert:not([hidden]))){display:none!important}
