/* Responsive utilities */
.eo-responsive-img { max-width: 100%; height: auto; }
.eo-hide-mobile { }
.eo-show-mobile { display: none; }

@media (max-width: 768px) {
    .eo-hide-mobile { display: none !important; }
    .eo-show-mobile { display: block !important; }
}

/* Text overflow */
.eo-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.eo-truncate-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.eo-truncate-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Flex utilities */
.eo-flex { display: flex; }
.eo-flex-col { display: flex; flex-direction: column; }
.eo-items-center { align-items: center; }
.eo-justify-between { justify-content: space-between; }
.eo-gap-2 { gap: 0.5rem; }
.eo-gap-4 { gap: 1rem; }

/* Grid utilities */
.eo-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.eo-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }

@media (max-width: 768px) {
    .eo-grid-2, .eo-grid-3 { grid-template-columns: 1fr; }
}

/* Print styles */
@media print {
    .site-header, .site-footer, .sidebar,
    .eo-bookmark-container, .eo-progress-indicator,
    .eo-resume-prompt, .eo-toast-container,
    .pdf-export-btn, .theme-switcher,
    .text-size-controls, .lang-selector,
    .nav-toggle, .nav-list {
        display: none !important;
    }
    
    .site-main {
        max-width: 100%;
        padding: 0;
    }
    
    .eo-content {
        border: none;
        padding: 0;
    }
    
    body {
        background: white;
        color: black;
        font-size: 12pt;
    }
    
    a {
        color: black;
        text-decoration: underline;
    }
    
    h1, h2, h3 {
        page-break-after: avoid;
    }
    
    p, li {
        orphans: 3;
        widows: 3;
    }
}
