/* Shared notification surfaces, independent of mail and form handlers. */
html body :is(.alert,#toast-container,.swal2-popup){--notice-surface:var(--bcp-surface,var(--adm-surface,#fff));--notice-text:var(--bcp-heading,var(--adm-heading,#172337));--notice-muted:var(--bcp-text,var(--adm-text,#596b86));--notice-brand:var(--bcp-primary,var(--adm-primary,#1769df));--notice-contrast:var(--bcp-contrast,var(--adm-contrast,#fff));--notice-tone:#0369a1;--notice-line:color-mix(in srgb,var(--notice-tone) 23%,var(--notice-surface))}
html body .alert{position:relative;padding:13px 42px 13px 44px!important;border:1px solid var(--notice-line)!important;border-left:3px solid var(--notice-tone)!important;border-radius:12px!important;background:color-mix(in srgb,var(--notice-tone) 6%,var(--notice-surface))!important;color:var(--notice-text)!important;font-size:12px;line-height:1.7;box-shadow:0 3px 12px rgba(15,23,42,.04)}
html body .alert-success{--notice-tone:#047857}html body .alert-danger,html body .alert-error{--notice-tone:#be123c}html body .alert-warning{--notice-tone:#a16207}
html body .alert::before{content:'i';position:absolute;left:13px;top:14px;display:flex;align-items:center;justify-content:center;width:21px;height:21px;border-radius:7px;color:var(--notice-tone);background:color-mix(in srgb,var(--notice-tone) 12%,var(--notice-surface));font-size:13px;font-weight:700;line-height:1}
html body .alert-success::before{content:'✓'}html body .alert-danger::before,html body .alert-error::before,html body .alert-warning::before{content:'!'}
html body .alert .alert-link{color:var(--notice-tone)!important;text-decoration:underline}
html body .alert .close{color:var(--notice-muted)!important;opacity:1!important;font-size:20px;text-shadow:none}
html body #toast-container>div{position:relative;width:330px;max-width:calc(100vw - 24px);padding:14px 38px 14px 48px!important;border:1px solid var(--notice-line)!important;border-left:3px solid var(--notice-tone)!important;border-radius:13px!important;background:var(--notice-surface)!important;background-image:none!important;color:var(--notice-text)!important;opacity:1!important;box-shadow:0 8px 28px rgba(15,23,42,.14)!important;margin-bottom:9px;font-family:inherit}
html body #toast-container>.toast-success{--notice-tone:#047857}html body #toast-container>.toast-error{--notice-tone:#be123c}html body #toast-container>.toast-warning{--notice-tone:#a16207}html body #toast-container>.toast-info{--notice-tone:#0369a1}
html body #toast-container>div::before{content:'i';position:absolute;top:16px;left:13px;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:8px;background:color-mix(in srgb,var(--notice-tone) 12%,var(--notice-surface));color:var(--notice-tone);font-size:15px;font-weight:700}
html body #toast-container>.toast-success::before{content:'✓'}html body #toast-container>.toast-error::before,html body #toast-container>.toast-warning::before{content:'!'}
html body #toast-container .toast-title{font-size:12px;font-weight:700;line-height:1.5;margin-bottom:3px}
html body #toast-container .toast-message{font-size:12px;line-height:1.65;overflow-wrap:anywhere;color:var(--notice-muted)}
html body #toast-container .toast-close-button{position:absolute;right:10px;top:8px;color:var(--notice-muted)!important;text-shadow:none;opacity:1;font-size:19px}
html body #toast-container .toast-progress{background:var(--notice-tone)!important;height:3px;opacity:.55}
html body .swal2-popup{width:410px!important;max-width:calc(100vw - 28px)!important;padding:24px 22px 20px!important;border:1px solid color-mix(in srgb,var(--notice-brand) 17%,var(--notice-surface))!important;border-radius:20px!important;background:var(--notice-surface)!important;color:var(--notice-text)!important;box-shadow:0 18px 60px rgba(15,23,42,.2)!important;font-family:inherit!important}
html body .swal2-title{font-size:20px!important;line-height:1.4!important;padding:0!important;color:var(--notice-text)!important}
html body .swal2-html-container{font-size:13px!important;line-height:1.8!important;margin:12px 0 0!important;color:var(--notice-muted)!important;overflow-wrap:anywhere}
html body .swal2-actions{gap:9px;margin-top:20px!important}
html body .swal2-styled{border:0!important;border-radius:10px!important;padding:10px 19px!important;font-size:12px!important;font-weight:600!important;margin:0!important;transition:filter .18s,box-shadow .18s}
html body .swal2-styled.swal2-confirm{background:var(--notice-brand)!important;color:var(--notice-contrast)!important;box-shadow:0 4px 12px color-mix(in srgb,var(--notice-brand) 18%,transparent)!important}
html body .swal2-styled.swal2-cancel{background:color-mix(in srgb,var(--notice-brand) 7%,var(--notice-surface))!important;color:var(--notice-text)!important}
html body .swal2-styled.swal2-deny{background:#be123c!important;color:#fff!important}
html body .swal2-styled:hover{filter:brightness(.96)}html body .swal2-styled:focus:not(:focus-visible){outline:none!important;box-shadow:none!important}html body .swal2-styled:focus-visible{outline:2px solid var(--notice-brand)!important;outline-offset:3px}
html body .swal2-close{color:var(--notice-muted)!important;font-size:28px!important}
html[data-theme=dark] body :is(.alert,#toast-container,.swal2-popup){--notice-surface:var(--bcp-surface,var(--adm-surface,#101d31));--notice-text:var(--bcp-heading,var(--adm-heading,#e7edf8));--notice-muted:var(--bcp-text,var(--adm-text,#a8b9d1));--notice-tone:#7dd3fc}
html[data-theme=dark] body :is(.alert-success,#toast-container>.toast-success){--notice-tone:#6ee7b7}html[data-theme=dark] body :is(.alert-danger,.alert-error,#toast-container>.toast-error){--notice-tone:#fda4af}html[data-theme=dark] body :is(.alert-warning,#toast-container>.toast-warning){--notice-tone:#fbbf24}
@media(max-width:575px){html body #toast-container{max-width:calc(100vw - 24px)}html body #toast-container.toast-top-right{top:12px;right:12px}html body #toast-container.toast-top-left{top:12px;left:12px}html body .swal2-popup{padding:20px 18px!important}html body .swal2-title{font-size:18px!important}}
@media(prefers-reduced-motion:reduce){html body .swal2-styled{transition:none}}

html body #toast-container>div{--notice-line:color-mix(in srgb,var(--notice-tone) 23%,var(--notice-surface))}
html[data-theme=dark] body #toast-container>.toast-info{--notice-tone:#7dd3fc}

/* V2 centered confirmations and lower-center notifications. */
html body .bcp-delete-modal .modal-dialog{max-width:370px;margin-left:auto;margin-right:auto}
html body .bcp-delete-modal .modal-content{background:var(--adm-surface,#fff)!important;border:1px solid var(--adm-line,#e2e7ef)!important;border-radius:19px!important;box-shadow:0 20px 60px rgba(15,23,42,.2);overflow:hidden}
html body .bcp-delete-modal .modal-body{padding:25px 23px 19px!important;color:var(--adm-heading,#172337)}
html body .bcp-delete-warning{display:flex;align-items:center;justify-content:center;width:49px;height:49px;margin:0 auto 15px;border-radius:15px;background:color-mix(in srgb,#be123c 9%,var(--adm-surface,#fff));color:#be123c;font-size:20px;border:1px solid color-mix(in srgb,#be123c 18%,var(--adm-surface,#fff))}
html body .bcp-delete-modal h3{font-size:19px;margin-bottom:9px;color:var(--adm-heading,#172337)}
html body .bcp-delete-modal p{font-size:12px;line-height:1.8;margin:0;color:var(--adm-text,#596b86)}
html body .bcp-delete-modal .modal-footer{justify-content:center;gap:8px;padding:15px 20px 20px!important;border:0!important;background:var(--adm-surface,#fff)!important}
html body .bcp-delete-modal .modal-footer .btn{font-size:12px;border-radius:10px;padding:9px 16px;margin:0}
html[data-theme=dark] body .bcp-delete-warning{color:#fda4af}
html body #toast-container{top:auto!important;left:50%!important;right:auto!important;bottom:20px!important;transform:translateX(-50%);width:330px;max-width:calc(100vw - 24px)}
html body #toast-container>div{width:100%;box-sizing:border-box}
@media(max-width:767px){html body.bcp-customer-panel #toast-container{bottom:calc(91px + max(10px,env(safe-area-inset-bottom,0px)))!important}html body .bcp-delete-modal .modal-dialog{width:calc(100% - 30px)}}

/* Override Toastr status-specific background images without a shorthand reset. */
html body #toast-container > .toast:is(.toast-success,.toast-error,.toast-warning,.toast-info){background-image:none!important;background-repeat:no-repeat!important;background-color:var(--notice-surface)!important}

/* V4 reference-style compact dark toast. */
html body #toast-container{width:340px}
html body #toast-container>.toast{--notice-surface:#1c1c1f;--notice-text:#f5f5f6;--notice-muted:#e1e1e6;padding:14px 54px 14px 45px!important;border:1px solid #303036!important;border-radius:13px!important;min-height:52px;box-shadow:0 8px 25px rgba(0,0,0,.17)!important}
html body #toast-container>.toast::before{top:50%;transform:translateY(-50%);left:15px;width:19px;height:19px;border-radius:50%;background:color-mix(in srgb,var(--notice-tone) 18%,#1c1c1f);font-size:12px;line-height:1;color:var(--notice-tone)}
html body #toast-container>.toast-success{--notice-tone:#a7f3d0}html body #toast-container>.toast-error{--notice-tone:#fda4af}html body #toast-container>.toast-warning{--notice-tone:#fde68a}html body #toast-container>.toast-info{--notice-tone:#b5bac5}
html body #toast-container .toast-title{font-size:11px;margin-bottom:2px;color:#fff}
html body #toast-container .toast-message{font-size:12px;line-height:1.65;color:#ededf0}
html body #toast-container .toast-close-button{display:flex;align-items:center;justify-content:center;top:50%;transform:translateY(-50%);right:9px;width:33px;height:30px;border-left:1px solid #414147!important;font-size:19px!important;font-weight:400;opacity:1!important;color:#ededf0!important;float:none}
html body #toast-container .toast-progress{height:2px;opacity:.3}
html[data-theme=dark] body #toast-container>.toast{--notice-surface:#15253b;border-color:#2c3b51!important;box-shadow:0 8px 25px rgba(0,0,0,.28)!important}

/* V5 draw the close glyph independently of font and global button styles. */
html body #toast-container .toast-close-button{position:absolute!important;display:flex!important;visibility:visible!important;overflow:visible!important;z-index:2;padding:0!important;background:transparent!important;font-size:0!important;line-height:1!important;text-indent:0!important;cursor:pointer;box-shadow:none!important}
html body #toast-container .toast-close-button::before,html body #toast-container .toast-close-button::after{content:""!important;position:absolute!important;display:block!important;visibility:visible!important;top:50%!important;left:50%!important;width:12px!important;height:2px!important;border:0!important;border-radius:2px!important;background:#ededf0!important;opacity:1!important;pointer-events:none}
html body #toast-container .toast-close-button::before{transform:translate(-50%,-50%) rotate(45deg)!important}
html body #toast-container .toast-close-button::after{transform:translate(-50%,-50%) rotate(-45deg)!important}
html body #toast-container .toast-close-button:hover{background:rgba(255,255,255,.08)!important;border-radius:5px}
html body #toast-container .toast-close-button:focus-visible{outline:2px solid #a7f3d0!important;outline-offset:2px}

/* Frontend validation stays beside the form and its fields. */
.bcp-field-error{display:block;color:#be123c;font-size:12px;line-height:1.6;margin:6px 0 0}
html[data-theme=dark] .bcp-field-error{color:#fda4af}
.bcp-invalid-field{border-color:#be123c!important}
html[data-theme=dark] .bcp-invalid-field{border-color:#fda4af!important}
html body .bcp-validation-summary ul{margin:0;padding-left:16px}
html body .bcp-validation-summary{margin-bottom:16px}

/* Public pages do not load Toastr vendor CSS: supply viewport positioning. */
html body #toast-container{position:fixed!important;z-index:2147483000!important;display:block!important;visibility:visible!important;pointer-events:none}
html body #toast-container>.toast{display:block!important;visibility:visible!important;opacity:1!important;pointer-events:auto}

/* Success alerts stay in the relevant form instead of becoming toasts. */
html body .bcp-inline-success{width:100%;margin:14px 0!important;clear:both;flex-basis:100%;text-align:left}
html body .bcp-inline-success:focus{outline:none}
