/* Notifications stay in the corner; their source remains available without JavaScript. */
.app-notice-source { display:none!important; }
.app-toast-region { top:calc(72px + env(safe-area-inset-top)); gap:.5rem; max-height:calc(100dvh - 150px); }
.app-toast { border-radius:10px; padding:.65rem; gap:.5rem; }
.app-toast-message { font-size:.83rem; max-height:min(240px,32dvh); overflow:auto; }
.app-toast-message p { margin:0 0 .4rem; }.app-toast-message p:last-child { margin-bottom:0; }
.app-toast-message a { text-decoration:underline; }.app-toast-message ul,.app-toast-message ol { padding-left:1.2rem; margin:.25rem 0; }
.app-notification-toggle { display:inline-flex;align-items:center;justify-content:center;position:relative;flex:0 0 36px;width:36px;height:36px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--primary);cursor:pointer; }
.app-notification-toggle:focus-visible { outline:2px solid var(--primary);outline-offset:2px; }
.app-notification-count:not(:empty) { position:absolute;top:-5px;right:-5px;min-width:17px;height:17px;display:grid;place-items:center;padding:0 3px;border-radius:20px;background:var(--primary);color:#fff;font-size:10px;font-weight:700; }
.app-notification-toggle.is-floating { position:fixed;z-index:300;right:1rem;top:1rem; }
.app-notification-panel { position:fixed;z-index:325;top:calc(72px + env(safe-area-inset-top));right:max(1rem,env(safe-area-inset-right));width:min(420px,calc(100vw - 2rem));max-height:calc(100dvh - 150px);overflow:auto;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:0 12px 40px #142d4930;color:var(--text); }
.app-notification-panel[hidden] { display:none; }
.app-notification-panel>header { position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem .8rem;background:#fff;border-bottom:1px solid var(--border); }
.app-notification-list { padding:0 .8rem; }.app-notification-list>.muted { font-size:.85rem; }
.app-notification-entry { padding:.8rem 0;border-bottom:1px solid var(--border);font-size:.85rem;overflow-wrap:anywhere; }
.app-notification-entry time { display:block;font-size:.7rem;color:var(--muted);margin-bottom:.25rem; }.app-notification-entry p { margin:.25rem 0; }
.app-confirm-dialog { position:fixed;inset:calc(72px + env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) auto auto;margin:0;width:min(420px,calc(100vw - 2rem));max-height:calc(100dvh - 140px);overflow:auto;padding:1rem;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text);box-shadow:0 12px 40px #142d4930; }
.app-confirm-dialog::backdrop { background:rgba(16,24,40,.18); }.app-confirm-dialog h2 { font-size:1rem;margin:0 0 .6rem; }.app-confirm-dialog p { font-size:.9rem;line-height:1.5;margin:0 0 1rem;overflow-wrap:anywhere; }
.app-confirm-actions { display:flex;justify-content:flex-end;gap:.5rem; }
@media(max-width:640px) {
 .app-toast-region { top:calc(66px + env(safe-area-inset-top));left:auto;right:max(.5rem,env(safe-area-inset-right));width:min(350px,calc(100vw - 1rem)); }
 .app-toast { grid-template-columns:24px minmax(0,1fr) 28px; }.app-toast-icon { width:24px;height:24px;font-size:.75rem; }
 .app-notification-panel,.app-confirm-dialog { top:calc(66px + env(safe-area-inset-top));right:.5rem;width:calc(100vw - 1rem); }
 .mobilebar-tools { gap:.3rem; }.mobilebar-tools .app-notification-toggle { width:32px;height:32px;flex-basis:32px; }
 .lp-top .app-notification-toggle { display:none; }.guest .app-notification-toggle.is-floating { top:76px; }
}
@media(max-width:640px) {
 .lp-top .app-notification-toggle { display:inline-flex;position:fixed;top:76px;right:.5rem;z-index:300; }
}
.app-confirm-dialog>input { width:100%; margin:0 0 1rem; }
/* SVG geometry, message line box and close target share the same centre line. */
.app-toast { grid-template-columns:28px minmax(0,1fr) 28px;align-items:center;gap:10px;padding:10px 12px; }
.app-toast .app-toast-icon { width:28px;height:28px;padding:0;display:grid;place-items:center;border:0;line-height:0; }
.app-toast .app-toast-message { padding:0;margin:0;line-height:1.5; }
.app-toast .app-toast-close,.app-notification-panel .app-toast-close { display:grid;place-items:center;width:28px;height:28px;min-height:28px;padding:0;margin:0;line-height:0; }
.app-toast-icon>.ui-icon { display:block;width:20px;height:20px;vertical-align:middle; }
.app-toast-close>.ui-icon { display:block;width:16px;height:16px;vertical-align:middle; }
.app-notification-toggle>.ui-icon { display:block;width:20px;height:20px;vertical-align:middle; }
@media(max-width:640px) {
 .app-toast { grid-template-columns:28px minmax(0,1fr) 28px;gap:8px;padding:10px; }
}
