/* Shared portal app controls. */
[data-app-install-banner][hidden], [data-app-install-ios][hidden], [data-app-install-now][hidden] { display:none !important; }
.portal-install-card {padding:20px;max-width:420px;font-family:inherit;}
.portal-install-card__heading {display:flex;align-items:flex-start;gap:12px;}
.portal-install-card__icon {display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:12px;background:#edf6f3;color:#17665b;font-size:24px;}
.portal-install-card strong {display:block;font-size:17px;line-height:1.4;color:#183c36;}
.portal-install-card p {font-size:14px;line-height:1.65;color:#576e67;margin:6px 0 0;}
.portal-install-card__actions {display:flex;gap:10px;margin-top:18px;}
.portal-app-update .btn {border-radius:12px;padding:10px 16px;font-size:14px;font-weight:600;line-height:1.5;text-transform:none;}
.portal-app-update .btn-success {background:#17665b!important;border:1px solid #17665b!important;color:#fff!important;}
.portal-app-update .btn-outline-secondary {background:#fff!important;border:1px solid #bdcfc7!important;color:#17665b!important;}
.portal-app-update .btn-success:hover {background:#124e46!important;}
.portal-app-update .btn-outline-secondary:hover {background:#edf6f3!important;}
.portal-install-card__actions .btn {flex:1;margin:0;min-height:46px;}
.portal-install-card .portal-install-card__instructions {padding:12px;margin-top:12px;background:#f5f8f7;border-radius:10px;}
[data-app-update][hidden], [data-app-connection][hidden], [data-app-back][hidden], [data-pwa-help][hidden] { display: none !important; }
[data-ios-install-guide][hidden] { display: none !important; }
[data-browser-mic-panel] .btn[data-browser-mic-request] { background: #176157 !important; border-color: #176157 !important; color: #fff !important; min-height: 44px; }
[data-browser-mic-panel] .btn[data-browser-mic-request]:disabled { background: #e7ecea !important; border-color: #ccd8d2 !important; color: #50635e !important; opacity: 1 !important; cursor: not-allowed; }
.portal-ios-guide { margin: 16px; padding: 18px; border: 1px solid #c9dfd8; border-radius: 14px; background: #f0f8f5; color: #183a36; font: 15px/1.65 system-ui,sans-serif; overflow-wrap: break-word; }
.portal-ios-guide p { margin: 8px 0; }
.portal-ios-guide ol { margin: 12px 0; padding-left: 22px; }
.portal-ios-guide li { margin-bottom: 8px; }
.portal-ios-guide button { min-height: 44px; }
.portal-ios-guide summary { cursor: pointer; min-height: 44px; padding: 10px 0; font-weight: 600; }
#appSettings .portal-ios-guide, .login-side .portal-ios-guide { margin: 16px 0; }
.portal-app-bar { position: fixed; top: calc(60px + env(safe-area-inset-top)); left: 0; right: 0; z-index: 1035; padding: 12px 16px; background: #fff3d6; color: #533e13; font: 500 15px/1.5 system-ui,sans-serif; }
.portal-app-update { position: fixed; bottom: max(16px, env(safe-area-inset-bottom)); right: max(16px, env(safe-area-inset-right)); left: max(16px, env(safe-area-inset-left)); z-index: 1080; max-width: 440px; margin-left: auto; padding: 20px; border: 1px solid #c9dfd8; border-radius: 16px; background: #fff; color: #183a36; box-shadow: 0 8px 32px #12352b30; font: 16px/1.5 system-ui,sans-serif; }
.portal-app-update button { min-height: 44px; margin: 4px 8px 0 0; }
.portal-app-update p { margin: 8px 0; }
.portal-app-update button:focus-visible, .portal-app-back:focus-visible, #appSettings button:focus-visible { outline: 3px solid #245caf; outline-offset: 3px; }
.portal-app-back { position: fixed; bottom: max(12px, env(safe-area-inset-bottom)); left: max(12px, env(safe-area-inset-left)); z-index: 1040; min-height: 44px; padding: 8px 16px; border: 1px solid #c9dfd8; border-radius: 24px; background: #fff; color: #174d45; box-shadow: 0 3px 12px #12352b20; }
.portal-push-preferences { margin-top: 24px; padding-top: 20px; border-top: 1px solid #dce8e3; }
.portal-push-preferences label { display: flex; align-items: center; gap: 10px; min-height: 44px; }
.portal-push-preferences input[type=checkbox] { position: static !important; float: none !important; margin: 0 !important; width: 20px; height: 20px; flex-shrink: 0; }
.portal-quiet-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 12px 0; }
.portal-quiet-fields label { display: block; }
.portal-quiet-fields select, .portal-quiet-fields input { width: 100%; min-height: 44px; }
.portal-notifications-heading { gap: 16px; }
.portal-notifications-heading form { flex-shrink: 0; }
.portal-notifications-heading button { min-height: 44px; white-space: nowrap; }
@media(max-width:575px) {
 .portal-quiet-fields { grid-template-columns: 1fr; }
 #appSettings button { min-height: 44px; }
 .portal-notifications-heading { flex-direction: column; align-items: stretch !important; }
 .portal-notifications-heading button { width: 100%; }
}
@media(display-mode:standalone) {
 .header { padding-top: env(safe-area-inset-top); height: calc(60px + env(safe-area-inset-top)); }
 body { padding-bottom: calc(68px + env(safe-area-inset-bottom)); padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); }
 input, select, textarea { font-size: 16px; }
 button, a.btn { touch-action: manipulation; }
}
