.np-install{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d4e5df;border-radius:10px;background:#fff;color:#065f46;padding:11px 16px;font:600 14px/1.4 system-ui;cursor:pointer;max-width:100%;margin:8px 0}.np-install:hover{background:#e9f8f1}.np-install:focus-visible,.np-pwa-modal button:focus-visible{outline:3px solid #10b981;outline-offset:3px}.np-pwa-backdrop{position:fixed;inset:0;background:#10263bb3;display:grid;place-items:center;padding:18px;z-index:10050}.np-pwa-modal{position:relative;background:#fff;color:#172d47;border-radius:22px;padding:28px;max-width:440px;width:100%;box-sizing:border-box;font:15px/1.65 system-ui;box-shadow:0 24px 80px #0003}.np-pwa-modal h2{margin:10px 0;font-size:24px;line-height:1.25}.np-pwa-modal img{width:64px;height:64px;border-radius:17px}.np-pwa-close{position:absolute;right:16px;top:12px;background:none;border:0;font:28px system-ui;cursor:pointer;color:#4b5563}.np-pwa-status{font:14px/1.6 system-ui;color:var(--text-muted,#52647d)}.np-pwa-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}.np-pwa-card{padding:24px;border:1px solid var(--glass-border,#dce3ee);border-radius:16px;background:var(--glass-bg,#fff);margin-bottom:20px}.np-pwa-card h3{margin:0 0 12px}.np-pwa-card label{display:block;font-size:14px;font-weight:600;margin:12px 0 6px}.np-pwa-card input:not([type=checkbox]),.np-pwa-card select,.np-pwa-card textarea{box-sizing:border-box;width:100%;padding:10px;border-radius:8px;border:1px solid var(--glass-border,#dce3ee);background:var(--bg-primary,#fff);color:var(--text-light,#172d47);font:inherit}.np-pwa-card input[type=checkbox]{width:18px;height:18px;margin:0 8px 0 0;vertical-align:middle;accent-color:#047857}.np-pwa-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--glass-border,#dce3ee)}.np-pwa-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.np-pwa-actions .btn{min-height:42px}.np-pwa-inbox-item{display:block;width:100%;text-align:left;border:1px solid var(--glass-border,#dce3ee);border-left:3px solid #10b981;border-radius:10px;background:var(--glass-bg,#fff);color:var(--text-light,#172d47);padding:15px;margin:10px 0;font:inherit;cursor:pointer}.np-pwa-inbox-item[data-read=true]{border-left-color:#bbc6d7}.np-pwa-table{width:100%;border-collapse:collapse;font-size:13px}.np-pwa-table td,.np-pwa-table th{text-align:left;padding:9px;border-bottom:1px solid var(--glass-border,#dce3ee)}.np-update-banner{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:10001;width:min(90%,440px);background:#172d47;color:white;padding:16px;border-radius:14px;font:14px/1.5 system-ui}.np-update-banner button{background:#fff;color:#172d47;border:0;border-radius:6px;padding:8px 12px;margin:10px 8px 0 0;cursor:pointer}@media(display-mode:standalone){[data-pwa-install]{display:none!important}}@media(max-width:540px){.np-pwa-card{padding:18px}.np-pwa-modal{padding:24px}.np-pwa-table{font-size:12px}}[data-theme=dark] .np-install{background:#102b24;color:#b6f5d6;border-color:#285747}
.np-install[hidden]{display:none!important}.np-pwa-card input[type=color]{min-height:44px;padding:5px}.np-pwa-card input[type=color]::-webkit-color-swatch{border:0;border-radius:5px}

/* Public footer installation control */
.site-footer .footer-contact-details{margin:20px 0 16px;gap:10px}
.site-footer .footer-contact-link{font-size:14px;line-height:1.6}
.site-footer .footer-socials{margin:0}
.site-footer .footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.site-footer .footer-copyright{margin:0}
@media(max-width:600px){.site-footer .footer-bottom{flex-direction:column;align-items:flex-start;gap:16px}}
.site-footer .np-install-footer{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:auto;max-width:100%;box-sizing:border-box;min-height:44px;margin:0;padding:10px 15px;border:1px solid #ffffff40;border-radius:8px;background:transparent;color:#edf4f1;font-family:inherit;font-size:14px;font-weight:500;line-height:1.5;box-shadow:none;transition:background .18s,border-color .18s}
.site-footer .np-install-footer .bx{color:#52dba5;font-size:21px;flex-shrink:0}
.site-footer .np-install-footer:hover{background:#ffffff0a;border-color:#52dba5;color:#fff}
.site-footer .np-install-footer:focus-visible{outline:2px solid #52dba5;outline-offset:4px}
@media(prefers-reduced-motion:reduce){.site-footer .np-install-footer{transition:none}}

.np-login-notifications{position:fixed;right:24px;bottom:24px;z-index:9999;width:min(360px,calc(100vw - 32px));box-sizing:border-box;padding:20px;border:1px solid var(--glass-border,#dce3ee);border-radius:16px;background:var(--glass-bg,#fff);color:var(--text-light,#172d47);box-shadow:0 12px 40px #10263b26;font:14px/1.6 system-ui}
.np-login-notifications strong{font-size:16px}.np-login-notifications p{margin:8px 0;color:var(--text-muted,#52647d)}
.np-login-notifications button{border:1px solid var(--glass-border,#cbd5e1);border-radius:8px;padding:10px 14px;font:600 14px system-ui;cursor:pointer;background:transparent;color:inherit;min-height:44px}
.np-login-notifications .np-permission-allow{background:#047857;border-color:#047857;color:#fff}.np-login-notifications button:disabled{opacity:.6;cursor:wait}
.np-login-notifications button:focus-visible{outline:3px solid #10b981;outline-offset:3px}
@media(max-width:540px){.np-login-notifications{right:16px;bottom:16px}}

/* Shared installation action in admin and client sidebars. */
.sidebar .nav-menu{min-height:0}
.portal-sidebar-actions{flex-shrink:0}
.portal-install-slot{border-top:1px solid var(--glass-border,#dce3ee);padding-top:16px;margin:12px 0 8px}
.portal-install-slot:has([data-pwa-install][hidden]){display:none}
.sidebar .np-install-portal{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:44px;box-sizing:border-box;margin:0;padding:10px 14px;border:1px solid #b8d6cc;border-radius:8px;background:#eef8f3;color:#065f46;font-family:inherit;font-size:14px;font-weight:600;line-height:1.5}
.sidebar .np-install-portal .bx{font-size:21px;flex-shrink:0}
.sidebar .np-install-portal:hover{background:#def2e7;border-color:#059669}
[data-theme=dark] .sidebar .np-install-portal{background:#102b24;color:#b6f5d6;border-color:#285747}
[data-theme=dark] .sidebar .np-install-portal:hover{background:#183d32;border-color:#4bba8c}
.sidebar .np-install-portal:focus-visible{outline:3px solid #10b981;outline-offset:3px}

/* Public mobile install action lives beside the portal link in the menu. */
.mobile-menu .np-install-mobile{display:none!important}
@media(max-width:768px){
 .site-footer [data-pwa-install="footer"]{display:none!important}
 .mobile-menu .mobile-cta{display:flex;flex-direction:column;gap:12px}
 .mobile-menu .np-install-mobile:not([hidden]){display:flex!important;align-items:center;justify-content:center;gap:9px;width:100%;min-height:48px;margin:0;padding:12px 16px;box-sizing:border-box;border:1px solid #a6d8c4;border-radius:999px;background:#eef8f3;color:#065f46;font-family:inherit;font-size:15px;font-weight:600;line-height:1.4}
 .mobile-menu .np-install-mobile .bx{font-size:21px}
 .mobile-menu .np-install-mobile:hover{background:#ddf3e7;border-color:#059669}
}
