/* ==========================================================================
   Candidate Portal — dialog & toast theme
   Restyles SweetAlert2 and toastr in the portal's colours so every error,
   warning and confirmation looks the same, whichever page raised it.
   Loaded by _Layout and the stand-alone Login pages.
   ========================================================================== */

:root {
    --cpn-brand: #C4621D;
    --cpn-brand-dark: #A9521A;
    --cpn-brand-soft: #FEF3E8;
    --cpn-ink: #1e293b;
    --cpn-muted: #64748b;
    --cpn-line: #e2e8f0;
    --cpn-error: #dc2626;
    --cpn-error-soft: #fef2f2;
    --cpn-warn: #d97706;
    --cpn-warn-soft: #fffbeb;
    --cpn-ok: #16a34a;
    --cpn-ok-soft: #f0fdf4;
    --cpn-info: #2563eb;
    --cpn-info-soft: #eff6ff;
}

/* ── SweetAlert2: modal ─────────────────────────────────────────────────── */
.swal2-container { z-index: 20000; }
.swal2-container.swal2-backdrop-show { background: rgba(15, 23, 42, .45); backdrop-filter: blur(2px); }

.swal2-popup:not(.swal2-toast) {
    width: min(30rem, calc(100vw - 2rem));
    padding: 1.75rem 1.5rem 1.4rem;
    border-radius: 18px;
    font-family: 'Public Sans', system-ui, sans-serif;
    box-shadow: 0 24px 60px -12px rgba(15, 23, 42, .35);
}
.swal2-popup:not(.swal2-toast) .swal2-icon {
    width: 3.75rem; height: 3.75rem;
    margin: .25rem auto 1rem;
    border-width: 3px;
}
.swal2-popup:not(.swal2-toast) .swal2-icon .swal2-icon-content { font-size: 2.25rem; }
.swal2-popup:not(.swal2-toast) .swal2-icon.swal2-error { border-color: var(--cpn-error); background: var(--cpn-error-soft); }
.swal2-popup:not(.swal2-toast) .swal2-icon.swal2-error [class^=swal2-x-mark-line] { background: var(--cpn-error); height: .25em; width: 1.9em; top: 1.65em; }
.swal2-popup:not(.swal2-toast) .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left] { left: .9em; }
.swal2-popup:not(.swal2-toast) .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right] { right: .9em; }
.swal2-popup:not(.swal2-toast) .swal2-icon.swal2-warning { border-color: var(--cpn-warn); color: var(--cpn-warn); background: var(--cpn-warn-soft); }
.swal2-popup:not(.swal2-toast) .swal2-icon.swal2-info { border-color: var(--cpn-info); color: var(--cpn-info); background: var(--cpn-info-soft); }
.swal2-popup:not(.swal2-toast) .swal2-icon.swal2-question { border-color: var(--cpn-brand); color: var(--cpn-brand); background: var(--cpn-brand-soft); }
.swal2-popup:not(.swal2-toast) .swal2-icon.swal2-success { border-color: var(--cpn-ok); color: var(--cpn-ok); }
.swal2-popup:not(.swal2-toast) .swal2-icon.swal2-success [class^=swal2-success-line] { background: var(--cpn-ok); }
.swal2-popup:not(.swal2-toast) .swal2-icon.swal2-success .swal2-success-ring { border-color: rgba(22, 163, 74, .25); }

