.app-update-banner{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%) translateY(18px);width:min(620px,calc(100% - 28px));box-sizing:border-box;z-index:10000;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--text);box-shadow:0 16px 44px rgba(6,21,47,.24);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.app-update-banner.is-visible{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}.app-update-banner-copy{min-width:0}.app-update-banner-copy strong{display:block;margin-bottom:2px}.app-update-banner-copy span{display:block;color:var(--muted);font-size:.86rem;line-height:1.4}.app-update-banner-actions{display:flex;gap:8px;flex:0 0 auto}.app-update-banner button{white-space:nowrap}.app-update-banner-dismiss{border:0;background:transparent;color:var(--muted);font-size:1.15rem;cursor:pointer;padding:8px}.admin-update-panel{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.admin-update-panel summary{cursor:pointer;font-weight:800}.admin-update-lock,.admin-update-controls{display:grid;gap:10px;margin-top:12px}.admin-update-code{width:100%;box-sizing:border-box}.admin-update-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-update-status{margin:0;color:var(--muted);font-size:.84rem;line-height:1.5}.admin-update-builds{margin:0;color:var(--muted);font-size:.8rem}.admin-update-danger-note{margin:0;color:var(--muted);font-size:.76rem;line-height:1.45}@media(max-width:560px){.app-update-banner{align-items:stretch;display:grid}.app-update-banner-actions{display:grid;grid-template-columns:1fr auto}.app-update-banner-actions .primary-button{width:100%}.admin-update-actions{grid-template-columns:1fr}}\n

/* Build 1.7.09: clearer update notice and completed-update cleanup state */
.app-update-banner{
  isolation:isolate;
  border:3px solid #f0bd55!important;
  background-color:#102b4d!important;
  background-image:linear-gradient(135deg,#102b4d 0%,#17456e 100%)!important;
  color:#fff!important;
  box-shadow:0 18px 48px rgba(4,18,38,.38),0 0 0 4px rgba(240,189,85,.16)!important;
  padding:15px 16px!important;
}
.app-update-banner-icon{
  display:grid;place-items:center;flex:0 0 auto;
  width:38px;height:38px;border-radius:999px;
  background:#f0bd55;color:#102b4d;font-size:1.35rem;font-weight:900;
}
.app-update-banner-copy{
  flex:1 1 auto;
  padding:10px 12px;
  border:2px solid #8dd8ef;
  border-radius:12px;
  background:#f7fbff;
  box-shadow:inset 0 1px 0 #fff,0 4px 12px rgba(3,24,48,.18);
}
.app-update-banner-copy strong{color:#0b2745!important;font-size:1rem!important;}
.app-update-banner-copy span{color:#334e68!important;font-weight:650;}
.app-update-banner .app-update-now{
  background:#f0bd55!important;color:#102b4d!important;border-color:#f0bd55!important;font-weight:900!important;
}
.app-update-banner-dismiss{color:#fff!important;opacity:.9;}
.app-update-banner.is-updating{pointer-events:none;}
.app-update-banner.is-updating .app-update-banner-dismiss{opacity:.45;}
@media(max-width:560px){
  .app-update-banner{grid-template-columns:auto 1fr!important;align-items:center!important;}
  .app-update-banner-actions{grid-column:1 / -1!important;}
}
@media(min-width:1050px){
  .app-update-banner{
    left:calc(50% + 129px)!important;
    width:min(620px,calc(100vw - 282px))!important;
    max-width:calc(100vw - 282px)!important;
  }
}
