/* === 响应式 === */

/* ---- 响应式 ---- */
@media (max-width: 1024px) {
    .sidebar {
        position: fixed;
        top: 56px; left: 0; bottom: 0;
        transform: translateX(-100%);
        transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        z-index: 40;
        box-shadow: 4px 0 24px rgba(0, 0, 0, 0.08);
    }
    .sidebar.sidebar-open { transform: translateX(0); }
    .lg-hidden { display: flex !important; }
}
@media (min-width: 1025px) {
    .lg-hidden { display: none !important; }
}

/* ---- 响应式 ---- */
@media (max-width: 640px) {
    .search-box input { width: 140px; }
    .file-grid { grid-template-columns: repeat(2, 1fr); }
    .ai-panel { width: 100vw; }
}