.swal2-popup:not(.swal2-toast) .swal2-title {
    padding: 0 .5rem;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--cpn-ink);
}
.swal2-popup:not(.swal2-toast) .swal2-html-container {
    margin: .6rem .5rem 0;
    font-size: .9rem;
    line-height: 1.55;
    color: var(--cpn-muted);
}
.swal2-popup:not(.swal2-toast) .swal2-actions {
    gap: .5rem;
    margin-top: 1.4rem;
    width: 100%;
}
.swal2-popup:not(.swal2-toast) .swal2-styled {
    margin: 0;
    min-width: 7.5rem;
    padding: .6rem 1.25rem;
    border-radius: 10px;
    font-size: .875rem;
    font-weight: 600;
    box-shadow: none;
    transition: background-color .15s ease, border-color .15s ease, transform .1s ease;
}
.swal2-popup:not(.swal2-toast) .swal2-styled:active { transform: translateY(1px); }
.swal2-popup .swal2-styled.swal2-confirm { background: var(--cpn-brand); border: 1px solid var(--cpn-brand); color: #fff; }
.swal2-popup .swal2-styled.swal2-confirm:hover { background: var(--cpn-brand-dark); border-color: var(--cpn-brand-dark); }
.swal2-popup .swal2-styled.swal2-confirm:focus-visible,
.swal2-popup .swal2-styled.swal2-cancel:focus-visible { box-shadow: 0 0 0 3px rgba(196, 98, 29, .3); }
.swal2-popup .swal2-styled.swal2-cancel { background: #fff; border: 1px solid var(--cpn-line); color: var(--cpn-ink); }
.swal2-popup .swal2-styled.swal2-cancel:hover { background: #f8fafc; }
.swal2-popup .swal2-styled.swal2-deny { background: var(--cpn-error); border: 1px solid var(--cpn-error); }
.swal2-popup .swal2-styled:focus { box-shadow: none; }
.swal2-popup .swal2-timer-progress-bar { background: var(--cpn-brand); }

@media (max-width: 480px) {
    .swal2-popup:not(.swal2-toast) .swal2-actions { flex-direction: column-reverse; }
    .swal2-popup:not(.swal2-toast) .swal2-styled { width: 100%; }
}

/* Checklist of missing fields (CPNotify.list) */
.cpn-list-intro { margin: 0 0 .75rem; text-align: left; color: var(--cpn-muted); }
.cpn-list {
    list-style: none;
    margin: 0;
    padding: .35rem;
    max-height: min(46vh, 22rem);
    overflow-y: auto;
    text-align: left;
    border: 1px solid var(--cpn-line);
    border-radius: 12px;
    background: #f8fafc;
}
.cpn-list li {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    padding: .5rem .6rem;
    border-radius: 8px;
    font-size: .85rem;
    line-height: 1.4;
    color: var(--cpn-ink);
}
.cpn-list li + li { border-top: 1px dashed var(--cpn-line); }
.cpn-list li::before {
    content: '';
    flex: none;
    width: .5rem; height: .5rem;
    margin-top: .38rem;
    border-radius: 50%;
    background: var(--cpn-warn);
    box-shadow: 0 0 0 3px var(--cpn-warn-soft);
}
.cpn-list-count {
    display: inline-block;
    margin-left: .35rem;
    padding: .05rem .5rem;
    border-radius: 50rem;
    background: var(--cpn-warn-soft);
    color: var(--cpn-warn);
    font-size: .75rem;
    font-weight: 700;
    vertical-align: middle;
}

/* Copy-link fallback (CPNotify.copy) */
.cpn-copy-input {
    width: 100%;
    padding: .55rem .75rem;
    border: 1px solid var(--cpn-line);
    border-radius: 10px;
    font-size: .85rem;
    color: var(--cpn-ink);
    background: #f8fafc;
}

/* ── SweetAlert2: toast ─────────────────────────────────────────────────── */
.swal2-popup.swal2-toast {
    padding: .7rem 1rem;
    border-radius: 12px;
    border-left: 4px solid var(--cpn-brand);
    box-shadow: 0 12px 32px -8px rgba(15, 23, 42, .25);
    font-family: 'Public Sans', system-ui, sans-serif;
}
.swal2-popup.swal2-toast.swal2-icon-error { border-left-color: var(--cpn-error); }
.swal2-popup.swal2-toast.swal2-icon-warning { border-left-color: var(--cpn-warn); }
.swal2-popup.swal2-toast.swal2-icon-success { border-left-color: var(--cpn-ok); }
.swal2-popup.swal2-toast.swal2-icon-info { border-left-color: var(--cpn-info); }
.swal2-popup.swal2-toast .swal2-title { font-size: .875rem; font-weight: 600; color: var(--cpn-ink); }

/* ── toastr ─────────────────────────────────────────────────────────────── */
#toast-container > div {
    width: min(22rem, calc(100vw - 2rem));
    padding: .85rem 1rem .85rem 3.1rem;
    border-radius: 12px;
    border-left: 4px solid var(--cpn-brand);
    background-color: #fff;
    background-position: 1rem center;
    color: var(--cpn-ink);
    opacity: 1;
    box-shadow: 0 12px 32px -8px rgba(15, 23, 42, .25);
    font-family: 'Public Sans', system-ui, sans-serif;
    font-size: .85rem;
}
#toast-container > div:hover { box-shadow: 0 14px 36px -8px rgba(15, 23, 42, .32); }
#toast-container > .toast-error { border-left-color: var(--cpn-error); background-color: #fff; }
#toast-container > .toast-warning { border-left-color: var(--cpn-warn); background-color: #fff; }
#toast-container > .toast-success { border-left-color: var(--cpn-ok); background-color: #fff; }
#toast-container > .toast-info { border-left-color: var(--cpn-info); background-color: #fff; }
/* toastr's icons are white PNGs — tint them by masking a coloured disc behind. */
#toast-container > .toast-error,
#toast-container > .toast-warning,
#toast-container > .toast-success,
#toast-container > .toast-info { background-image: none !important; position: relative; }
#toast-container > div::before {
    position: absolute;
    left: .9rem; top: 50%;
    width: 1.5rem; height: 1.5rem;
    margin-top: -.75rem;
    border-radius: 50%;
    color: #fff;
    font: 700 .85rem/1.5rem 'Public Sans', system-ui, sans-serif;
    text-align: center;
}
#toast-container > .toast-error::before { content: '!'; background: var(--cpn-error); }
#toast-container > .toast-warning::before { content: '!'; background: var(--cpn-warn); }
#toast-container > .toast-success::before { content: '\2713'; background: var(--cpn-ok); }
#toast-container > .toast-info::before { content: 'i'; background: var(--cpn-info); }
#toast-container .toast-title { font-weight: 700; }
#toast-container .toast-progress { background: var(--cpn-brand); opacity: .35; }
#toast-container .toast-close-button { color: var(--cpn-muted); text-shadow: none; opacity: .7; }
