/* =========================
   TABLET (≤ 1024px)
========================= */
@media (max-width: 1024px) {

    .sidebar {
        width: 200px;
        padding: 20px;
    }

    .logo {
        font-size: 1.5rem;
    }

    .search {
        width: 180px;
    }

    .main {
        padding: 25px;
    }

    .grid {
        grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    }
}


/* =========================
   MOBILE (≤ 768px)
========================= */
@media (max-width: 768px) {

    body {
        flex-direction: column;
        overflow: auto;
    }

    /* Sidebar → top bar */
    .sidebar {
        width: 100%;
        height: auto;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        padding: 15px 20px;
        border-right: none;
        border-bottom: 1px solid rgba(255,255,255,0.05);
    }

    .logo {
        margin: 0;
        font-size: 1.4rem;
    }

    .sidebar nav {
        display: flex;
        gap: 10px;
    }

    .nav-item {
        margin: 0;
        padding: 8px 12px;
        font-size: 0.8rem;
    }

    .storage {
        display: none;
    }

    /* Main */
    .main {
        padding: 20px;
    }

    /* Topbar stack */
    .topbar {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }

    .top-left {
        width: 100%;
        justify-content: space-between;
    }

    .search {
        width: 100%;
    }

    .top-actions {
        width: 100%;
        justify-content: space-between;
    }

    .upload-btn {
        flex: 1;
    }

    /* Grid */
    .grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
    }

    .file {
        padding: 15px;
    }

    .file-icon {
        font-size: 1.8rem;
    }

    /* Empty */
    .empty {
        position: static;
        transform: none;
        margin-top: 50px;
    }

    /* Overlay */
    .overlay-box {
        padding: 40px;
        font-size: 1rem;
    }

    /* Toast */
    .toast {
        right: 15px;
        bottom: 15px;
        width: calc(100% - 30px);
        text-align: center;
    }
}


/* =========================
   SMALL MOBILE (≤ 480px)
========================= */
@media (max-width: 480px) {

    .grid {
        grid-template-columns: 1fr;
    }

    .nav-item {
        font-size: 0.7rem;
        padding: 6px 10px;
    }

    .upload-btn {
        font-size: 0.9rem;
        padding: 10px;
    }

    .file-name {
        font-size: 0.75rem;
    }

    .overlay-box {
        padding: 30px;
    }
}