:root{--pwa-safe-top:env(safe-area-inset-top,0px);--pwa-safe-right:env(safe-area-inset-right,0px);--pwa-safe-bottom:env(safe-area-inset-bottom,0px);--pwa-safe-left:env(safe-area-inset-left,0px)}
html{background:#F4F5FB}.app-shell{padding-left:var(--pwa-safe-left);padding-right:var(--pwa-safe-right)}.topbar{padding-top:max(0px,var(--pwa-safe-top))}.platform-footer{padding-bottom:max(10px,var(--pwa-safe-bottom))}.sidebar{padding-top:var(--pwa-safe-top);padding-bottom:var(--pwa-safe-bottom)}
.pwa-toast{position:fixed;z-index:10050;left:max(14px,var(--pwa-safe-left));bottom:max(18px,calc(var(--pwa-safe-bottom) + 12px));max-width:min(420px,calc(100vw - 28px));padding:11px 15px;border-radius:13px;background:#2f3347;color:#fff;box-shadow:0 14px 38px rgba(30,34,60,.2);font-weight:700;opacity:0;transform:translateY(14px);pointer-events:none;transition:.2s}.pwa-toast.show{opacity:1;transform:none}.pwa-toast.success{background:#176b42}.pwa-toast.danger{background:#a52b2b}
.pwa-install-banner,.pwa-update-banner{position:fixed;z-index:10020;right:max(14px,var(--pwa-safe-right));left:max(14px,var(--pwa-safe-left));bottom:max(14px,calc(var(--pwa-safe-bottom) + 8px));margin:auto;max-width:680px;background:#fff;border:1px solid #e2e4ef;border-radius:18px;box-shadow:0 18px 46px rgba(35,39,82,.18);padding:14px;display:flex;align-items:center;gap:12px}.pwa-install-copy{display:flex;flex-direction:column;gap:3px;flex:1}.pwa-install-copy span{font-size:13px;color:#6d7183}.pwa-install-close,.pwa-update-close{border:0;background:transparent;font-size:24px;line-height:1;color:#777;cursor:pointer}.pwa-update-banner span{flex:1;font-weight:700}
.pwa-launch-screen{display:none}.pwa-standalone .pwa-launch-screen{position:fixed;inset:0;z-index:12000;background:#F4F5FB;display:grid;place-items:center;transition:opacity .22s}.pwa-launch-screen.hide{opacity:0;pointer-events:none}.pwa-launch-card{text-align:center}.pwa-launch-card img{width:92px;height:92px;object-fit:contain;border-radius:24px;background:#fff;padding:10px;box-shadow:0 12px 35px rgba(52,56,130,.16)}.pwa-launch-card strong{display:block;margin-top:14px;font-size:21px;color:#343853}
.pwa-status-summary{border-radius:16px;padding:15px 17px;margin:0 0 16px;font-weight:700}.pwa-status-summary.checking{background:#f4f4f8;color:#646879}.pwa-status-summary.ok{background:#edf9f1;color:#176b42;border:1px solid #ccebd7}.pwa-status-summary.bad{background:#fff0f0;color:#9d2424;border:1px solid #ffcaca}.pwa-issue{margin-top:10px;padding-top:10px;border-top:1px solid currentColor;font-weight:500}.pwa-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.pwa-status-item{border:1px solid #e1e3ee;border-radius:14px;padding:12px;background:#fff}.pwa-status-item .label{font-size:12px;color:#777c8e}.pwa-status-item .value{margin-top:5px;font-weight:700}.pwa-status-item.good .value{color:#176b42}.pwa-status-item.bad .value{color:#a52b2b}.pwa-diagnostic-meta{font-size:12px;color:#777c8e;margin-top:12px}.pwa-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}
html.is-offline .online-only-action{opacity:.55;pointer-events:none}
.modal,.platform-dialog-card,[role="dialog"]{max-height:calc(100dvh - var(--pwa-safe-top) - var(--pwa-safe-bottom) - 24px);overflow:auto;-webkit-overflow-scrolling:touch}.signature-pad,canvas.signature-pad{touch-action:none;overscroll-behavior:contain}.table-wrap{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
@media(max-width:700px){.pwa-install-banner,.pwa-update-banner{align-items:flex-start;flex-wrap:wrap}.pwa-install-banner .btn,.pwa-update-banner .btn{min-height:44px}.pwa-status-grid{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.pwa-status-grid{grid-template-columns:1fr}.pwa-install-copy{min-width:0}}
@media print{.pwa-toast,.pwa-install-banner,.pwa-update-banner,.pwa-launch-screen{display:none!important}}
