/* === SPINNER — shared across all layouts === */
@keyframes tc-spin { to { transform: rotate(360deg); } }

/* Form submit buttons */
.btn-spinner.loading,
.auth-btn-spinner.loading { opacity: 0.7; pointer-events: none; }
.btn-spinner.loading::after {
    content: ''; display: inline-block; width: 14px; height: 14px; margin-left: 8px;
    border: 2px solid rgba(14,17,32,0.3); border-top-color: #0e1120;
    border-radius: 50%; animation: tc-spin 0.6s linear infinite; vertical-align: middle;
}
.auth-btn-spinner.loading::after {
    content: ''; position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
    width: 16px; height: 16px; border: 2px solid rgba(14,17,32,0.3);
    border-top-color: #0e1120; border-radius: 50%;
    animation: tc-spin 0.6s linear infinite;
}

/* Full-page loading overlay */
.tc-overlay {
    display: none; position: fixed; inset: 0; z-index: 9999;
    background: rgba(14,17,32,0.85);
    justify-content: center; align-items: center;
}
.tc-overlay.active { display: flex; }
.tc-overlay-spinner {
    width: 32px; height: 32px;
    border: 3px solid rgba(212,176,68,0.2);
    border-top-color: #d4b044;
    border-radius: 50%;
    animation: tc-spin 0.7s linear infinite;
}

/* Toast notifications (shared) */
.tc-toast {
    position: fixed; top: 20px; right: 20px; z-index: 10000;
    padding: 12px 20px; border-radius: 6px; font-size: 13px; line-height: 1.5;
    max-width: 380px; opacity: 0; transform: translateY(-10px);
    transition: opacity 0.2s, transform 0.2s;
}
.tc-toast.visible { opacity: 1; transform: translateY(0); }
.tc-toast-success { background: rgba(212,176,68,0.08); border: 0.5px solid rgba(212,176,68,0.3); color: #d4b044; }
.tc-toast-error { background: rgba(220,60,60,0.1); border: 0.5px solid rgba(220,60,60,0.3); color: #e87070; }
