.toast-title{font-weight:700}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999;pointer-events:none}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{position:relative;pointer-events:auto;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}#toast-container>:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{width:300px;margin-left:auto;margin-right:auto}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{width:96%;margin-left:auto;margin-right:auto}.toast{background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}}

/* ============================================================================
   THREE / Rebuild 2026 - Toastr 2.1.2 theme
   ============================================================================
   Load AFTER toastr.min.css and AFTER other CSS that customizes Toastr.
   No JavaScript changes. Existing toastr.info/success/error/warning work as-is.
   All icons are inline SVG data URIs: no icon font, images, or new dependencies.
   ============================================================================ */

/* Keep Toastr's existing positioning, stacking, dismissal, and animation. */
#toast-container {
    font-family: "altform", "Segoe UI", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}

/* Consistent notification card, matching THREE's rounded, calm surfaces. */
#toast-container > div {
    box-sizing: border-box;
    width: min(390px, calc(100vw - 32px));
    min-height: 72px;
    margin: 0 0 12px;
    padding: 18px 44px 19px 56px;
    border: 1px solid var(--three-toast-border, #d8dcd3);
    border-radius: 16px;
    background-color: var(--three-toast-bg, #fcfcf9);
    background-image: none !important; /* Override Toastr's white PNG icons. */
    color: var(--three-toast-text, #252d29);
    box-shadow: 0 12px 36px rgba(22, 51, 42, .13),
                0 2px 7px rgba(22, 51, 42, .045);
    opacity: 1 !important; /* Default Toastr opacity is only 80%. */
    font-size: 13px;
    line-height: 1.55;
    overflow: hidden;
    transition: box-shadow .18s ease;
}

#toast-container > div:hover {
    opacity: 1 !important;
    box-shadow: 0 17px 46px rgba(22, 51, 42, .18),
                0 3px 9px rgba(22, 51, 42, .06);
}

/* The original PNG backgrounds are declared with !important on individual
   toast types. This matching-specificity override removes them cleanly. */
#toast-container > .toast-info,
#toast-container > .toast-success,
#toast-container > .toast-error,
#toast-container > .toast-warning {
    background-image: none !important;
}

/* Small icon panel; all icons use system-independent inline SVG. */
#toast-container > div::before {
    content: "";
    position: absolute;
    top: 18px;
    left: 18px;
    width: 22px;
    height: 22px;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 22px 22px;
}

/* INFO - light botanical green */
#toast-container > .toast-info {
    --three-toast-bg: #e9f5e9;
    --three-toast-border: #bddac1;
    --three-toast-text: #244638;
    --three-toast-progress: #4b9870;
}
#toast-container > .toast-info::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%232a7554' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E");
}

/* SUCCESS - vibrant/neon green, grounded by dark forest-green typography */
#toast-container > .toast-success {
    --three-toast-bg: #c8ff73;
    --three-toast-border: #a5e846;
    --three-toast-text: #173d32;
    --three-toast-progress: #197b3b;
}
#toast-container > .toast-success::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23173d32' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12 2.7 2.7L16.5 9'/%3E%3C/svg%3E");
}

/* ERROR / FAILURE - gentle red surface, strong enough icon/text contrast */
#toast-container > .toast-error {
    --three-toast-bg: #fde9e7;
    --three-toast-border: #efbdb9;
    --three-toast-text: #713237;
    --three-toast-progress: #be4b52;
}
#toast-container > .toast-error::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23b23a44' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m9 9 6 6m0-6-6 6'/%3E%3C/svg%3E");
}

/* WARNING - warm neutral amber, for existing toastr.warning() calls */
#toast-container > .toast-warning {
    --three-toast-bg: #fff2db;
    --three-toast-border: #eddbba;
    --three-toast-text: #644a25;
    --three-toast-progress: #b08032;
}
#toast-container > .toast-warning::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23946b2c' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 4.4a2 2 0 0 1 3.4 0l8 13.6a2 2 0 0 1-1.7 3H4a2 2 0 0 1-1.7-3z'/%3E%3Cpath d='M12 9v5M12 18h.01'/%3E%3C/svg%3E");
}

#toast-container .toast-title {
    margin: 0 20px 4px 0;
    font-weight: 400; /* Matches the actual Altform Regular font. */
    font-size: 15px;
    letter-spacing: -.01em;
    line-height: 1.25;
}

#toast-container .toast-message {
    font-size: 13px;
    line-height: 1.6;
    overflow-wrap: anywhere; /* Long translated content / server errors. */
}

#toast-container .toast-message a,
#toast-container .toast-message label {
    color: inherit;
}
#toast-container .toast-message a {
    text-decoration: underline;
    text-underline-offset: 3px;
}
#toast-container .toast-message a:hover {
    color: inherit;
    text-decoration: underline;
    opacity: .8;
}

/* Optional close button: works if callers already enable closeButton. */
#toast-container button.toast-close-button {
    position: absolute;
    z-index: 1;
    top: 8px;
    right: 9px;
    display: grid;
    place-items: center;
    float: none;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: inherit;
    background: transparent;
    font-family: Arial, sans-serif;
    font-size: 23px;
    font-weight: 400;
    line-height: 1;
    text-shadow: none;
    opacity: .62;
}
#toast-container button.toast-close-button:hover,
#toast-container button.toast-close-button:focus {
    color: inherit;
    background: rgba(23, 61, 50, .08);
    opacity: 1;
}
#toast-container button.toast-close-button:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 1px;
}

/* If existing options enable progressBar, inherit each toast's accent color. */
#toast-container .toast-progress {
    left: 0;
    bottom: 0;
    height: 3px;
    border-radius: 0 0 0 16px;
    background-color: var(--three-toast-progress, #173d32);
    opacity: .85;
}

/* A little breathing room without changing the configured position class. */
#toast-container.toast-top-right,
#toast-container.toast-bottom-right {
    right: 20px;
}
#toast-container.toast-top-left,
#toast-container.toast-top-right {
    top: 20px;
}
#toast-container.toast-bottom-left,
#toast-container.toast-bottom-right {
    bottom: 20px;
}
#toast-container.toast-top-left,
#toast-container.toast-bottom-left {
    left: 20px;
}

/* Preserve Toastr's special full-width modes and responsive centered modes. */
#toast-container.toast-top-full-width > div,
#toast-container.toast-bottom-full-width > div { width: 96%; }
#toast-container.toast-top-center > div,
#toast-container.toast-bottom-center > div {
    width: min(390px, calc(100vw - 32px));
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 520px) {
    #toast-container.toast-top-right,
    #toast-container.toast-bottom-right { right: 12px; }
    #toast-container.toast-top-left,
    #toast-container.toast-bottom-left { left: 12px; }
    #toast-container.toast-top-right,
    #toast-container.toast-top-left { top: 12px; }
    #toast-container.toast-bottom-right,
    #toast-container.toast-bottom-left { bottom: 12px; }
    #toast-container > div {
        width: calc(100vw - 24px);
        min-height: 64px;
        padding: 15px 38px 17px 51px;
        border-radius: 14px;
        margin-bottom: 9px;
    }
    #toast-container > div::before { top: 15px; left: 15px; }
    #toast-container .toast-title { font-size: 14px; }
    #toast-container .toast-message { font-size: 12px; }
    #toast-container.toast-top-full-width > div,
    #toast-container.toast-bottom-full-width > div { width: 96%; }
    #toast-container.toast-top-center > div,
    #toast-container.toast-bottom-center > div { width: calc(100vw - 24px); }
}

@media (prefers-reduced-motion: reduce) {
    #toast-container > div { transition: none; }
}
