/* PWA additions: install banner, biometric unlock UI. Uses the existing LMS colour tokens. */
.pwa-banner,.pwa-sheet{position:fixed;left:12px;right:12px;z-index:9000;max-width:520px;margin:0 auto;
  background:#fff;color:var(--text,#182033);border:1px solid var(--line,#e5e9f2);border-radius:16px;
  box-shadow:0 12px 40px rgba(24,32,51,.18);padding:14px 16px;
  bottom:calc(12px + env(safe-area-inset-bottom,0px))}
.pwa-banner h3,.pwa-sheet h3{margin:0 0 4px;font-size:16px}
.pwa-banner p,.pwa-sheet p{margin:4px 0 10px;font-size:14px;line-height:1.5;color:var(--muted,#697386)}
.pwa-row{display:flex;gap:8px;flex-wrap:wrap}
.pwa-row .btn{flex:1 1 auto;min-width:120px}
.pwa-steps{margin:6px 0 10px;padding-left:20px;font-size:14px;line-height:1.7;color:var(--text,#182033)}
.bio-unlock{max-width:420px;margin:0 auto 16px;text-align:center;padding:24px 20px;display:grid;gap:12px}
.bio-unlock h2{margin:0;font-size:20px}
.bio-unlock p{margin:0;color:var(--muted,#697386);font-size:14px;line-height:1.5}
.bio-icon{width:64px;height:64px;margin:0 auto;border-radius:50%;display:grid;place-items:center;
  background:rgba(48,86,211,.1);color:var(--primary,#3056d3)}
.bio-icon svg{width:34px;height:34px}
.bio-msg{font-size:14px;border-radius:10px;padding:9px 12px}
.bio-msg.err{background:#fdecec;color:#a62b2b}
.bio-msg.ok{background:#e8f6ee;color:#14804a}
.bio-devices{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.bio-devices li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;
  border:1px solid var(--line,#e5e9f2);border-radius:12px;font-size:14px}
.bio-devices small{display:block;color:var(--muted,#697386)}
.bio-pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600}
.bio-pill.on{background:#e8f6ee;color:#14804a}.bio-pill.off{background:#eef1f6;color:#697386}
@media print{.pwa-banner,.pwa-sheet{display:none!important}}
@media (display-mode:standalone){
  .site-footer{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
  body{-webkit-tap-highlight-color:transparent}
}
@media (display-mode:standalone) and (max-width:768px){
  input,select,textarea{font-size:16px} /* stops iOS from zooming into fields */
}

/* display:grid on cards would otherwise defeat the [hidden] attribute */
.login-card[hidden],.bio-unlock[hidden],.bio-msg[hidden],.pwa-banner[hidden],.pwa-sheet[hidden]{display:none!important}
