html {
    margin: 0px;
    height: 100%;
    width: 100%;
    overflow-y: auto;
    scroll-behavior: smooth;
}

body {
    margin: 0px;
    min-height: 100%;
    width: 100%;
}

.pointer {
    cursor: pointer;
}

/* Toast system */
.toast-card {
    will-change: transform, opacity;
    pointer-events: auto;
}

/* Toast level colors */
.toast-success {
    background-color: #f92672;
    color: white;
}
.toast-success .toast-progress {
    background-color: rgba(255, 255, 255, 0.4);
}

.toast-error {
    background-color: #dc2626;
    color: white;
}
.toast-error .toast-progress {
    background-color: rgba(255, 255, 255, 0.4);
}

.toast-warning {
    background-color: #f59e0b;
    color: white;
}
.toast-warning .toast-progress {
    background-color: rgba(255, 255, 255, 0.4);
}

.toast-info {
    background-color: white;
    color: #1f2937;
    border: 1px solid #e5e7eb;
}
.toast-info .toast-progress {
    background-color: rgba(249, 38, 114, 0.4);
}

/* Dark mode info toast */
[data-theme="dark"] .toast-info,
.dark .toast-info {
    background-color: #1d232a;
    color: #e5e7eb;
    border-color: #374151;
}

.modal-action > :not([hidden]) ~ :not([hidden]) {
    margin: 0px 0px !important;
}

.force-text-white {
    color: white !important;
}

.text-xp-pink {
    color: #f92672;
}

.bg-xp-pink {
    background-color: #f92672;
}

.btn.btn-bluesky {
    background-color: #0085ff;
    color: white;
    border: none;
    transition: background-color 150ms ease-out, transform 150ms ease-out, box-shadow 150ms ease-out;
}

.btn.btn-bluesky:hover {
    background-color: #0062cc;
    box-shadow: 0 2px 8px rgba(0, 133, 255, 0.3);
}

.btn.btn-bluesky:active {
    transform: scale(0.97);
}

.btn.btn-bluesky:focus-visible {
    outline: 2px solid #0085ff;
    outline-offset: 2px;
}

.file-input[data-theme="xptracker"]::file-selector-button {
    color: white;
}

.off-white {
    background-color: #fafafa;
}

@keyframes breathe {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.15); }
}

.animate-breathe {
    animation: breathe 3s ease-in-out infinite;
}

#parsing-overlay {
    display: none !important;
}

#parsing-overlay.htmx-request {
    display: flex !important;
    align-items: center;
    justify-content: center;
}

.no-padding {
    padding: 0px !important;
}

@media print {
    /* Force light colors */
    * {
        color-scheme: light !important;
    }

    body, html {
        background: white !important;
        color: black !important;
    }

    /* Strip all layout padding/margin so resume fills the page */
    body {
        min-height: 0 !important;
    }

    main {
        margin: 0 !important;
        padding: 0 !important;
    }

    .min-h-\[70vh\] {
        min-height: 0 !important;
    }

    /* Remove card-body padding (DaisyUI) */
    .card-body {
        padding: 0 !important;
    }

    /* Remove resume container internal padding */
    #resume {
        padding: 0 !important;
    }

    /* Remove flex gap on dashboard layout */
    .flex.flex-col.gap-3 {
        gap: 0 !important;
        padding: 0 !important;
    }

    /* Clean up resume card */
    .shadow-md, .shadow-lg, .shadow-xl, .shadow-2xl {
        box-shadow: none !important;
    }

    .dark\:bg-base-100,
    .dark\:bg-slate-500,
    .dark\:bg-slate-600,
    .off-white {
        background-color: white !important;
    }

    .dark\:text-white,
    .dark\:text-gray-200,
    .dark\:text-gray-300 {
        color: black !important;
    }

    /* Remove max-width constraints for full-page printing */
    #public-resume,
    .max-w-\[924px\] {
        max-width: 100% !important;
        width: 100% !important;
    }

    /* Zero @page margin so browser suppresses its header/footer text,
       then use body padding for the actual print margins */
    @page {
        margin: 0;
    }

    body {
        padding: 0.4in !important;
    }

    /* Pull resume content up to eliminate residual top space */
    #resume {
        margin-top: -0.2in !important;
    }

    /* Prevent page breaks inside content blocks */
    .experience-block,
    .project-block,
    [data-section] {
        page-break-inside: avoid;
        break-inside: avoid;
    }
}