/* Modal styles */
.modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    animation: fadeIn 0.3s ease-out;
}

.modal-content {
    background-color: #ffffff;
    margin: 15% auto;
    padding: 20px;
    border-radius: 12px;
    width: 80%;
    max-width: 400px;
    text-align: center;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
    animation: slideIn 0.3s ease-out;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes slideIn {
    from { transform: translateY(-50px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

.modal-content h3 {
    color: #0a3d62;
    margin-bottom: 15px;
    font-size: 1.5rem;
}

.modal-content p {
    color: #34495e;
    margin-bottom: 20px;
    font-size: 1.1rem;
}

.close-btn {
    background-color: #f39c12;
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 1rem;
    transition: background-color 0.3s ease;
}

.close-btn:hover {
    background-color: #e67e22;
}

/* New animations */
@keyframes pulse {
    0% { transform: scale(1); box-shadow: 0 0 0 rgba(243,156,18,0.0); }
    50% { transform: scale(1.03); box-shadow: 0 8px 20px rgba(243,156,18,0.12); }
    100% { transform: scale(1); box-shadow: 0 0 0 rgba(243,156,18,0.0); }
}
@keyframes floatIn {
    0% { opacity: 0; transform: translateY(10px) scale(0.98); }
    60% { opacity: 1; transform: translateY(-6px) scale(1.02); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

/* Support link pulse to draw attention */
.support-call-link {
    display: inline-block;
    background: linear-gradient(90deg,#f39c12,#ffb84d);
    color: #092034;
    padding: 8px 14px;
    border-radius: 8px;
    font-weight: 700;
    box-shadow: 0 6px 18px rgba(243,156,18,0.16);
    animation: pulse 2.8s ease-in-out infinite;
    transition: transform 160ms ease, box-shadow 160ms ease;
    text-decoration: none;
}
.support-call-link:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 18px 38px rgba(243,156,18,0.22);
}
.support-call-link.no-pulse {
    animation: none;
    box-shadow: 0 6px 12px rgba(10,61,98,0.08);
}

/* Updated Year-end modal styles (styled message card) */
#yearend-modal {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(6,16,28,0.55);
    z-index: 1200;
    visibility: hidden;
    opacity: 0;
    transition: opacity 180ms ease, visibility 180ms ease;
    backdrop-filter: blur(4px) saturate(1.04);
    -webkit-backdrop-filter: blur(4px);
    padding: 24px;
}
#yearend-modal.show {
    visibility: visible;
    opacity: 1;
}

/* Card */
#yearend-modal .modal-content {
    width: 100%;
    max-width: 580px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 18px 40px rgba(3,12,28,0.5);
    transform-origin: center;
    transform: translateY(8px) scale(0.98);
    opacity: 0;
    transition: transform 260ms cubic-bezier(.2,.9,.2,1), opacity 220ms ease;
    background: linear-gradient(180deg,#ffffff 0%, #fbfdff 100%);
}
#yearend-modal.show .modal-content {
    transform: translateY(0) scale(1);
    opacity: 1;
}

/* Header with icon */
#yearend-modal .modal-header {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    background: linear-gradient(90deg,#0a3d62,#0b4f76);
    color: #fff;
}
#yearend-modal .modal-icon {
    width: 52px;
    height: 52px;
    border-radius: 10px;
    display: inline-grid;
    place-items: center;
    background: linear-gradient(135deg,#ffb84d,#f39c12);
    box-shadow: 0 6px 18px rgba(243,156,18,0.16), inset 0 -6px 18px rgba(255,255,255,0.06);
    flex: 0 0 52px;
}
#yearend-modal .modal-title {
    font-weight: 700;
    font-size: 1.05rem;
    letter-spacing: 0.2px;
}
#yearend-modal .modal-sub {
    font-size: 0.88rem;
    opacity: 0.9;
}

/* Body */
#yearend-modal .modal-body {
    padding: 18px;
    background: linear-gradient(180deg,#ffffff 0%, #fbfdff 100%);
    color: #0f1720;
}
#yearend-modal .modal-body p {
    margin: 0;
    font-size: 1rem;
    line-height: 1.45;
    color: #132028;
}
#yearend-modal .modal-note {
    margin-top: 10px;
    font-size: 0.92rem;
    color: #526069;
}

/* Actions (separated) */
#yearend-modal .modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 18px;
    background: linear-gradient(180deg,#fbfdff 0%, #f6f9fb 100%);
}
#yearend-modal .btn {
    padding: 9px 14px;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    font-weight: 700;
    font-size: 0.95rem;
    transition: transform 140ms ease, box-shadow 140ms ease, opacity 120ms ease;
}
#yearend-modal .btn.cancel {
    background: transparent;
    border: 1px solid rgba(10,61,98,0.06);
    color: #284149;
}
#yearend-modal .btn.confirm {
    background: linear-gradient(90deg,#0a3d62,#0b4f76);
    color: #fff;
    box-shadow: 0 10px 28px rgba(10,61,98,0.12);
}
#yearend-modal .btn:active { transform: translateY(1px) scale(0.998); }
#yearend-modal .btn:focus { outline: 3px solid rgba(11,63,118,0.12); outline-offset: 3px; }
