/* --- Base and Original Styles --- */
body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background-color: #f8f9fa;
    color: #343a40;
    margin: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
}
h1 {
    color: #007bff;
    margin-bottom: 20px;
    text-align: center;
}
#description p {
    line-height: 1.7;
    color: #6c757d;
    text-align: center;
}
.container {
    background-color: #fff;
    padding: 30px;
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
}
.main-content {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: flex-start;
    width: 90%;
    max-width: 1400px;
}
.content-area { flex-grow: 1; }
.sidebar {
    width: 200px;
    margin-right: 20px;
    padding: 20px;
    background-color: #f8f9fa;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    flex-shrink: 0;
}
.sidebar ul { list-style-type: none; padding: 0; }
.sidebar li { margin-bottom: 10px; }
.sidebar a { text-decoration: none; color: #007bff; display: block; padding: 8px 12px; border-radius: 4px; }
.sidebar a:hover { background-color: #e9ecef; }

/* --- Drop Zone & File List --- */
.drop-zone {
    border: 3px dashed #ced4da;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 20px;
    cursor: pointer;
    background-color: #f1f3f5;
    transition: background-color 0.2s, border-color 0.2s;
    display: flex;
    justify-content: space-around;
    align-items: flex-start;
}
.drop-zone.dragover { border-color: #007bff; background-color: #e9ecef; }
.drop-zone-prompt { text-align: center; flex-basis: 50%; }
.drop-zone h2 { margin-top: 0; color: #343a40; }
input[type="file"] { display: none; }
.file-status-list ul { list-style-type: none; padding-left: 0; margin: 0; text-align: left; }
.file-status-list li { padding: 4px 0; color: #6c757d; transition: color 0.3s; }
.file-status-list li.loaded { color: #28a745; font-weight: bold; }
.file-status-list li.loaded::before { content: '✓ '; }

/* --- Buttons --- */
.button-container { text-align: center; margin-bottom: 20px; }
#parse-button, #reset-button {
    background-color: #007bff;
    color: white;
    border: none;
    padding: 12px 24px;
    font-size: 16px;
    border-radius: 5px;
    cursor: pointer;
    margin: 0 10px;
    transition: background-color 0.2s;
}
#parse-button:hover { background-color: #0056b3; }
#parse-button:disabled { background-color: #a0a0a0; cursor: not-allowed; }
#reset-button { background-color: #6c757d; }
#reset-button:hover { background-color: #5a6268; }

/* --- Report Output Styles --- */
#report-output {
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 15px;
    margin-top: 20px;
    background-color: #f8f9fa;
}
#report-output .report-container {
    font-family: 'Courier New', monospace;
    padding: 20px;
    border: 1px solid #ccc;
    box-shadow: none;
    background-color: #fff;
}
#report-output h2, #report-output h3 { font-family: 'Segoe UI', sans-serif; }
#report-output h2 { color: #28a745; margin-bottom: 15px; text-align: center; }
#report-output .tab-container { border-bottom: 1px solid #ccc; margin-bottom: 10px; display: flex; flex-wrap: wrap; }
#report-output .tab-button {
    background-color: #f1f1f1;
    border: none;
    outline: none;
    cursor: pointer;
    padding: 10px 16px;
    transition: 0.3s;
    font-size: 16px;
    font-family: 'Segoe UI', sans-serif;
    margin-right: 2px;
    border-radius: 5px 5px 0 0;
}
#report-output .tab-button:hover { background-color: #ddd; }
#report-output .tab-button.active { background-color: #ccc; font-weight: bold; }
#report-output .tab-content { display: none; padding: 6px 12px; animation: fadeEffect 0.5s; }
@keyframes fadeEffect { from {opacity: 0;} to {opacity: 1;} }

/* --- Accordion (Collapsible Section) Styles --- */
.accordion-button {
    background-color: #e9ecef;
    color: #495057;
    cursor: pointer;
    padding: 12px 18px;
    width: 100%;
    text-align: left;
    border: 1px solid #dee2e6;
    outline: none;
    transition: background-color 0.2s;
    font-size: 1.1em;
    margin-top: 10px;
    border-radius: 4px;
    font-family: 'Segoe UI', sans-serif;
}
.accordion-button:hover, .accordion-button.active { background-color: #ced4da; }
.accordion-button::before { content: '+'; color: #007bff; font-weight: bold; float: left; margin-right: 15px; }
.accordion-button.active::before { content: "−"; }
.accordion-button[disabled] { background-color: #f8f9fa; color: #adb5bd; cursor: not-allowed; }
.accordion-button[disabled]:hover { background-color: #f8f9fa; }
.accordion-panel {
    padding: 0 18px;
    background-color: white;
    max-height: 0;
    overflow-y: auto;
    transition: max-height 0.3s ease-out;
    border-left: 1px solid #dee2e6;
    border-right: 1px solid #dee2e6;
    border-bottom: 1px solid #dee2e6;
    border-radius: 0 0 4px 4px;
}
.accordion-panel pre, .accordion-panel table { margin: 15px 0; }
pre { white-space: pre-wrap; word-wrap: break-word; font-size: 0.9em; background-color: #fdfdfd; padding: 10px; border-radius: 4px; border: 1px solid #eee;}

/* --- Table and Highlighting Styles --- */
table { width: 100%; border-collapse: collapse; font-family: 'Segoe UI', sans-serif; }
th, td { border: 1px solid #ddd; padding: 8px; text-align: left; vertical-align: top;}
th { background-color: #f2f2f2; }
.non-zero { color: red; font-weight: bold; }
td.non-zero { background-color: #fff0f0; }