:root{
  --ospwa-navy:#0b2944;
  --ospwa-blue:#175b8e;
  --ospwa-border:#d9e5ef
}
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-behavior:smooth
}
body{
  max-width:100%;
  overflow-x:hidden;
  touch-action:manipulation
}
img,video,canvas,svg,iframe{
  max-width:100%;
  height:auto
}
input,select,textarea,button{
  max-width:100%;
  font-size:16px
}
.table-wrap,.table-responsive,.os-table-scroll{
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch
}
.os-pwa-header-install{
  display:none!important
}
.os-pwa-header-install.is-visible{
  display:inline-flex!important
}
.os-pwa-install-banner{
  position:fixed;
  z-index:99990;
  left:max(12px,env(safe-area-inset-left));
  right:max(12px,env(safe-area-inset-right));
  bottom:max(12px,env(safe-area-inset-bottom));
  display:none;
  align-items:center;
  gap:14px;
  max-width:760px;
  margin:0 auto;
  padding:13px 14px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:18px;
  color:#fff;
  background:linear-gradient(135deg,#0b2944,#175b8e 72%,#0ea5e9);
  box-shadow:0 20px 48px rgba(15,39,61,.34);
  backdrop-filter:blur(14px)
}
.os-pwa-install-banner.is-visible{display:flex}
.os-pwa-install-icon{
  width:46px;height:46px;flex:0 0 46px;border-radius:13px;
  display:grid;place-items:center;background:#fff
}
.os-pwa-install-icon img{width:36px;height:36px;border-radius:9px}
.os-pwa-install-copy{min-width:0;flex:1}
.os-pwa-install-copy strong{display:block;font-size:14px}
.os-pwa-install-copy small{
  display:block;margin-top:3px;color:#d7eaf8;line-height:1.35;font-size:12px
}
.os-pwa-install-actions{display:flex;gap:7px}
.os-pwa-install-btn,.os-pwa-dismiss-btn{
  min-height:40px;border:0;border-radius:10px;padding:9px 12px;font-weight:800;cursor:pointer
}
.os-pwa-install-btn{background:#fff;color:#17486e}
.os-pwa-dismiss-btn{background:rgba(255,255,255,.13);color:#fff}
.os-pwa-offline-pill{
  position:fixed;z-index:99989;top:max(8px,env(safe-area-inset-top));left:50%;
  transform:translateX(-50%) translateY(-80px);padding:8px 13px;border-radius:999px;
  color:#fff;background:#b45309;font-size:12px;font-weight:800;
  box-shadow:0 8px 20px rgba(0,0,0,.18);transition:transform .25s ease
}
.os-pwa-offline-pill.is-visible{
  transform:translateX(-50%) translateY(0)
}
.os-pwa-update-toast{
  position:fixed;z-index:99991;right:14px;bottom:90px;display:none;
  max-width:calc(100% - 28px);padding:12px 14px;border-radius:13px;
  background:#fff;color:#243447;border:1px solid var(--ospwa-border);
  box-shadow:0 16px 34px rgba(15,39,61,.18)
}
.os-pwa-update-toast.is-visible{display:block}
.os-pwa-update-toast button{
  margin-left:8px;border:0;border-radius:8px;padding:7px 10px;
  background:#175b8e;color:#fff;font-weight:800
}
@media(display-mode:standalone){
  body{
    padding-left:env(safe-area-inset-left);
    padding-right:env(safe-area-inset-right);
    padding-bottom:env(safe-area-inset-bottom)
  }
  .pwa-hide-when-installed{display:none!important}
}
@media(max-width:767px){
  h1{font-size:clamp(1.55rem,7vw,2.1rem)}
  h2{font-size:clamp(1.3rem,6vw,1.75rem)}
  h3{font-size:clamp(1.1rem,5vw,1.35rem)}
  .btn,button,a.btn{min-height:44px;white-space:normal}
  .form-control,.form-select,input,textarea,select{min-height:44px}
  .card,.section,.stat-card{max-width:100%}
  .modal-dialog{margin:.5rem}
  .os-pwa-install-banner{align-items:flex-start;flex-wrap:wrap}
  .os-pwa-install-actions{width:100%}
  .os-pwa-install-btn{flex:1}
}
@media(max-width:420px){
  .os-pwa-install-icon{display:none}
}
