      :root {
        --primary-color: #4f46e5; /* Modern indigo shade */
        --primary-dark: #4338ca; /* Darker indigo */
        --primary-light: #eef2ff; /* Light indigo background */
        --background-color: #f9fafb;
        --text-color: #111827;
        --border-color: #e5e7eb;
        --animation-duration: 0.3s;
        --success-color: #10b981; /* Green for success messages */
        --error-color: #ef4444; /* Red for error messages */
        --neutral-dark: #374151; /* Slate gray for some elements */
        --neutral-medium: #6b7280; /* Medium gray */
        --header-bg: #ffffff; /* White header background */
        --menu-accent: #4f46e5; /* Changed to match primary color */

        /* Standardized spacing variables */
        --space-xs: 0.5rem;  /* 8px */
        --space-sm: 0.75rem; /* 12px */
        --space-md: 1rem;    /* 16px */
        --space-lg: 1.5rem;  /* 24px */
        --space-xl: 2rem;    /* 32px */
      }

      html {
        overflow-y: scroll;
      }

      * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
      }

      /* utility classes */
      .error {
        color: var(--error-color);
      }

      .pricing-note-emphasis {
        color: var(--error-color);
        font-weight: 700;
      }


      .upload-hint {
        font-size: 0.9rem;
        color: #64748b;
      }

      .model-note {
        font-size: 0.8rem;
        color: #64748b;
        margin: 4px 0 1.25rem 2.1em;
        font-style: italic;
      }
      .model-note--inline {
        margin: 0.15rem 0 var(--space-xs) 0;
      }

      .checkbox-label {
        display: inline-flex;
        align-items: center;
        cursor: pointer;
        margin-bottom: 0.5rem;
      }

      .checkbox-label input[type="checkbox"] {
        margin-right: 0.5rem;
      }

      .mobile-user-heading {
        margin: 0 0 0.75rem 0;
        font-size: 1rem;
        color: var(--neutral-dark);
      }

      .progress-title {
        margin-bottom: var(--space-xs);
        color: var(--neutral-dark);
      }

      .button-group--spaced {
        margin-top: 1.5rem;
      }

      .form-group--tight {
        margin-top: 1.25rem;
        margin-bottom: 0;
      }

      .form-group--compact {
        margin-bottom: var(--space-xs);
      }

      .field-hint {
        font-weight: 400;
        font-style: italic;
        color: #64748b;
      }

      .form-label-strong {
        font-weight: 700;
      }

      .form-select-container {
        display: flex;
        gap: 8px;
        align-items: flex-start;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
      }

      .form-select-container .form-select-primary {
        flex: 1;
        min-width: 0;
      }

      .form-select-container select {
        width: 100%;
        font-size: 0.9rem;
        height: 2.2em;
        padding: 0.4em 0.6em;
        border: 1px solid var(--border-color);
        border-radius: 0.375rem;
        background-color: #f8fafc;
        box-sizing: border-box;
      }

      .form-select-container .form-select-secondary {
        flex: 0.4;
        min-width: 0;
      }

      .form-select-container .form-select-secondary select,
      .form-select-container .form-select-secondary input {
        width: 100%;
        font-size: 0.9rem;
        height: 2.2em;
        padding: 0.4em 0.6em;
        border: 1px solid var(--border-color);
        border-radius: 0.375rem;
        box-sizing: border-box;
      }

      #transcription-language-select {
        height: auto;
        min-height: 2.8rem;
        padding: 0.45rem 0.6rem;
      }

      .is-hidden {
        display: none !important;
      }

      .warning-message {
        margin-bottom: 1rem;
        padding: 0.75rem 1rem;
        color: #b50707;
        font-weight: 700;
        border: 1px solid #f5b3b3;
        border-radius: 0.5rem;
        background-color: #fff5f5;
        line-height: 1.4;
      }

      .upload-text.upload-hint {
        margin-bottom: 0;
      }

      .progress-log-container .progress-title {
        text-align: left;
      }

      .ai-disclaimer {
        padding: 1rem 2.5rem 1rem 1rem;
        background: #fafafa;
        border-radius: 0.5rem;
      }

      .ai-disclaimer-text {
        font-size: 0.8rem;
        color: #64748b;
        line-height: 1.5;
        margin: 0;
      }

      #buy-credits-card {
        max-width: 800px;
        margin: var(--space-xl) auto;
        padding: var(--space-lg);
      }

      .credit-cards {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1rem;
        margin-bottom: 1.5rem;
      }

      .credit-option {
        border: 1px solid var(--border-color);
        border-radius: 0.75rem;
        padding: 1.25rem;
        text-align: center;
        cursor: pointer;
        transition: all 0.2s ease;
        background: #ffffff;
      }

      .credit-option:hover {
        transform: translateY(-2px);
        box-shadow:
          0 10px 25px -5px rgba(0, 0, 0, 0.08),
          0 8px 10px -6px rgba(0, 0, 0, 0.04);
      }

      .credit-option.is-selected {
        border-color: var(--primary-color);
        background: var(--primary-light);
        box-shadow:
          0 10px 25px -5px rgba(79, 70, 229, 0.25),
          0 8px 10px -6px rgba(79, 70, 229, 0.15);
        transform: translateY(-3px);
      }

      .credit-option-title {
        font-size: 1.25rem;
        margin-bottom: 0.5rem;
        color: var(--text-color);
      }

      .credit-option-price {
        font-size: 1.25rem;
        font-weight: 600;
        color: var(--primary-color);
      }

      .credit-option-description {
        font-size: 0.9rem;
        color: var(--neutral-medium);
        margin-top: 0.5rem;
      }

      .credit-option-benefits {
        text-align: left;
        margin-top: 1rem;
        padding-left: 0;
        list-style: none;
        font-size: 0.85rem;
        color: var(--neutral-dark);
        line-height: 1.5;
      }

      .credit-option-benefits li {
        margin-bottom: 0.4rem;
        display: flex;
        align-items: flex-start;
        gap: 0.35rem;
      }

      .credit-option-check {
        color: #10b981;
        font-weight: 600;
      }

      .subscription-actions {
        text-align: center;
      }

      #subscription-form {
        display: inline-block;
        width: 100%;
      }

      #buy-btn {
        padding: 0.5rem 1.2rem;
        font-size: 0.95rem;
      }

      #buy-msg {
        margin-top: 1rem;
      }

      .contact-status {
        margin-top: 1rem;
        text-align: center;
      }

      .footer--minimal {
        background: transparent;
        box-shadow: none;
        color: #888888;
        padding: 0.5rem 0 0.2rem 0;
        border-top: none;
        width: 100%;
        margin-left: 0;
        margin-right: 0;
        position: static;
        left: auto;
        right: auto;
        font-size: 0.9rem;
      }

      .faq-heading {
        color: var(--primary-color);
        font-size: 1.2rem;
        margin-bottom: 1rem;
        margin-top: 0;
      }

      .faq-heading--spaced {
        margin-top: 2rem;
      }

      body {
        font-family:
          -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
        background: var(--background-color);
        color: var(--text-color);
        line-height: 1.6;
        min-height: 100vh;
        display: flex;
        flex-direction: column;
        padding-top: 60px; /* Adjusted padding to account for fixed navbar */
        overflow-x: hidden; /* Prevent horizontal scroll */
      }

      .main-container {
        max-width: 900px; /* Reduced max width */
        width: 100%; /* Make it full width for consistency */
        margin: 0 auto; /* Center horizontally */
        padding: 0;
        flex: 1;
        margin-top: 2.5rem; /* Add space below the top nav/menu bar */
      }

      /* Media query for small screens - moved to consolidated mobile styles section */

      /* Full-width header components */
      .header-full-width {
        width: 100%;
        position: relative;
      }

      /* Fixed navbar design */
      .navbar {
        background: white;
        box-shadow:
          0 1px 2px rgba(0, 0, 0, 0.03),
          0 1px 6px rgba(0, 0, 0, 0.02);
        position: fixed;
        z-index: 1000;
        padding: 1rem 0;
        top: 0;
        left: 0;
        right: 0;
        width: 100%;
        border-bottom: 1px solid rgba(0, 0, 0, 0.03);
      }

      .navbar-container {
        display: flex;
        justify-content: space-between;
        align-items: center;
        max-width: 1200px;
        margin: 0 auto;
        padding: 0 2rem;
      }

      .navbar-brand {
        display: flex;
        align-items: center;
        text-decoration: none;
      }

      .brand-logo {
        width: 140px;
        height: auto;
        margin-right: 0;
        margin-top: -14px;
      }

      /* Navigation links */
      .navbar-nav {
        display: flex;
        list-style: none;
        margin-left: 2rem;
      }

      .nav-item {
        margin-right: 1.5rem;
      }

      .nav-link {
        color: var(--neutral-dark);
        text-decoration: none;
        font-weight: 500;
        font-size: 1rem;
        transition: color 0.2s ease;
        padding: 0.75rem 0;
        position: relative;
      }

      .nav-link:hover {
        color: var(--primary-color);
      }

      .nav-link::after {
        content: "";
        position: absolute;
        width: 0;
        height: 2px;
        bottom: 0;
        left: 0;
        background-color: var(--primary-color);
        transition: width 0.3s ease;
      }

      .nav-link:hover::after {
        width: 100%;
      }

      /* Left and right sections */
      .navbar-left {
        display: flex;
        align-items: center;
      }

      .navbar-right {
        display: flex;
        align-items: center;
      }

      /* User info display in navbar */
      .navbar-user {
        display: flex;
        align-items: center;
        gap: 1rem;
      }

      .user-email {
        font-weight: 500;
        color: var(--neutral-dark);
        font-size: 0.9rem;
      }

      .credit-badge {
        display: inline-flex;
        align-items: center;
        background: transparent;
        border-radius: 0.375rem;
        padding: 0.5rem 0.75rem;
        margin: 0;
        font-size: 0.9rem;
        border: none;
        color: var(--neutral-dark);
        font-weight: 500;
      }

      .credit-badge:before {
        content: "💎";
        margin-right: 0.5rem;
        font-size: 1rem;
      }

      .logout-button {
        background-color: #f3f4f6;
        color: var(--text-color);
        border: 1px solid var(--border-color);
        border-radius: 0.5rem;
        padding: 0.5rem 1.25rem;
        font-size: 0.9rem;
        font-weight: 600;
        margin-left: 1rem;
        transition: all 0.2s ease;
        cursor: pointer;
      }

      .logout-button:hover {
        background-color: #e5e7eb;
        transform: translateY(-1px);
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
      }

      .credit-badge:hover {
        background-color: #f9fafb;
      }

      /* Desktop sidebar */
      .sidebar {
        position: fixed;
        top: 120px;
        left: 0;
        width: 230px;
        background: transparent;
        z-index: 95;
        padding: 1.5rem 0;
        border: none;
        box-shadow: none;
        transition: transform 0.3s ease;
      }

      /* Mobile Navigation Menu */
      .mobile-menu {
        display: none;
      }

      .sidebar-menu {
        list-style: none;
        padding: 0;
        margin: 0;
      }

      .sidebar-menu-item {
        margin-bottom: 0.75rem;
      }

      .sidebar-menu-link {
        display: flex;
        align-items: center;
        padding: 0.85rem 1.75rem;
        color: var(--neutral-medium);
        text-decoration: none;
        transition: all 0.3s ease;
        border-left: 3px solid transparent;
        border-radius: 0 8px 8px 0;
        font-weight: 500;
      }

      .sidebar-menu-link:hover {
        background-color: rgba(79, 70, 229, 0.08);
        color: var(--primary-color);
      }

      .sidebar-menu-link.active {
        background-color: rgba(79, 70, 229, 0.12);
        color: var(--primary-color);
        border-left: 3px solid var(--primary-color);
        font-weight: 600;
      }

      .sidebar-icon {
        font-size: 1.35rem;
        margin-right: 0.85rem;
        opacity: 1;
      }

      .content-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 2rem;
        max-width: 900px;
        margin: 0 auto;
        padding: 0 1.5rem;
      }

      @media (min-width: 992px) {
        /* Adjust breakpoint as needed */
        .content-grid {
          grid-template-columns: 1fr; /* One column even on larger screens */
        }
      }

      .card {
        background: white;
        border-radius: 1rem;
        padding: 2rem;
        box-shadow:
          0 1px 3px rgba(0, 0, 0, 0.04),
          0 1px 2px rgba(0, 0, 0, 0.06);
        margin-bottom: 2rem;
        transition:
          transform 0.2s ease,
          box-shadow 0.2s ease;
        border: 1px solid rgba(0, 0, 0, 0.03);
        width: 100%;
        max-width: 900px;
        box-sizing: border-box;
        overflow-x: hidden;
      }

      /* Responsive card adjustments - moved to consolidated mobile styles section */

      .card > * {
        width: 100%;
        box-sizing: border-box;
        max-width: 100%;
      }
      .upload-area,
      .form-group,
      .button-group,
      .progress-log-container,
      .download-area {
        width: 100%;
        box-sizing: border-box;
        max-width: 100%;
      }

      /* Ensure all form elements don't exceed card width */
      .card input,
      .card select,
      .card textarea {
        max-width: 100%;
        box-sizing: border-box;
      }

      /* Ensure progress logs and download areas don't overflow */
      .progress-log-container,
      .download-area {
        overflow-x: hidden;
        word-wrap: break-word;
        overflow-wrap: break-word;
      }

      .progress-log {
        overflow-x: auto;
        word-wrap: break-word;
        overflow-wrap: break-word;
        white-space: pre-wrap;
      }

      .card:hover {
        transform: translateY(-3px);
        box-shadow:
          0 10px 25px -5px rgba(0, 0, 0, 0.1),
          0 8px 10px -6px rgba(0, 0, 0, 0.05);
      }

      /* Disable hover effect on mobile - moved to consolidated mobile styles section */

      .card h2 {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        font-size: 1.5rem;
        color: var(--text-color);
        margin-bottom: 1.5rem;
        font-weight: 600;
        border-bottom: 1px solid var(--border-color);
        padding-bottom: 0.75rem;
      }

      .upload-area {
        border: 2px dashed var(--border-color);
        border-radius: 0.75rem;
        padding: var(--space-lg);
        padding-bottom: calc(var(--space-lg) * 1.5);
        text-align: center;
        margin-bottom: var(--space-lg);
        transition: all var(--animation-duration) ease;
        cursor: pointer;
        height: 200px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        background: linear-gradient(to bottom, white, var(--primary-light));
      }

      .upload-area:hover {
        border-color: var(--primary-color);
        background: linear-gradient(to bottom, white, var(--primary-light) 70%);
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(79, 70, 229, 0.15);
      }

      .upload-icon {
        font-size: 2.5rem;
        color: var(--primary-color);
        margin-bottom: 0.75rem;
        transition: transform 0.3s ease;
      }

      .upload-area:hover .upload-icon {
        transform: scale(1.1);
      }

      .upload-text {
        font-size: 1.1rem;
        color: #64748b;
        margin-bottom: 0.25rem; /* Reduced margin-bottom for main text */
        min-height: 2.4em; /* Approx 2 lines for 1.1rem font with 1.1 line-height */
        display: flex; /* To center text vertically if it's shorter */
        align-items: center;
        justify-content: center;
        line-height: 1.1; /* Tighter line height if it wraps */
      }

      .file-input-native {
        /* Hide native file input */
        display: none;
      }

      .file-name-display {
        margin-top: 1rem;
        padding: 0.5rem 1rem;
        background: #f1f5f9;
        border-radius: 0.5rem;
        font-size: 0.9rem;
        color: red;
        text-align: center;
        font-weight: bold;
      }

      .form-group {
        margin-bottom: var(--space-lg);
      }

      .form-group label {
        display: block;
        margin-bottom: var(--space-xs);
        font-weight: 500;
        color: #4b5563;
        font-size: 0.95rem;
      }

      .form-group input[type="file"],
      .form-group input[type="text"],
      .form-group input[type="url"],
      .form-group input[type="number"],
      .form-group select,
      .form-group textarea {
        width: 100%;
        padding: var(--space-sm) var(--space-md);
        border: 1px solid var(--border-color);
        border-radius: 0.5rem;
        background: white;
        font-size: 1rem;
        transition: all 0.2s ease;
        box-sizing: border-box;
        line-height: 1.5;
        color: var(--text-color);
      }

      .form-group input[type="file"]:focus,
      .form-group input[type="text"]:focus,
      .form-group input[type="url"]:focus,
      .form-group input[type="number"]:focus,
      .form-group select:focus,
      .form-group textarea:focus {
        border-color: var(--primary-color);
        box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.15);
        outline: none;
      }

      .form-group select {
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%236b7280'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right 0.75rem center;
        background-size: 1.25rem;
        padding-right: 2.5rem;
      }

      .submit-button,
      .action-button {
        background: var(--primary-color);
        color: white;
        padding: 0.75rem 1.5rem;
        border: none;
        border-radius: 0.5rem;
        font-size: 1rem;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s ease;
        display: inline-block;
        text-align: center;
        position: relative;
        overflow: hidden;
      }

      .submit-button:hover,
      .action-button:hover {
        background: var(--primary-dark);
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(79, 70, 229, 0.3);
      }

      .submit-button:active,
      .action-button:active {
        transform: translateY(0);
        box-shadow: 0 2px 6px rgba(79, 70, 229, 0.2);
      }

      .submit-button:disabled,
      .action-button:disabled {
        background: #a5b4fc;
        cursor: not-allowed;
        transform: translateY(0);
        box-shadow: none;
      }

      .logout-button {
        background-color: #f3f4f6;
        color: var(--text-color);
        border: 1px solid var(--border-color);
        border-radius: 0.5rem;
        padding: 0.5rem 1.25rem;
        font-size: 0.9rem;
        font-weight: 600;
        margin-left: 1rem;
        transition: all 0.2s ease;
        cursor: pointer;
      }

      .logout-button:hover {
        background-color: #e5e7eb;
        transform: translateY(-1px);
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
      }

      .error-message {
        color: var(--error-color);
        font-size: 0.9rem;
        margin-top: 0.5rem;
      }

      table {
        border-collapse: separate;
        border-spacing: 0;
        width: 100%;
        margin-top: 1rem;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
        border-radius: 0.75rem;
        overflow: hidden;
      }

      th,
      td {
        padding: 1rem 1.25rem;
        text-align: left;
        font-size: 0.95rem;
        border-bottom: 1px solid var(--border-color);
      }

      /* Add styles for the Jobs table columns */
      #jobs-body td {
        white-space: normal; /* Allow text to wrap */
        word-break: break-word; /* Break words to prevent overflow */
        vertical-align: top; /* Align content to top for wrapped text */
      }

      /* Set max-width for the File Name column (second column) */
      #jobs-body td:nth-child(2) {
        max-width: 200px; /* Limit width of File Name column */
        overflow-wrap: break-word; /* Break long words if needed */
      }

      /* Ensure consistent column widths */
      #jobs-body td:nth-child(1) { width: 22%; } /* Date column */
      #jobs-body td:nth-child(3) { width: 15%; } /* Job Type column */
      #jobs-body td:nth-child(4) { width: 15%; } /* Length column */
      #jobs-body td:nth-child(5) { width: 15%; } /* Cost column */

      /* Credit History table formatting */
      #credit-history-body td {
        white-space: normal;
        word-break: break-word;
        vertical-align: top;
      }

      /* Set max-width for the description column (third column) */
      #credit-history-body td:nth-child(3) {
        max-width: 250px;
        overflow-wrap: break-word;
      }

      /* Ensure consistent column widths for credit history */
      #credit-history-body td:nth-child(1) { width: 22%; } /* Transaction Date */
      #credit-history-body td:nth-child(2) { width: 22%; } /* Job Date */
      #credit-history-body td:nth-child(4) { width: 15%; } /* Amount column */

      th {
        background: #f9fafb;
        color: var(--neutral-dark);
        font-weight: 600;
        text-transform: uppercase;
        font-size: 0.8rem;
        letter-spacing: 0.05em;
      }

      tr:nth-child(even) {
        background-color: #f9fafb;
      }

      tr:last-child td {
        border-bottom: none;
      }

      tr:hover {
        background-color: #f5f3ff;
      }

      .footer {
        background-color: #f9fafb;
        padding: var(--space-md);
        text-align: center;
        color: var(--neutral-medium);
        margin-top: var(--space-xl);
        font-size: 0.9rem;
        border-top: 1px solid var(--border-color);
        width: 100vw;
        position: relative;
        left: 50%;
        right: 50%;
        margin-left: -50vw;
        margin-right: -50vw;
      }

      /* Loading animation for buttons */
      @keyframes pulse {
        0% {
          transform: scale(1);
          opacity: 1;
        }
        50% {
          transform: scale(1.02);
          opacity: 0.8;
        }
        100% {
          transform: scale(1);
          opacity: 1;
        }
      }

      .loading {
        animation: pulse 1.5s infinite ease-in-out;
      }

      .hidden-card {
        display: none;
      }

      .active-card {
        display: block;
      }

      /* Centering for button groups if needed */
      .button-group {
        text-align: center;
        margin-top: 1rem;
      }

      .panel {
        padding: 0; /* Initially no padding */
        background-color: white;
        max-height: 0;
        overflow: hidden;
        transition:
          max-height 0.5s ease-out,
          padding 0.3s ease-out,
          border-top 0.3s ease-out;
        border-radius: 0 0 0.375rem 0.375rem;
        border: 1px solid var(--border-color);
        border-top: none; /* So it merges with accordion button border */
        display: block; /* Ensure panel is always displayed */
      }
      .form-group textarea {
        width: 100%;
        padding: 0.75rem;
        border: 1px solid var(--border-color);
        border-radius: 0.375rem;
        background: white;
        font-size: 1rem; /* Ensure consistent font size */
        font-family: inherit; /* Inherit body font */
        line-height: 1.5; /* Consistent line height */
        transition:
          border-color 0.2s ease-in-out,
          box-shadow 0.2s ease-in-out;
        /* min-height: 44px; /* Approximate height of other inputs with 0.75rem padding + border */
        box-sizing: border-box; /* Ensure padding and border are included in width/height */
      }
      .form-group textarea:focus {
        border-color: var(--menu-accent);
        box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.2);
        outline: none;
      }

      /* App icon and card headers */

      /* Card specific styles with icons */
      #document-translator-card h2::before {
        content: "🌐";
        font-size: 1.4rem;
      }

      #audio-transcription-card h2::before {
        content: "🎙️";
        font-size: 1.4rem;
      }

      /* Buy credits card specific styles */
      #buy-credits-card {
        background: linear-gradient(to bottom, white, #f8fafc);
      }

      #buy-credits-card h2::before {
        content: "💰";
        font-size: 1.4rem;
      }

      /* Side panel styles */
      .side-panel {
        position: fixed;
        top: 0;
        right: -400px;
        width: 400px;
        height: 100vh;
        background: white;
        box-shadow: -5px 0 25px rgba(0, 0, 0, 0.1);
        z-index: 2000;
        transition: right 0.3s ease-in-out;
        overflow-y: auto;
        padding-top: 60px;
        border-left: 1px solid rgba(0, 0, 0, 0.05);
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        touch-action: pan-y;
      }

      .side-panel.active {
        right: 0;
      }

      .side-panel-content {
        padding: 2rem;
        /* Provide extra space at the bottom so mobile browser toolbars
           don't cover the final form fields and the panel remains
           scrollable even if content height equals the viewport. */
        padding-bottom: 5rem;
      }

      .side-panel-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 1.75rem;
        border-bottom: 1px solid var(--border-color);
        padding-bottom: 1.25rem;
      }

      .side-panel-title {
        font-size: 1.5rem;
        font-weight: 600;
        color: var(--primary-color);
        position: relative;
        padding-left: 1rem;
      }

      .side-panel-title::before {
        content: "";
        position: absolute;
        left: 0;
        top: 0.2rem;
        bottom: 0.2rem;
        width: 4px;
        background: var(--primary-color);
        border-radius: 4px;
      }

      .close-panel {
        position: absolute;
        top: 1.5rem;
        right: 1.5rem;
        background: #f3f4f6;
        border: 1px solid var(--border-color);
        width: 36px;
        height: 36px;
        border-radius: 50%;
        font-size: 1.25rem;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        color: var(--neutral-dark);
        transition: all 0.2s ease;
      }

      .close-panel:hover {
        background: #e5e7eb;
        color: var(--primary-color);
        transform: rotate(90deg);
      }

      /* Overlay for when side panel is open */
      .overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.5);
        z-index: 1200; /* Changed from 1500 to be below mobile drawer but above other content */
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease;
      }

      .overlay.active {
        opacity: 1;
        visibility: visible;
      }

      /* Contact form styles */
      .contact-form .form-group {
        margin-bottom: 1.5rem;
      }

      .contact-form .form-group label {
        display: block;
        margin-bottom: 0.5rem;
        font-weight: 500;
      }

      .contact-form .form-group input,
      .contact-form .form-group textarea {
        width: 100%;
        padding: 0.75rem;
        border: 1px solid var(--border-color);
        border-radius: 0.375rem;
        background: white;
      }

      .contact-form .form-group textarea {
        height: 150px;
        resize: vertical;
      }

      .send-button {
        background: var(--menu-accent);
        color: white;
        padding: 0.75rem 1.5rem;
        border: none;
        border-radius: 0.375rem;
        font-size: 1rem;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s ease;
        width: 100%;
      }

      .send-button:hover {
        background: var(--primary-dark);
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
      }

      /* Force font-family for all input fields, including autofilled ones */
      input,
      button,
      select,
      textarea {
        font-family: inherit !important;
      }
      input:-webkit-autofill,
      input:-webkit-autofill:focus,
      input:-webkit-autofill:hover,
      input:-webkit-autofill:active {
        font-family: inherit !important;
        -webkit-text-fill-color: inherit;
        transition: background-color 9999s ease-in-out 0s;
      }

      /* Progress and Download sections for translation */
      .progress-log-container {
        margin-top: var(--space-lg);
        display: none;
        border-top: 1px solid var(--border-color);
        padding-top: var(--space-md);
      }

      .progress-log {
        background-color: #f8fafc;
        border: 1px solid var(--border-color);
        padding: var(--space-md);
        border-radius: 6px;
        max-height: 250px;
        overflow-y: auto;
        white-space: pre-wrap;
        font-size: 0.85rem;
        line-height: 1.6;
        color: var(--neutral-medium);
        font-family: monospace;
      }

      .download-area {
        margin-top: var(--space-md);
        display: none;
        padding-top: var(--space-md);
        border-top: 1px solid var(--border-color);
      }

      .panel-tab {
        padding: var(--space-sm) var(--space-md);
        font-size: 1rem;
        background: none;
        border: none;
        border-bottom: 2px solid transparent;
        margin-right: var(--space-md);
        font-weight: 500;
        color: var(--neutral-medium);
        cursor: pointer;
      }

      .panel-tab.active {
        color: var(--primary-color);
        border-bottom-color: var(--primary-color);
      }

      .pricing-float-box {
        position: fixed;
        right: 2.5rem;
        bottom: 2.5rem;
        z-index: 1200;
        background: rgba(255,255,255,0.97);
        box-shadow: 0 6px 32px 0 rgba(79,70,229,0.10), 0 1.5px 6px 0 rgba(0,0,0,0.04);
        border-radius: 1.25rem;
        padding: 1.25rem 1.75rem 1.1rem 1.75rem;
        min-width: 220px;
        max-width: 320px;
        font-size: 1.08rem;
        color: var(--neutral-dark);
        border: 1px solid #e0e7ff;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
        transition: box-shadow 0.2s;
        pointer-events: none;
        user-select: none;
      }

      /* Constrain pricing bubble position on very wide screens */
      @media (min-width: 1400px) {
        .pricing-float-box {
          right: max(2.5rem, calc(50vw - 650px)); /* Position relative to center, max distance from center */
        }
      }
      .pricing-float-title {
        font-weight: 700;
        color: var(--primary-color);
        font-size: 1.13rem;
        margin-bottom: 0.2rem;
        letter-spacing: 0.01em;
      }
      .pricing-float-list {
        display: flex;
        flex-direction: column;
        gap: 0.15rem;
        width: 100%;
      }
      .pricing-float-main {
        font-weight: 600;
        color: var(--primary-dark);
      }
      .pricing-float-credit {
        font-weight: 600;
        color: #10b981;
      }
      .pricing-float-note {
        font-size: 0.98rem;
        color: #64748b;
        margin-top: 0.2rem;
        font-style: italic;
      }
      /* Add responsive table styles - moved to consolidated mobile styles section */

      /* Keep the 480px breakpoint separate as it's more specific */
      @media (max-width: 480px) {
        table, thead, tbody, th, td, tr {
          display: block;
        }

        thead tr {
          position: absolute;
          top: -9999px;
          left: -9999px;
        }

        tr {
          border: 1px solid var(--border-color);
          margin-bottom: 1rem;
          border-radius: 0.5rem;
          background: white;
          padding: 0.5rem;
        }

        td {
          border: none;
          border-bottom: 1px solid #eee;
          position: relative;
          padding-left: 50%;
          text-align: right;
        }

        td:before {
          position: absolute;
          top: 0.75rem;
          left: 0.75rem;
          width: 45%;
          padding-right: 10px;
          white-space: nowrap;
          text-align: left;
          font-weight: bold;
          content: attr(data-label);
        }

        td:last-child {
          border-bottom: 0;
        }
      }

      /* Overlay for when side panel is open */

      /* Mobile Hamburger Menu & Side Drawer */
      .hamburger-menu {
        display: none;
        flex-direction: column;
        justify-content: space-around;
        width: 2.5rem; /* Increased from 2rem */
        height: 2.5rem; /* Increased from 2rem */
        background: transparent;
        border: none;
        cursor: pointer;
        padding: 0;
        z-index: 1001;
        margin: 0 auto;
      }

      .hamburger-menu div {
        width: 2.5rem; /* Increased from 2rem */
        height: 0.25rem;
        background: var(--neutral-dark);
        border-radius: 10px;
        transition: all 0.3s linear;
        position: relative;
        transform-origin: 1px;
      }

      /* Hamburger menu animation */
      .hamburger-menu.open div:nth-child(1) {
        transform: rotate(45deg);
      }

      .hamburger-menu.open div:nth-child(2) {
        opacity: 0;
        transform: translateX(20px);
      }

      .hamburger-menu.open div:nth-child(3) {
        transform: rotate(-45deg);
      }

      .mobile-side-drawer {
        position: fixed;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        background: #f9fafb;
        z-index: 1500;
        display: none;
        overflow-y: auto;
        padding: 4rem 1.5rem 1.5rem;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        touch-action: pan-y;
      }

      .mobile-side-drawer.open {
        display: block;
      }

      .mobile-side-drawer-close {
        position: absolute;
        top: 1rem;
        right: 1rem;
        background: white;
        border: 1px solid var(--border-color);
        border-radius: 50%;
        width: 40px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.5rem;
        cursor: pointer;
        color: var(--neutral-dark);
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
        transition: all 0.2s ease;
      }

      .mobile-side-drawer-close:hover {
        background-color: #f3f4f6;
        transform: scale(1.05);
      }

      .mobile-nav-links {
        display: flex;
        flex-direction: column;
        margin-bottom: 0;
        background-color: white;
        border-radius: 12px;
        overflow: hidden;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
        border: 1px solid var(--border-color);
      }

      .mobile-drawer-nav-item {
        padding: 1.25rem 1.5rem;
        text-decoration: none;
        color: var(--neutral-dark) !important;
        font-weight: 500;
        border-bottom: 1px solid var(--border-color);
        font-size: 1.1rem;
        transition: background-color 0.2s;
      }

      .mobile-drawer-nav-item:hover,
      .mobile-drawer-nav-item:active {
        background-color: #f9fafb;
      }

      .mobile-drawer-nav-item:last-child {
        border-bottom: none;
      }

      .mobile-user-info {
        padding: 1.5rem;
        margin-top: 1rem;
        background-color: white;
        border-radius: 12px;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem; /* Reduced from 1rem to bring elements closer */
        border: 1px solid var(--border-color);
      }

      /* Mobile user info styling to match desktop navigation */
      .user-email-mobile {
        font-weight: 500;
        color: var(--text-color);
        background-color: #f9fafb;
        padding: 0.5rem 0.75rem;
        border-radius: 0.5rem;
        font-size: 0.9rem;
        border: 1px solid var(--border-color);
        display: inline-block;
      }

      /* CONSOLIDATED MOBILE STYLES - All mobile styles in one place */
      @media (max-width: 900px) {
        #buy-credits-card {
          padding: var(--space-lg) var(--space-md);
        }

        .credit-cards {
          grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
        }

        /* Main container adjustments */
        .main-container {
          padding-left: 1rem;
          padding-right: 1rem;
          margin-top: 1rem;
        }

        /* Hide desktop sidebar on mobile */
        .sidebar {
          display: none;
        }

        /* Show mobile menu */
        .mobile-menu {
          display: block;
          position: fixed;
          bottom: 0;
          left: 0;
          right: 0;
          background: white;
          box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
          z-index: 1000;
          border-top: 1px solid var(--border-color);
        }

        .mobile-nav {
          display: flex;
          justify-content: space-around;
          padding: 0.5rem 0;
        }

        .mobile-nav-item {
          display: flex;
          flex-direction: column;
          align-items: center;
          justify-content: center;
          text-decoration: none;
          color: var(--neutral-medium);
          padding: 0.5rem;
          font-size: 0.8rem;
          font-weight: 500;
          flex: 1;
          text-align: center;
          transition: color 0.2s ease;
        }

        .mobile-nav-item.active {
          color: var(--primary-color);
        }

        .mobile-nav-icon {
          font-size: 1.5rem;
          margin-bottom: 0.25rem;
        }

        /* Adjust navbar for mobile */
        .navbar-container {
          padding: 0 1rem;
          justify-content: space-between;
        }

        .brand-logo {
          width: 100px; /* Reduced from default 140px for mobile */
        }

        .hamburger-menu {
          display: flex;
          order: 2;
        }

        .navbar-left {
          order: 1;
        }

        .navbar-right {
          order: 3;
          gap: 0.5rem; /* Reduced gap to bring credit badge closer to logout */
        }

        .credit-badge {
          display: none;
        }

        .user-email {
          display: none; /* Hide email on mobile to save space */
        }

        .navbar-nav {
          display: none;
        }

        .logout-button {
          padding: 0.4rem 0.75rem;
          font-size: 0.8rem;
        }

        /* Add padding to the bottom to account for the fixed bottom nav */
        body {
          padding-bottom: 4.5rem;
        }

        /* Make pricing-float-box always use the small/mobile style when the bottom nav is visible */
        .pricing-float-box {
          right: 0.7rem;
          left: auto;
          bottom: 5rem; /* Increased from 0.7rem to place it above the navigation bar */
          min-width: 160px;
          max-width: 200px;
          padding: 0.5rem 0.7rem 0.5rem 0.7rem;
          font-size: 0.82rem;
          border-radius: 0.7rem;
          box-shadow: 0 2px 8px rgba(79,70,229,0.10), 0 1px 3px rgba(0,0,0,0.04);
        }
        .pricing-float-title {
          font-size: 0.95rem;
          margin-bottom: 0.1rem;
        }
        .pricing-float-list {
          gap: 0.05rem;
        }
        .pricing-float-main, .pricing-float-credit {
          font-size: 0.92em;
        }
        .pricing-float-note {
          display: block; /* Show pricing note on small screens */
          font-size: 0.7rem;
        }

        /* Card adjustments */
        .card {
          padding: 1.25rem;
          border-radius: 0.75rem;
        }

        .card h2 {
          font-size: 1.25rem;
          padding-bottom: 0.5rem;
          margin-bottom: 1rem;
        }

        /* Disable hover effect on mobile */
        .card:hover {
          transform: none;
          box-shadow:
            0 1px 3px rgba(0, 0, 0, 0.04),
            0 1px 2px rgba(0, 0, 0, 0.06);
        }

        /* Responsive table styles */
        table {
          display: block;
          overflow-x: auto;
          width: 100%;
          border-radius: 0.5rem;
          font-size: 0.9rem;
        }

        th, td {
          padding: 0.75rem 1rem;
          min-width: 100px; /* Ensure columns don't get too narrow */
        }
      }

      .credit-badge-mobile {
        display: inline-flex;
        align-items: center;
        background: linear-gradient(to right, #eef2ff, #e0e7ff);
        border-radius: 2rem;
        padding: 0.4rem 1rem;
        font-size: 0.9rem;
        border: 1px solid #ddd6fe;
        color: var(--primary-dark);
        font-weight: 600;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
      }

      .credit-badge-mobile:before {
        content: "💎";
        margin-right: 0.4rem;
        font-size: 1.1rem;
      }

      /* Drawer overlay - not needed anymore since we're using full screen drawer */
      .drawer-overlay {
        display: none;
      }

      .card:not(#buy-credits-card) {
        margin-bottom: 0 !important;
      }
      .ai-disclaimer {
        margin-top: -0.5rem !important;
      }
      .ai-disclaimer p {
        text-align: center !important;
      }

      /* File chips for multi-upload */
      .file-chips-display {
        margin-top: 0.5rem;
        padding: 0.6rem 0.75rem;
        border: 1px solid var(--border-color, #e5e7eb);
        border-radius: 12px;
        background: linear-gradient(135deg, #f7faff 0%, #f0f4ff 100%);
        display: flex;
        flex-wrap: wrap;
        gap: 0.45rem;
      }

      .file-chip {
        display: inline-flex;
        align-items: center;
        padding: 0.35rem 0.65rem;
        border-radius: 999px;
        background: #eef2ff;
        color: #1f2937;
        font-size: 0.9rem;
        border: 1px solid #c7d2fe;
        box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
        max-width: 240px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }

      .file-chip-label {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        max-width: 180px;
      }

      .file-chip-close {
        margin-left: 0.4rem;
        border: none;
        background: transparent;
        color: #1f2937;
        font-weight: 700;
        cursor: pointer;
        line-height: 1;
        padding: 0;
      }

      .file-chip-close:hover {
        color: #ef4444;
      }

      .file-chip-count {
        font-weight: 700;
        background: #3b82f6;
        color: #fff;
        border-color: #2563eb;
        box-shadow: 0 2px 6px rgba(37, 99, 235, 0.18);
      }
    
