
    .zip-viewer-body {
      font-family: Arial, sans-serif;
      max-width: 800px;
      margin: 0 auto;
      margin-top: 50px;
      background-color: #f0f2f5;
      user-select: none;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      overflow-x: hidden;
    }
    #appTitle { color: #333; text-align: center; }
    .container {
      background-color: white; padding: 20px; border-radius: 8px;
      box-shadow: 0 2px 10px rgba(0,0,0,0.1); position: relative;
    }
    .zv-button { /* Renamed for Zip Viewer */
      padding: 10px 15px; background-color: #007bff; color: white;
      border: none; border-radius: 4px; cursor: pointer; min-width: 150px;
      text-align: center; vertical-align: middle; display: inline-block;
      margin-top: 10px;
    }
    .zv-button:hover:not(:disabled) { background-color: #0056b3; }
    .zv-button:disabled { background-color: #cccccc; cursor: not-allowed; }

    #zipFileInput {
      display: block; width: 100%; margin-bottom: 15px; padding: 10px;
      border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box;
    }

    #fileTreeContainer {
        margin-top: 20px;
        padding: 15px;
        border: 1px solid #ddd;
        border-radius: 4px;
        background-color: #f9f9f9;
        min-height: 100px;
        max-height: 500px;
        overflow: auto; /* Scroll for both X and Y */
    }
    #fileTree {
        list-style: none;
        padding-left: 0; /* Remove default padding for root */
        margin: 0;
        font-family: monospace; /* Good for file trees */
    }
    #fileTree ul { /* Nested lists for subfolders */
        list-style: none;
        padding-left: 20px; /* Indentation for subfolders */
        margin: 5px 0;
    }
    #fileTree li {
        padding: 4px 0;
        display: flex; /* For aligning icon, name, and button */
        align-items: center;
        flex-wrap: nowrap; /* Prevent wrapping by default */
    }
    #fileTree .file-entry, #fileTree .folder-entry {
        display: flex;
        align-items: center;
        cursor: default; /* Default cursor for entries */
        flex-grow: 1; /* Allow name to take up space */
        min-width: 0; /* Prevent overflow issues with long names */
    }
    #fileTree .folder-name {
        font-weight: bold;
    }
    #fileTree .file-name {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis; /* Show ... for long names */
        margin-right: 10px; /* Space before download button */
    }
    #fileTree .file-icon::before { content: '📄 '; }
    #fileTree .folder-icon::before { content: '📁 '; }
    #fileTree .folder-entry.collapsed > ul { display: none; }
    #fileTree .folder-entry.expanded > .folder-icon::before { content: '📂 '; } /* Open folder icon */
    #fileTree .folder-name { cursor: pointer; } /* Clickable folder names to toggle */


    #fileTree .download-btn {
        padding: 3px 8px;
        font-size: 0.8em;
        background-color: #28a745;
        color: white;
        border: none;
        border-radius: 3px;
        cursor: pointer;
        text-decoration: none;
        margin-left: auto; /* Push to the right */
        flex-shrink: 0; /* Prevent button from shrinking */
    }
    #fileTree .download-btn:hover { background-color: #218838; }

    #status { margin-top: 15px; text-align: center; color: #666; min-height: 20px; }

    @media (max-width: 768px) {
      .zv-button { width: 80%; margin: 10px auto; display: block; }
      #fileTree ul { padding-left: 15px; }
    }
