/* Gradebook Enterprise App-Native Experience — 2026.08.27.010 */
[data-pwa-install-item][hidden],[data-pwa-install][hidden]{display:none!important}
.landing-app-install{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px}
.landing-install-app{display:inline-flex;align-items:center;gap:9px;min-height:46px;padding:11px 17px;border:1px solid #c9d8ed;border-radius:12px;background:#fff;color:#0b2545;box-shadow:0 8px 24px #102a4312;font:inherit;cursor:pointer}
.landing-install-app:hover,.landing-install-app.pwa-install-ready{border-color:#175cd3;color:#175cd3;transform:translateY(-1px)}
.landing-install-app>span{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#eef4ff;color:#175cd3;font-size:18px;font-weight:900}
.landing-app-install>small{color:#60758b;font-weight:650}
.pwa-user-install-action{width:100%;border:0;background:transparent;text-align:left;font:inherit;cursor:pointer}
.pwa-user-install-action>span{font-size:19px;font-weight:900}
.pwa-install-dialog{width:min(560px,calc(100vw - 30px));padding:0;border:1px solid #d8e2ee;border-radius:20px;background:#fff;color:#12263f;box-shadow:0 30px 100px #081b3340}
.pwa-install-dialog::backdrop{background:#06172a80;backdrop-filter:blur(4px)}
.pwa-install-dialog-head{display:flex;justify-content:space-between;gap:18px;padding:22px 24px 16px;border-bottom:1px solid #e6ebf2}
.pwa-install-dialog-head span{display:block;color:#175cd3;font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.pwa-install-dialog-head h2{margin:4px 0 0;font-size:23px}.pwa-install-dialog-head button{width:36px;height:36px;padding:0;border-radius:50%;background:#eef3f8;color:#173957;font-size:23px}
.pwa-install-dialog-body{padding:20px 24px;color:#52677d}.pwa-install-dialog-body p{margin:0 0 14px}
.pwa-install-device-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.pwa-install-device-grid article{display:grid;gap:3px;padding:13px;border:1px solid #e1e7ef;border-radius:13px;background:#f8fafc}
.pwa-install-device-grid b{color:#142a43}.pwa-install-device-grid span{font-size:12px;color:#6b7d90}
.pwa-install-help{padding:13px;border-radius:12px;background:#eef5ff;color:#31506d}
.pwa-install-dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px 22px}
.pwa-network-status{position:fixed;z-index:260;left:50%;bottom:max(86px,calc(16px + env(safe-area-inset-bottom)));transform:translateX(-50%);max-width:min(680px,calc(100vw - 24px));padding:10px 14px;border-radius:999px;background:#17243d;color:#fff;box-shadow:0 12px 30px #06172a35;font-size:12px;font-weight:700;text-align:center}

/* Installed navigation:
   - Desktop/tablet PWA: use the enterprise left navigation only.
   - Installed phone PWA: use a five-destination bottom app bar.
   The phone class is set from device capability, not merely window width,
   so resizing a desktop window never creates a mobile bottom bar. */
.pwa-app-dock{display:none!important}

html.gradebook-installed-app,html.gradebook-installed-app body{overscroll-behavior:none}
html.gradebook-installed-app body.dashboard-shell .site-footer{display:none!important}

html.gradebook-installed-app.gradebook-phone-app body.enterprise-shell-v3 .shell{
  padding-bottom:calc(90px + env(safe-area-inset-bottom))
}
html.gradebook-installed-app.gradebook-phone-app .pwa-app-dock{
  position:fixed;
  z-index:180;
  left:0;
  right:0;
  bottom:0;
  transform:none;
  width:100%;
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:0;
  padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));
  border:1px solid color-mix(in srgb,var(--line,#dce4ee) 85%,transparent);
  border-width:1px 0 0;
  border-radius:18px 18px 0 0;
  background:#fff;
  backdrop-filter:none;
  box-shadow:0 -10px 30px #081b3318
}
html.gradebook-installed-app.gradebook-phone-app .pwa-dock-item{
  min-width:0;
  min-height:58px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:5px 3px;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#60758b;
  text-decoration:none!important;
  font:inherit;
  cursor:pointer
}
html.gradebook-installed-app.gradebook-phone-app .pwa-dock-item:hover,
html.gradebook-installed-app.gradebook-phone-app .pwa-dock-item.active{
  background:var(--school-accent-soft);
  color:var(--school-accent-dark)
}
html.gradebook-installed-app.gradebook-phone-app .pwa-dock-item>span{
  width:22px;height:22px;display:grid;place-items:center
}
html.gradebook-installed-app.gradebook-phone-app .pwa-dock-item svg{
  width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round
}
html.gradebook-installed-app.gradebook-phone-app .pwa-dock-item>b{
  max-width:100%;font-size:9px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
html[data-theme="dark"].gradebook-installed-app.gradebook-phone-app .pwa-app-dock{
  background:#111d2c;
  border-color:#30455e;
  box-shadow:0 -12px 34px #0006
}
html[data-theme="dark"].gradebook-installed-app.gradebook-phone-app .pwa-dock-item{color:#9fb0c5}
html[data-theme="dark"].gradebook-installed-app.gradebook-phone-app .pwa-dock-item.active,
html[data-theme="dark"].gradebook-installed-app.gradebook-phone-app .pwa-dock-item:hover{
  color:#eaf2ff;
  background:color-mix(in srgb,var(--school-accent) 20%,#111d2c)
}

/* Keep connectivity notices above the mobile phone dock, but near the
   bottom edge on desktop/tablet installed windows. */
.pwa-network-status{bottom:max(16px,env(safe-area-inset-bottom))}
html.gradebook-installed-app.gradebook-phone-app .pwa-network-status{
  bottom:calc(84px + env(safe-area-inset-bottom))
}

/* Installed desktop PWA: use Gradebook's own app bar in the OS title-bar area where supported. */
@media (display-mode: window-controls-overlay) and (min-width:801px){
  body.enterprise-shell-v3 .app-header{box-shadow:0 1px 0 color-mix(in srgb,var(--line,#dce4ee) 80%,transparent)}
  html.gradebook-window-overlay body.enterprise-shell-v3 .app-header{background:color-mix(in srgb,#fff 94%,var(--school-accent-soft))}
  html[data-theme="dark"].gradebook-window-overlay body.enterprise-shell-v3 .app-header{background:#111d2c}
}

@media(max-width:800px){
  html,body{max-width:100%;overflow-x:hidden}
  body.enterprise-shell-v3 .shell{width:100%;max-width:100%;padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
  body.enterprise-shell-v3 .app-sidebar{padding-left:env(safe-area-inset-left)}
  body.enterprise-shell-v3 .app-header{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
  body.enterprise-shell-v3 input,body.enterprise-shell-v3 select,body.enterprise-shell-v3 textarea{font-size:16px}
  body.enterprise-shell-v3 button,body.enterprise-shell-v3 .button,body.enterprise-shell-v3 a.enterprise-user-action{min-height:44px}
  .table-wrap{max-width:100%;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
}
@media(max-width:560px){
  .landing-app-install{align-items:flex-start;flex-direction:column}.landing-install-app{width:100%;justify-content:center}
  .pwa-install-device-grid{grid-template-columns:1fr}.pwa-install-dialog-head,.pwa-install-dialog-body,.pwa-install-dialog-actions{padding-left:17px;padding-right:17px}.pwa-install-dialog-actions{display:grid;grid-template-columns:1fr 1fr}.pwa-install-dialog-actions button{width:100%}
  body.enterprise-shell-v3 .enterprise-period-context b{max-width:45vw;overflow:hidden;text-overflow:ellipsis}body.enterprise-shell-v3 .theme-toggle small{display:none}body.enterprise-shell-v3 .theme-toggle{width:42px;padding-inline:0}
}
@media(prefers-reduced-motion:reduce){.landing-install-app,.pwa-dock-item{transition:none!important}}
@media print{.pwa-app-dock,.pwa-network-status,.pwa-install-dialog{display:none!important}}


/* Release 2026.08.27.014 — phone-teacher app refinement */
html.gradebook-installed-app.gradebook-phone-app .pwa-app-dock-teacher{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  padding-left:max(10px,env(safe-area-inset-left));
  padding-right:max(10px,env(safe-area-inset-right))
}
html.gradebook-installed-app.gradebook-phone-app .pwa-app-dock{
  border-radius:20px 20px 0 0;
  box-shadow:0 -14px 38px rgba(8,27,51,.18)
}
html.gradebook-installed-app.gradebook-phone-app .pwa-dock-item{
  min-height:62px;
  color:#536a80
}
html.gradebook-installed-app.gradebook-phone-app .pwa-dock-item>b{font-size:10px}
html.gradebook-installed-app.gradebook-phone-app body.sidebar-mobile-open .pwa-app-dock{
  transform:translateY(105%);
  opacity:0;
  pointer-events:none
}
html.gradebook-installed-app.gradebook-phone-app body.enterprise-shell-v3 .shell{
  padding-bottom:calc(98px + env(safe-area-inset-bottom))
}
@media(max-width:800px){
  body.enterprise-shell-v3 main.shell{padding-top:18px}
  body.enterprise-shell-v3 .academic-ops-page-head{grid-template-columns:1fr!important;padding:18px!important;border-radius:18px!important}
  body.enterprise-shell-v3 .academic-ops-page-head h2{font-size:clamp(28px,8.5vw,36px)!important;line-height:1.05!important;overflow-wrap:anywhere}
  body.enterprise-shell-v3 .academic-ops-page-head>div:last-child{width:100%;justify-self:stretch}
  body.enterprise-shell-v3 .academic-ops-tabs{display:flex!important;overflow-x:auto!important;gap:6px!important;padding:6px!important;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  body.enterprise-shell-v3 .academic-ops-tabs>a{flex:0 0 auto;min-height:44px;scroll-snap-align:start;white-space:nowrap}
}


/* Release 2026.08.27.018 — mobile dock reliability. The JS class remains the
   authoritative signal, but iPhone/Android portrait gets a standards-based
   standalone fallback so the dock cannot disappear simply because app-mode
   detection JavaScript was delayed by a stale service worker. */
html.gradebook-installed-app.gradebook-phone-app .pwa-app-dock{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
@media (display-mode:standalone) and (max-width:600px) and (pointer:coarse){
  .pwa-app-dock{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    opacity:1!important;visibility:visible!important;pointer-events:auto!important
  }
}
html.mobile-keyboard-open .pwa-app-dock,
html.gradebook-sheet-open .pwa-app-dock{
  transform:translateY(108%)!important;
  opacity:0!important;
  pointer-events:none!important
}
