
    /* STREAMING_CHUNK:Configuring custom Gurbani font and layout resets */
    @font-face {
      font-family: 'GurbaniAkhar';
      src: url('https://static.wfonts.com/data/2016/06/15/gurbaniakhar/GURAKHAR.woff') format('woff'),
           url('https://cdn.jsdelivr.net/gh/gurbaninow/gurmukhi-fonts/GurbaniAkhar/GurbaniAkhar.ttf') format('truetype');
      font-weight: normal;
      font-style: normal;
      font-display: swap;
    }

    *, *:before, *:after { box-sizing: border-box; }
    html {
      width: 100%;
      max-width: 100%;
      min-height: 100%;
      overflow-x: hidden;
      overscroll-behavior-x: none;
    }

    /* STREAMING_CHUNK:Phase 3 Part 2 Point 5 - Disabling UI callouts and enabling selective text selection */
    body { 
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans Gurmukhi", sans-serif; 
      max-width: 1100px; 
      width: 100%;
      min-height: 100vh;
      margin: 0 auto; 
      padding: 15px; 
      padding-bottom: 180px; 
      background: #f8f9fa; 
      color: #111111; 
      overflow-x: hidden;
      overscroll-behavior-x: none;
      touch-action: pan-y;
      -webkit-touch-callout: none;
      -webkit-user-select: none;
      user-select: none;
    }

    /* Phase 3 Part 2 Point 5: Allow listeners to select and copy sacred Gurbani verses and translations */
    .song-title,
    .song-sub,
    .clampable-content,
    .hindi-text,
    .translation-text,
    input,
    textarea {
      -webkit-user-select: text !important;
      user-select: text !important;
    }

    /* Suppress drag & long-press callouts on interactive UI elements and images */
    img, button, select, a {
      -webkit-touch-callout: none !important;
      -webkit-user-drag: none;
    }

    /* STREAMING_CHUNK:Styling app header banner and sticky toolbar */
    .app-header-container {
      text-align: center;
      padding: 16px 12px 14px 12px;
      margin-bottom: 14px;
      background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #0d6efd 100%);
      border-radius: 14px;
      box-shadow: 0 8px 24px rgba(13, 110, 253, 0.2);
      max-width: 100%;
      box-sizing: border-box;
    }
    .app-header-title {
      margin: 0;
      font-size: 32px;
      font-weight: 800;
      background: linear-gradient(90deg, #ffffff 0%, #fbbf24 60%, #38bdf8 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      letter-spacing: -0.5px;
      text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
    }
    
    .toolbar {
      position: sticky; top: 8px; z-index: 90; display: flex; flex-direction: column; gap: 10px; margin-bottom: 12px;
      background: rgba(255, 255, 255, 0.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
      padding: 12px; border-radius: 12px; border: 1px solid rgba(206, 212, 218, 0.7); box-shadow: 0 4px 18px rgba(0, 0, 0, 0.05);
      max-width: 100%;
      box-sizing: border-box;
    }

    .toolbar-row-search { width: 100%; }
    .search-wrapper { position: relative; width: 100%; display: flex; align-items: center; }
    .search-wrapper input[type="text"] {
      width: 100%; min-height: 44px; padding: 10px 38px 10px 14px; font-size: 17px; font-weight: 500;
      border-radius: 8px; border: 1px solid #6c757d; background-color: #ffffff; color: #111111; -webkit-appearance: none;
    }
    .clear-search-btn { position: absolute; right: 10px; background: none; border: none; font-size: 18px; color: #6c757d; cursor: pointer; display: none; padding: 6px; }

    .toolbar-row-controls { 
      display: flex; align-items: center; gap: 8px; width: 100%; overflow-x: auto; white-space: nowrap; 
      -webkit-overflow-scrolling: touch; padding-bottom: 2px; touch-action: auto;
    }

    .view-toggle-btn {
      background-color: #e7f1ff; color: #0d6efd; border: 1px solid #0d6efd; font-size: 13px; font-weight: 700;
      border-radius: 8px; padding: 9px 12px; min-height: 40px; cursor: pointer; transition: all 0.2s ease;
      white-space: nowrap; display: inline-flex; align-items: center; gap: 4px; flex-shrink: 0;
      touch-action: manipulation; -webkit-tap-highlight-color: transparent; position: relative; z-index: 10;
    }

    .view-toggle-btn.settings-btn {
      background-color: #f1f5f9;
      color: #334155;
      border-color: #94a3b8;
    }
    .view-toggle-btn.settings-btn:hover {
      background-color: #e2e8f0;
      color: #0f172a;
    }

    /* Simple View Mode Dynamic Hiding Rule */
    body.simple-view-mode .advanced-control {
      display: none !important;
    }

    /* STREAMING_CHUNK:Configuring mobile Simple View squeeze layout */
    @media (max-width: 768px) {
      body.simple-view-mode .toolbar-row-controls {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 4px !important;
        overflow-x: visible !important;
        white-space: normal !important;
        width: 100% !important;
        padding-bottom: 0 !important;
      }
      body.simple-view-mode .toolbar-row-controls .view-toggle-btn {
        width: 100% !important;
        min-width: 0 !important;
        padding: 8px 2px !important;
        font-size: clamp(10.5px, 2.7vw, 12.5px) !important;
        min-height: 38px !important;
        justify-content: center !important;
        text-align: center !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        gap: 2px !important;
        flex-shrink: 1 !important;
      }

      body.simple-view-mode .toolbar-row-filters {
        display: grid !important;
        grid-template-columns: 1fr 1.15fr 1fr !important;
        gap: 4px !important;
        overflow-x: visible !important;
        white-space: normal !important;
        width: 100% !important;
        padding-bottom: 0 !important;
      }
      body.simple-view-mode .toolbar-row-filters select,
      body.simple-view-mode .toolbar-row-filters .filter-btn-trigger {
        width: 100% !important;
        min-width: 0 !important;
        padding: 7px 3px !important;
        font-size: clamp(11px, 2.8vw, 13px) !important;
        min-height: 38px !important;
        text-overflow: ellipsis !important;
      }
    }

    /* STREAMING_CHUNK:Configuring popup modal rules and toolbar toggles */
    .video-modal, .photo-modal, .title-selector-modal, .help-modal, .queue-modal, .auth-modal, .settings-modal, .filter-picker-modal { 
      display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; 
      background: rgba(0,0,0,0.85); z-index: 99999 !important; 
      align-items: center; justify-content: center; 
      flex-direction: column; padding: 16px; touch-action: manipulation; -webkit-tap-highlight-color: transparent;
      overflow-y: auto; -webkit-overflow-scrolling: touch;
    }
    .video-modal.active, .photo-modal.active, .title-selector-modal.active, .help-modal.active, .queue-modal.active, .auth-modal.active, .settings-modal.active, .filter-picker-modal.active { 
      display: flex !important; 
      visibility: visible !important;
      opacity: 1 !important;
    }

    .view-toggle-btn.data-saver-active {
      background-color: #198754 !important;
      color: #ffffff !important;
      border-color: #0f5132 !important;
    }

    .view-toggle-btn.offline-active {
      background-color: #0f5132 !important;
      color: #ffffff !important;
      border-color: #0f5132 !important;
    }

    .view-toggle-btn.favorites-active {
      background-color: #dc3545 !important;
      color: #ffffff !important;
      border-color: #b02a37 !important;
    }

    .view-toggle-btn.help-btn {
      background-color: #fff3cd;
      color: #856404;
      border-color: #ffeba2;
    }
    .view-toggle-btn.help-btn:hover {
      background-color: #ffc107;
      color: #000000;
    }

    .page-size-select-top {
      padding: 9px 10px; font-size: 13px; font-weight: 600; border-radius: 8px; border: 1px solid #0d6efd;
      background: #ffffff; color: #0d6efd; min-height: 40px; cursor: pointer; flex-shrink: 0;
    }
    body.hide-page-size-select .page-size-select-top { display: none !important; }

    /* STREAMING_CHUNK:Styling toolbar filter buttons for Phase 4 Part 2 Custom Modal Picker */
    .toolbar-row-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 6px; width: 100%; }
    
    .filter-btn-trigger {
      padding: 8px 10px;
      font-size: 13px;
      font-weight: 600;
      border-radius: 6px;
      border: 1px solid #6c757d;
      background: #ffffff;
      color: #1e293b;
      width: 100%;
      min-height: 38px;
      text-align: left;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      justify-content: space-between;
      gap: 4px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      box-sizing: border-box;
      transition: all 0.15s ease;
    }
    .filter-btn-trigger:hover {
      background: #f1f5f9;
      border-color: #0d6efd;
      color: #0d6efd;
    }
    .filter-btn-trigger .filter-trigger-text {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      flex: 1 1 auto;
      min-width: 0;
    }
    .filter-btn-trigger .filter-trigger-caret {
      font-size: 10px;
      color: #64748b;
      flex-shrink: 0;
      margin-left: 2px;
    }
    .filter-btn-trigger.active-filtered {
      background: #e7f1ff;
      border-color: #0d6efd;
      color: #0d6efd;
      font-weight: 700;
    }

    /* Modal picker specific styling with standard header and X close */
    .filter-picker-content {
      background: #ffffff !important;
      border-radius: 14px;
      width: 92%;
      max-width: 520px;
      max-height: 80vh;
      display: flex !important;
      flex-direction: column !important;
      overflow: hidden;
      box-shadow: 0 12px 35px rgba(0,0,0,0.5);
      margin: auto;
      position: relative;
      z-index: 100000;
    }
    .filter-picker-header {
      padding: 14px 18px;
      background: #0d6efd;
      color: #ffffff;
      display: flex;
      align-items: center;
      justify-content: space-between;
      font-weight: 700;
      font-size: 17px;
      flex-shrink: 0;
    }
    .close-filter-picker-btn {
      background: none;
      border: none;
      color: #ffffff;
      font-size: 26px;
      cursor: pointer;
      line-height: 1;
      padding: 4px 8px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .filter-picker-list {
      flex: 1 1 auto;
      overflow-y: auto;
      padding: 6px 0;
      -webkit-overflow-scrolling: touch;
    }
    .filter-picker-item {
      width: 100%;
      text-align: left;
      padding: 13px 20px;
      border: none;
      background: none;
      font-size: 16px;
      font-weight: 500;
      color: #1e293b;
      border-bottom: 1px solid #f1f5f9;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: space-between;
      transition: background 0.15s ease;
    }
    .filter-picker-item:hover {
      background: #f8fafc;
      color: #0d6efd;
    }
    .filter-picker-item.selected {
      background: #e7f1ff;
      color: #0d6efd;
      font-weight: 800;
    }
    .filter-picker-item .item-check {
      font-size: 16px;
      color: #0d6efd;
      font-weight: bold;
    }

    .filter-chips-bar { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 12px; min-height: 24px; }
    .chip { background: #e7f1ff; color: #0d6efd; border: 1px solid #0d6efd; border-radius: 16px; padding: 4px 10px; font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; gap: 6px; }
    .chip-close { cursor: pointer; font-weight: 800; color: #dc3545; margin-left: 2px; }
    .clear-all-btn { background: #fff0f1; border: 1px solid #dc3545; color: #dc3545; border-radius: 16px; font-size: 12px; font-weight: 700; cursor: pointer; padding: 4px 12px; transition: all 0.2s ease; }
    .clear-all-btn:hover { background: #dc3545; color: #ffffff; }

    /* STREAMING_CHUNK:Styling confirmation modal and song cards */
    .confirm-modal-overlay {
      display: none;
      position: fixed;
      top: 0; left: 0; right: 0; bottom: 0;
      background: rgba(0, 0, 0, 0.72);
      z-index: 100050 !important;
      align-items: center;
      justify-content: center;
      padding: 16px;
      touch-action: manipulation;
    }
    .confirm-modal-overlay.active {
      display: flex !important;
    }
    .confirm-modal-card {
      background: #ffffff;
      border-radius: 14px;
      max-width: 440px;
      width: 100%;
      padding: 22px 20px;
      box-shadow: 0 10px 30px rgba(0,0,0,0.35);
      text-align: center;
      animation: fadeIn 0.2s ease-out;
    }
    .confirm-modal-card h3 {
      margin: 0 0 10px 0;
      font-size: 18px;
      font-weight: 800;
      color: #0f172a;
    }
    .confirm-modal-card p {
      margin: 0 0 20px 0;
      font-size: 15px;
      color: #475569;
      line-height: 1.45;
      word-break: break-word;
    }
    .confirm-modal-actions {
      display: flex;
      gap: 10px;
      justify-content: center;
    }
    .confirm-btn-danger {
      flex: 1;
      padding: 10px 14px;
      border-radius: 8px;
      font-size: 14px;
      font-weight: 700;
      color: #ffffff;
      background-color: #dc3545;
      border: 1px solid #b02a37;
      cursor: pointer;
    }
    .confirm-btn-cancel {
      flex: 1;
      padding: 10px 14px;
      border-radius: 8px;
      font-size: 14px;
      font-weight: 700;
      color: #475569;
      background-color: #f1f5f9;
      border: 1px solid #cbd5e1;
      cursor: pointer;
    }

    .song-list { display: flex; flex-direction: column; gap: 10px; width: 100%; max-width: 100%; }
    body.grid-view-mode .song-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; align-items: stretch; }

    .song-card { 
      display: flex; align-items: center; gap: 14px; padding: 12px 16px; background: #fff; border-radius: 10px; border: 1px solid #dee2e6; 
      transition: background 0.15s ease, border-color 0.15s ease; max-width: 100%; overflow: hidden;
    }
    /* Phase 3: Skip layout and painting for recording cards below the viewport.
       The browser still keeps each card in the document for accessibility and actions. */
    @supports (content-visibility: auto) {
      .song-card {
        content-visibility: auto;
        contain-intrinsic-size: auto 220px;
      }
    }
    .song-card:hover { background: #f8f9fa; border-color: #0d6efd; }
    .song-card.active { background: #e2eefd; border-color: #0d6efd; }
    
    .play-btn-icon { width: 48px; height: 48px; border-radius: 50%; background: #0d6efd; color: white; border: none; display: flex; align-items: center; justify-content: center; font-size: 20px; cursor: pointer; flex-shrink: 0; transition: transform 0.1s ease, background 0.15s ease; }
    .play-btn-icon:hover { background: #0b5ed7; transform: scale(1.05); }
    .song-card.active .play-btn-icon { background: #198754; }

    .media-badge { display: inline-block; padding: 2px 6px; font-size: 11px; font-weight: 800; border-radius: 4px; text-transform: uppercase; }
    .media-badge.video { background: #dc3545; color: white; }
    .media-badge.audio { display: none; }
    .find-similar-badge { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; color: #0d6efd; background: #e7f1ff; border: 1px solid #0d6efd; padding: 3px 8px; border-radius: 12px; cursor: pointer; }
    .find-similar-badge:hover { background: #d4e7ff; }
    .media-badge.low { background: #198754; color: white; }

    .cover-art { width: 70px; height: 70px; border-radius: 6px; object-fit: cover; flex-shrink: 0; }
    body.hide-cover-art .cover-art { display: none !important; }

    .song-details { flex: 1; min-width: 0; max-width: 100%; overflow: hidden; word-break: break-word; }
    .song-title-row { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-bottom: 4px; max-width: 100%; }
    /* V10.3: Media labels and playback/recommendation counts stay on one statistics line.
       Scroll only this small row horizontally if translations or accessibility text exceed available width. */
    .recording-stats-row { display:flex; align-items:center; gap:clamp(6px, 1.5vw, 12px); flex-wrap:nowrap; overflow-x:auto; white-space:nowrap; margin:4px 0 8px; max-width:100%; color:#495057; font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; scrollbar-width:thin; }
    .recording-stats-row .recording-stat { display:inline-flex; flex:0 0 auto; align-items:center; gap:5px; white-space:nowrap; min-height:22px; }
    .recording-stats-row .recording-stat svg { display:block; width:16px; height:16px; flex:0 0 16px; }
    .recording-stats-row .media-badge { flex:0 0 auto; white-space:nowrap; }
    .song-title { font-size: 20px; font-weight: 800; color: #0a3622; line-height: 1.35; letter-spacing: -0.2px; word-break: break-word; }

    .fav-heart-btn { background: none; border: none; font-size: 18px; cursor: pointer; padding: 0 4px; line-height: 1; transition: transform 0.1s ease; }
    .fav-heart-btn:hover { transform: scale(1.2); }

    .shabad-link-badge, .share-link-badge, .row-detail-badge, .add-queue-badge, .save-offline-badge { 
      display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; color: #0f5132; background-color: #e8f5e9; border: 1px solid #198754; padding: 3px 8px; border-radius: 12px; text-decoration: none; cursor: pointer; 
    }
    .share-link-badge { color: #0d6efd; background-color: #e7f1ff; border-color: #0d6efd; }
    .add-queue-badge { color: #856404; background-color: #fff3cd; border-color: #ffc107; }
    .add-queue-badge:hover { background-color: #ffc107; color: #000000; }
    .row-detail-badge { color: #495057; background-color: #f1f3f5; border-color: #adb5bd; }
    .row-detail-badge:hover { background-color: #e9ecef; color: #212529; }

    /* Offline Badge Styles */
    .save-offline-badge { 
      color: #0c5460; 
      background-color: #d1ecf1; 
      border-color: #17a2b8; 
      transition: all 0.15s ease;
    }
    .save-offline-badge.saved {
      color: #0f5132;
      background-color: #d1e7dd;
      border-color: #198754;
    }
    .save-offline-badge:hover { opacity: 0.9; }

    /* V10.5 typography test: larger Standard-mode recording text on smaller devices.
       Large Text mode keeps its existing 25/19/18/18 px overrides below. */
    .song-sub { font-size: 16px; color: #000000; margin-bottom: 4px; line-height: 1.3; font-weight: 500; word-wrap: break-word; word-break: break-word; }
    .song-sub.hindi-text { color: #2d3748; font-size: 18px; font-weight: 600; line-height: 1.5; font-family: "Noto Sans Devanagari", "Mangal", system-ui, sans-serif; }
    .song-sub.translation-text { 
      color: #2d3748; 
      font-size: 16px; 
      font-weight: 500;
      margin-top: 2px;
      line-height: 1.35;
    }

    .text-clamp { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; word-break: break-word; }
    .text-clamp.expanded { display: block !important; -webkit-line-clamp: unset !important; overflow: visible !important; }
    .text-toggle-btn { background: none; border: none; color: #0d6efd; font-weight: 700; font-size: 13px; cursor: pointer; padding: 0 4px; margin-left: 4px; text-decoration: underline; display: inline-block; }
    .text-toggle-btn:hover { color: #0a58ca; }

    .song-meta-container { margin-top: 8px; padding-top: 8px; border-top: 1px dashed #ced4da; }
    .song-meta-container.hidden { display: none !important; }

    .song-meta { display: flex; gap: 12px; flex-wrap: wrap; font-size: 13px; color: #212529; }
    .song-meta span { display: inline-flex; align-items: center; gap: 4px; }
    .song-meta b { color: #000000; font-weight: 700; }
    .meta-value { font-size: 14px; font-weight: 700; color: #0a58ca; }

    .card-actions { display: flex; flex-direction: column; gap: 6px; flex-shrink: 0; width: 165px; }
    .recommend-btn, .download-btn { width: 100%; height: 38px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; padding: 6px 10px; font-size: 13px; font-weight: 700; border-radius: 6px; cursor: pointer; white-space: nowrap; }

    .recommend-btn { border: 1px solid #0d6efd; background-color: #f8f9fa; color: #0d6efd; }
    .recommend-btn.is-recommended { background-color: #198754; border-color: #0f5132; color: #ffffff; }
    .recommend-btn:disabled { opacity: .65; cursor: wait; }
    .download-btn { color: #ffffff; background-color: #198754; border: 1px solid #0f5132; }
    .sehaj-download-icon { display:inline-block; width:19px; height:19px; flex-shrink:0; vertical-align:middle; }
    .download-btn:disabled { background-color: #e9ecef; border-color: #ced4da; color: #6c757d; cursor: not-allowed; }

    body.grid-view-mode .song-card { flex-direction: column; align-items: stretch; padding: 14px; justify-content: space-between; }
    body.grid-view-mode .cover-art { display: none !important; }
    body.grid-view-mode .card-actions { width: 100%; flex-direction: row; gap: 8px; margin-top: 10px; }

    /* STREAMING_CHUNK:Styling centered floating resume banner */
    #clearAllOfflineBtn:disabled { opacity: 0.45; cursor: not-allowed; }

    .resume-banner {
      display: none;
      position: fixed;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: calc(100% - 24px);
      max-width: 580px;
      background: linear-gradient(135deg, #1e3a8a 0%, #0d6efd 100%);
      color: #ffffff;
      padding: 12px 14px;
      border-radius: 16px;
      border: 1px solid rgba(255, 255, 255, 0.35);
      box-shadow: 0 16px 45px rgba(0, 0, 0, 0.55), 0 0 25px rgba(13, 110, 253, 0.45);
      z-index: 100060 !important;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      animation: fadeIn 0.25s ease-out;
      box-sizing: border-box;
    }
    .resume-banner.active {
      display: flex !important;
    }
    .resume-banner-text {
      flex: 1;
      min-width: 0;
      font-size: 13.5px;
      font-weight: 500;
      line-height: 1.35;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      color: #f8fafc;
      text-align: center;
      padding: 0 4px;
    }
    .resume-banner-text b {
      display: block;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      color: #ffffff;
      font-weight: 800;
      letter-spacing: -0.2px;
    }
    .resume-banner-text .resume-time-badge {
      display: inline-block;
      background: rgba(251, 191, 36, 0.22);
      color: #fbbf24;
      border: 1px solid rgba(251, 191, 36, 0.55);
      border-radius: 5px;
      padding: 1px 6px;
      font-size: 12.5px;
      font-weight: 800;
      margin: 6px 0 0;
      max-width: 100%;
      box-sizing: border-box;
    }
    .resume-btn-confirm {
      background: #fbbf24;
      color: #0f172a;
      border: 1px solid #f59e0b;
      padding: 8px 16px;
      border-radius: 10px;
      font-size: 13.5px;
      font-weight: 800;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      gap: 5px;
      flex-shrink: 0;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
      transition: transform 0.1s ease, background 0.15s ease;
    }
    .resume-btn-confirm:hover { 
      background: #f59e0b; 
      transform: scale(1.02);
    }
    .resume-btn-dismiss {
      background: rgba(255, 255, 255, 0.18);
      color: #ffffff;
      border: 1px solid rgba(255, 255, 255, 0.25);
      border-radius: 10px;
      width: 34px;
      height: 34px;
      flex-shrink: 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      font-weight: bold;
      cursor: pointer;
      line-height: 1;
      transition: background 0.15s ease;
    }
    .resume-btn-dismiss:hover { background: rgba(255, 255, 255, 0.35); }

    @media (max-width: 768px) {
      .resume-banner {
        padding: 10px 12px !important;
        border-radius: 14px !important;
        gap: 8px !important;
      }
      .resume-banner-text {
        font-size: 12.5px !important;
      }
      .resume-btn-confirm {
        padding: 7px 12px !important;
        font-size: 12.5px !important;
      }
      .resume-btn-dismiss {
        width: 30px !important;
        height: 30px !important;
      }
    }

    .skeleton-card { height: 100px; background: linear-gradient(90deg, #edf2f7 25%, #e2e8f0 50%, #edf2f7 75%); background-size: 200% 100%; animation: skeleton-loading 1.5s infinite; border-radius: 8px; }
    @keyframes skeleton-loading { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
    
    /* STREAMING_CHUNK:Styling sticky bottom audio player bar */
    .audio-player-bar { 
      position: fixed; bottom: 0; left: 0; right: 0; background: rgba(30, 41, 59, 0.94); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
      color: white; padding: 8px 14px; padding-bottom: calc(8px + env(safe-area-inset-bottom)); display: flex; align-items: center; justify-content: space-between; gap: 10px; 
      box-shadow: 0 -4px 20px rgba(0,0,0,0.35); z-index: 100; border-top: 1px solid rgba(255,255,255,0.1);
      width: 100%; max-width: 100vw; overflow-x: hidden; box-sizing: border-box;
    }
    
    .player-info { 
      display: flex; align-items: center; flex: 1; min-width: 0; 
      overflow: hidden;
    }
    .player-text { 
      overflow: hidden; white-space: nowrap; text-overflow: ellipsis; width: 100%; 
    }
    .player-text .title { 
      font-weight: 700; font-size: 14px; color: #f8fafc; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .player-text .subtitle { 
      font-size: 11px; color: #94a3b8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 1px;
    }
    
    .player-controls-extra { display: flex; align-items: center; gap: 6px; }
    .player-btn { background: #334155; color: white; border: 1px solid #475569; border-radius: 6px; padding: 8px 10px; font-size: 12px; font-weight: 700; cursor: pointer; min-height: 36px; }

    .media-player-container { flex: 2; max-width: 440px; display: flex; align-items: center; }
    audio { width: 100%; height: 38px; border-radius: 6px; }
    /* V10: Android vertical browsing gestures must not seek the native player. */
    .native-seek-wrap { position:relative; flex:1 1 80px; min-width:80px; min-height:44px; display:flex; align-items:center; }
    .native-seek-wrap #nativeSeek { display:block; width:100%; flex:1; min-width:0; margin:0; }
    .native-seek-touch-guard { display:none; }
    /* V10 gallery fallback: no external JS dependency for basic navigation. */
    .sehaj-fallback-photo-viewer { position:fixed; inset:0; z-index:350000; background:rgba(7,15,27,.97); color:white; display:flex; flex-direction:column; align-items:stretch; justify-content:space-between; padding:calc(10px + env(safe-area-inset-top)) 12px calc(10px + env(safe-area-inset-bottom)); }
    .sehaj-fallback-photo-viewer[hidden] { display:none!important; }
    .sehaj-fallback-photo-header, .sehaj-fallback-photo-footer { display:flex; align-items:center; justify-content:space-between; gap:8px; }
    .sehaj-fallback-photo-caption { color:#f8fafc; font-size:14px; text-align:center; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; flex:1; }
    .sehaj-fallback-photo-viewer button { min-width:48px; min-height:48px; border:1px solid #94a3b8; border-radius:9px; color:white; background:#334155; font-size:17px; font-weight:700; cursor:pointer; }
    .sehaj-fallback-photo-viewer button:disabled { opacity:.35; cursor:default; }
    .sehaj-fallback-photo-viewer img { flex:1 1 auto; min-height:0; max-height:calc(100dvh - 170px); width:100%; object-fit:contain; touch-action:pan-y; }
    @media (pointer:coarse) {
      .native-seek-touch-guard { display:block; position:absolute; inset:0; z-index:2; touch-action:pan-y; cursor:ew-resize; }
    }

    .toast-container { position: fixed; top: 20px; right: 20px; z-index: 99999; display: flex; flex-direction: column; gap: 8px; max-width: calc(100vw - 40px); pointer-events: none; }
    .toast { background: #198754; color: white; padding: 10px 16px; border-radius: 6px; font-weight: 600; font-size: 14px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); animation: fadeIn 0.3s ease, fadeOut 0.3s ease 2.7s forwards; max-width: 100%; word-break: break-word; pointer-events: auto; }

    .debug-overlay { display: none; position: fixed; top: 10px; right: 10px; width: 320px; max-height: 200px; background: rgba(0, 0, 0, 0.85); color: #00ff66; font-family: monospace; font-size: 11px; padding: 8px 10px; border-radius: 6px; overflow-y: auto; z-index: 999999; border: 1px solid #00ff66; }
    .debug-overlay.active { display: block; }
    .debug-overlay h4 { margin: 0 0 4px 0; color: #fff; font-size: 12px; text-transform: uppercase; }

    @keyframes fadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
    @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }

    body.large-text-mode .app-header-title { font-size: 38px; }
    body.large-text-mode .search-wrapper input[type="text"] { font-size: 18px; padding: 12px 36px 12px 14px; }
    body.large-text-mode .view-toggle-btn, body.large-text-mode .page-size-select-top { font-size: 15px; padding: 11px 14px; }
    body.large-text-mode .toolbar-row-filters select { font-size: 14px; padding: 8px 10px; }
    body.large-text-mode .song-card { padding: 18px 20px; gap: 20px; min-height: 260px; }
    body.large-text-mode .song-title { font-size: 25px; }
    body.large-text-mode .song-sub { font-size: 18px; line-height: 1.4; }
    body.large-text-mode .song-sub.hindi-text { font-size: 19px; }
    body.large-text-mode .cover-art { width: 95px; height: 95px; }
    body.large-text-mode .play-btn-icon { width: 58px; height: 58px; font-size: 26px; }
    /* V10 QA-37: Details should follow Large Text too, including the More sheet. */
    body.large-text-mode .song-meta { font-size: 16px; line-height: 1.55; row-gap: 10px; }
    body.large-text-mode .song-meta > span { flex-wrap: wrap; white-space: normal; overflow-wrap: anywhere; }
    body.large-text-mode .song-meta b { font-size: 16px; }
    body.large-text-mode .song-meta .meta-value { font-size: 18px; line-height: 1.5; overflow-wrap: anywhere; }
    body.large-text-mode .song-meta-container { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
    body.large-text-mode .row-detail-badge { font-size: 15px; line-height: 1.4; padding: 8px 12px; }
    body.large-text-mode .recording-stats-row { font-size: 16px; }
    body.large-text-mode .recording-actions-body .song-meta-container { padding-bottom: 12px; }

    .pagination-bar { 
      display: flex; 
      justify-content: space-between; 
      align-items: center; 
      margin-top: 16px; 
      margin-bottom: 24px;
      background: #fff; 
      padding: 10px 14px; 
      border-radius: 8px; 
      border: 1px solid #dee2e6; 
      max-width: 100%;
      box-sizing: border-box;
    }
    .pagination-bar { gap:12px; }
    .pagination-bar .page-btn { flex:0 0 auto;min-height:44px; }
    #pageInfo { flex:1;min-width:0;text-align:center;line-height:1.4;overflow-wrap:anywhere; }
    @media(max-width:380px) {
      .pagination-bar {padding:10px 8px;gap:8px;}
      .pagination-bar .page-btn {padding:8px 10px;}
    }
    .page-btn { padding: 8px 16px; font-size: 14px; font-weight: 600; border-radius: 6px; border: 1px solid #0d6efd; background: #0d6efd; color: white; cursor: pointer; }
    .page-btn:disabled { background: #e9ecef; border-color: #dee2e6; color: #6c757d; cursor: not-allowed; }

    .video-modal-content { position: relative; width: 100%; max-width: 850px; background: #000; border-radius: 8px; overflow: hidden; aspect-ratio: 16/9; }
    .video-modal video, .video-modal iframe { width: 100%; height: 100%; border: none; display: block; }
    .close-video-btn, .close-photo-btn { position: absolute; top: 10px; right: 15px; color: white; font-size: 28px; font-weight: bold; cursor: pointer; z-index: 1010; background: rgba(0,0,0,0.5); width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 1px solid #fff; }

    /* STREAMING_CHUNK:Styling desktop modal dialogs and dedicated settings sections */
    .title-selector-content, .queue-modal-content, .auth-modal-content, .help-modal-content, .settings-modal-content { 
      background: #ffffff !important; 
      border-radius: 14px; 
      width: 94%; 
      max-width: 650px; 
      height: 85vh;
      max-height: 850px; 
      display: flex !important; 
      flex-direction: column !important; 
      overflow: hidden; 
      box-shadow: 0 10px 30px rgba(0,0,0,0.5); 
      margin: auto; 
      position: relative;
      z-index: 100000;
    }
    .title-selector-header, .queue-modal-header, .auth-modal-header, .settings-modal-header { padding: 14px 18px; background: #0d6efd; color: white; display: flex; align-items: center; justify-content: space-between; font-weight: 700; font-size: 18px; flex-shrink: 0; }
    .close-title-modal-btn, .close-queue-modal-btn, .close-auth-modal-btn, .close-settings-modal-btn { background: none; border: none; color: white; font-size: 28px; cursor: pointer; line-height: 1; padding: 4px 8px; }
    .title-selector-search { padding: 10px 14px; border-bottom: 1px solid #dee2e6; background: #f8f9fa; flex-shrink: 0; }
    
    .title-selector-search input { 
      width: 100%; 
      padding: 10px 14px; 
      font-size: 22px !important; 
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
      border-radius: 8px; 
      border: 1px solid #ced4da; 
      background: #ffffff;
      -webkit-appearance: none;
      -webkit-font-smoothing: antialiased;
    }
    .title-selector-search input::placeholder {
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
      font-size: 15px !important;
      color: #6c757d;
    }

    /* Restore native checkbox behavior inside the Cloud Sync age dialog.
       The generic .auth-modal-body input rule removes native appearance. */
    #cloudAgeCheck {
      -webkit-appearance: checkbox !important;
      appearance: auto !important;
      accent-color: #0d6efd;
      cursor: pointer;
      pointer-events: auto !important;
    }
    #cloudAgeModal label { cursor: pointer; }

    .auth-modal-body input { 
      width: 100%; 
      padding: 10px 12px; 
      font-size: 16px; 
      border-radius: 6px; 
      border: 1px solid #ced4da; 
      -webkit-appearance: none;
      -webkit-font-smoothing: antialiased;
    }

    /* iPhone Cloud Sync: keep the login form compact above the software keyboard. */
    @media (max-width: 768px) {
      #authModal.active {
        height: var(--auth-visual-height, 100dvh) !important;
        top: var(--auth-visual-top, 0px) !important;
        bottom: auto !important;
        padding: max(10px, env(safe-area-inset-top)) 10px 10px !important;
        justify-content: center !important;
        overflow: hidden !important;
      }
      #authModal .auth-modal-content {
        flex: 0 1 auto !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: calc(var(--auth-visual-height, 100dvh) - 24px) !important;
        margin: 0 auto !important;
      }
      #authModal .auth-modal-body {
        flex: 0 1 auto !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        padding: 16px !important;
      }
      #authEmailInput { font-size: 16px !important; }
    }

    /* Cloud Sync OTP (Android/iPhone): keep a full-width Verify action
       below the scrollable form, inside the keyboard-sized modal.
       The original form button remains available on desktop. */
    #authModal #cloudOtpActionDock[hidden],
    #authModal #cloudVerifyOtpBtn[hidden] { display: none !important; }
    #authModal #cloudOtpActionDock { display: none !important; }
    @media (max-width: 768px) {
      #authModal #cloudOtpActionDock:not([hidden]) {
        display: block !important;
        flex: 0 0 auto !important;
        background: #fff;
        border-top: 1px solid #e2e8f0;
        padding: 9px 12px max(9px, env(safe-area-inset-bottom));
        box-sizing: border-box;
        z-index: 1;
      }
      #authModal #cloudOtpDockVerifyBtn {
        width: 100%; min-height: 46px; padding: 10px;
        background: #198754; color: white;
        border: 0; border-radius: 6px;
        font-size: 15px; font-weight: 700;
        line-height: 1.2; cursor: pointer;
      }
      #authModal #cloudOtpDockVerifyBtn:disabled { opacity: 0.65; cursor: wait; }
    }

    /* Settings Modal Dedicated CSS Styles */
    .settings-modal-body {
      overflow-y: auto;
      padding: 20px;
      display: flex;
      flex-direction: column;
      gap: 16px;
      background: #f8f9fa;
      flex: 1 1 auto;
      min-height: 0;
      -webkit-overflow-scrolling: touch;
    }
    .settings-card {
      background: #ffffff;
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      padding: 16px;
      box-shadow: 0 2px 6px rgba(0,0,0,0.03);
    }
    .settings-card-title {
      font-size: 16px;
      font-weight: 800;
      color: #0f172a;
      margin: 0 0 12px 0;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .settings-option-row {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      padding: 10px 0;
      border-bottom: 1px solid #f1f5f9;
      cursor: pointer;
    }
    .settings-option-row:last-child {
      border-bottom: none;
      padding-bottom: 0;
    }
    .settings-option-row input[type="radio"],
    .settings-option-row input[type="checkbox"] {
      width: 20px;
      height: 20px;
      margin-top: 2px;
      cursor: pointer;
      accent-color: #0d6efd;
      flex-shrink: 0;
    }
    .settings-option-label {
      flex: 1;
      font-size: 15px;
      font-weight: 600;
      color: #1e293b;
      cursor: pointer;
    }
    .settings-option-desc {
      font-size: 13px;
      font-weight: 400;
      color: #64748b;
      margin-top: 2px;
      line-height: 1.4;
    }

    .title-search-row {
      display: flex;
      gap: 8px;
      align-items: stretch;
    }
    .title-search-row input {
      flex: 1 1 auto;
      min-width: 0;
    }
    .title-punjabi-keyboard-btn {
      flex: 0 0 auto;
      border: 1px solid #0d6efd;
      background: #f8fbff;
      color: #0d6efd;
      border-radius: 8px;
      padding: 0 12px;
      font-size: 14px;
      font-weight: 700;
      cursor: pointer;
      white-space: nowrap;
    }
    .title-punjabi-keyboard {
      display: none;
      margin-top: 8px;
      padding: 8px;
      background: #202428;
      border-radius: 8px;
      box-shadow: 0 4px 12px rgba(0,0,0,0.22);
    }
    .title-punjabi-keyboard.active {
      display: block;
    }
    .title-punjabi-key-grid {
      display: grid;
      grid-template-columns: repeat(9, minmax(34px, 1fr));
      gap: 5px;
      touch-action: auto;
    }
    .title-punjabi-key-grid button {
      min-height: 38px;
      border: 1px solid #697078;
      border-radius: 5px;
      background: #343a40;
      color: #ffffff;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans Gurmukhi", sans-serif !important;
      font-size: 20px;
      font-weight: 600;
      cursor: pointer;
    }
    .title-punjabi-key-grid button:active {
      background: #0d6efd;
    }
    .title-punjabi-backspace {
      font-size: 22px !important;
    }
    @media (max-width: 600px) {
      .title-punjabi-keyboard-btn {
        padding: 0 8px;
        font-size: 12px;
      }
      .title-punjabi-key-grid {
        grid-template-columns: repeat(7, minmax(32px, 1fr));
      }
      .title-punjabi-key-grid button {
        min-height: 36px;
        font-size: 18px;
      }
    }

    .title-selector-list, .queue-modal-list { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 8px 0; -webkit-overflow-scrolling: touch; }
    .title-item-btn { 
      width: 100%; 
      text-align: left; 
      padding: 12px 18px; 
      border: none; 
      background: none; 
      font-size: 19px; 
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
      font-weight: 500; 
      color: #212529; 
      border-bottom: 1px solid #f1f3f5; 
      cursor: pointer; 
      transition: background 0.15s ease; 
      display: flex; 
      justify-content: space-between; 
      align-items: center; 
    }
    .title-item-btn:hover { background: #e7f1ff; color: #0d6efd; }
    
    .title-item-btn .initials-tag { 
      font-size: 20px; 
      color: #0d6efd; 
      font-weight: 500; 
      background: #e7f1ff; 
      padding: 2px 8px; 
      border-radius: 4px; 
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
      -webkit-font-smoothing: antialiased;
    }

    .queue-item-row { 
      display: flex; 
      align-items: center; 
      justify-content: space-between; 
      padding: 12px 16px; 
      border-bottom: 1px solid #f1f3f5; 
      gap: 12px; 
      width: 100%;
      box-sizing: border-box;
    }
    .queue-item-row .q-title { 
      font-weight: 700; 
      font-size: 15px; 
      flex: 1 1 auto; 
      min-width: 0; 
      cursor: pointer;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .queue-item-row .q-btn-remove { 
      background: #fff0f1; 
      border: 1px solid #dc3545; 
      color: #dc3545; 
      border-radius: 6px; 
      padding: 6px 10px; 
      font-size: 12px; 
      font-weight: 700; 
      cursor: pointer; 
      flex-shrink: 0;
      white-space: nowrap;
    }
    .queue-item-row .q-btn-remove:hover {
      background: #dc3545;
      color: #ffffff;
    }

    .help-modal-header {
      padding: 14px 20px;
      background: linear-gradient(135deg, #0d6efd, #0b5ed7);
      color: white;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      flex-shrink: 0;
    }
    .help-modal-header h3 { margin: 0; font-size: 18px; font-weight: 800; }
    .help-lang-select {
      padding: 6px 12px;
      font-size: 14px;
      font-weight: 700;
      border-radius: 6px;
      border: 1px solid #ffffff;
      background: #ffffff;
      color: #0d6efd;
      cursor: pointer;
    }
    .close-help-modal-btn { background: none; border: none; color: white; font-size: 28px; cursor: pointer; line-height: 1; padding: 4px 8px; }
    .help-modal-body, .auth-modal-body { overflow-y: auto; padding: 20px; line-height: 1.6; color: #212529; font-size: 15px; flex: 1 1 auto; min-height: 0; -webkit-overflow-scrolling: touch; }
    .help-section { margin-bottom: 20px; }
    .help-section h4 { margin-top: 0; margin-bottom: 8px; color: #0d6efd; font-size: 16px; border-bottom: 2px solid #e7f1ff; padding-bottom: 4px; }
    .help-section ul { margin: 0; padding-left: 20px; }
    .help-section li { margin-bottom: 6px; }

    .pswp-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; width: 100%; max-width: 900px; max-height: 80vh; overflow-y: auto; background: #111; padding: 16px; border-radius: 12px; touch-action: auto; }
    .pswp-gallery-grid a img { width: 100%; height: 120px; object-fit: cover; border-radius: 8px; transition: transform 0.2s ease; border: 1px solid rgba(255,255,255,0.1); }
    .pswp-gallery-grid a img:hover { transform: scale(1.04); }

    .pswp__top-bar {
      padding-top: max(12px, env(safe-area-inset-top)) !important;
      height: auto !important;
      min-height: 64px !important;
      align-items: flex-start !important;
      pointer-events: none;
    }
    .pswp__top-bar .pswp__button,
    .sehaj-pswp-button,
    .sehaj-pswp-close-btn {
      pointer-events: auto !important;
    }
    .pswp__button--close,
    .pswp__button--zoom,
    .pswp .pswp__button--close,
    .pswp .pswp__button--zoom {
      display: none !important;
      visibility: hidden !important;
      opacity: 0 !important;
      pointer-events: none !important;
    }
    .sehaj-pswp-button {
      width: auto !important;
      min-width: 54px !important;
      height: 48px !important;
      margin: 6px !important;
      padding: 0 16px !important;
      border: 1px solid rgba(255,255,255,.45) !important;
      border-radius: 24px !important;
      background: rgba(0,0,0,.72) !important;
      color: #fff !important;
      font-size: 15px !important;
      font-weight: 800 !important;
      opacity: 1 !important;
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      gap: 6px !important;
      z-index: 100000 !important;
    }

    @media (min-width: 769px) {
      .pswp__top-bar {
        padding-right: 18px !important;
      }
      .sehaj-pswp-button {
        min-width: 115px !important;
        height: 50px !important;
        padding: 0 18px !important;
        gap: 8px !important;
      }
      .sehaj-pswp-button .sehaj-photo-arrow {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 34px !important;
        line-height: 1 !important;
        font-weight: 900 !important;
        margin-right: 4px !important;
        vertical-align: middle !important;
      }
      .sehaj-pswp-button .sehaj-photo-label {
        font-size: 15px !important;
        font-weight: 800 !important;
        line-height: 1 !important;
      }
      .audio-player-bar { flex-wrap: wrap; }
      .player-controls-extra { display: flex !important; align-items: center !important; gap: 8px !important; flex-wrap: wrap !important; }
      .player-controls-extra .player-btn { min-width: 72px; }
      #openQueueBtn { min-width: 105px; }
      .media-player-container { min-width: 300px; }
      .queue-modal-content { max-width: 760px !important; }
      .queue-item-row .q-title { font-size: 16px; }
    }

    .sehaj-pswp-close-btn {
      width: 48px !important;
      height: 48px !important;
      min-width: 48px !important;
      min-height: 48px !important;
      margin: 6px 10px 6px 12px !important;
      padding: 0 0 3px 0 !important;
      border-radius: 50% !important;
      border: 2px solid rgba(255,255,255,0.92) !important;
      background: rgba(20,20,20,0.90) !important;
      color: #ffffff !important;
      font-size: 34px !important;
      font-weight: 800 !important;
      line-height: 1 !important;
      text-shadow: 0 1px 2px rgba(0,0,0,0.55) !important;
      box-shadow: 0 3px 10px rgba(0,0,0,0.42) !important;
      cursor: pointer !important;
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      opacity: 1 !important;
      z-index: 100000 !important;
      -webkit-tap-highlight-color: transparent;
    }

    /* STREAMING_CHUNK:Restoring complete mobile view responsive stylesheet */
    @media (max-width: 768px) {
      body { 
        padding: 10px; 
        padding-bottom: calc(170px + env(safe-area-inset-bottom)) !important; 
        max-width: 100% !important;
        overflow-x: hidden !important;
      }
      .app-header-title { font-size: 24px; }
      .search-wrapper input[type="text"], .toolbar-row-filters select, .toolbar-row-filters .filter-btn-trigger { font-size: 17px !important; }
      
      /* In Advanced Mode, allow smooth horizontal touch scroll */
      body:not(.simple-view-mode) .toolbar-row-filters { 
        display: flex; overflow-x: auto; white-space: nowrap; padding-bottom: 4px; -webkit-overflow-scrolling: touch; 
      }
      body:not(.simple-view-mode) .toolbar-row-filters select,
      body:not(.simple-view-mode) .toolbar-row-filters .filter-btn-trigger { 
        flex: 0 0 auto; width: auto; min-width: 120px; 
      }
      
      .song-card { flex-direction: column !important; align-items: stretch !important; padding: 12px 14px !important; gap: 10px !important; }
      .cover-art { display: none !important; }
      .song-details { width: 100% !important; }
      .song-title-row { justify-content: flex-start !important; gap: 6px !important; }
      .song-sub { text-align: left !important; width: 100% !important; }
      .card-actions { width: 100% !important; flex-direction: row !important; align-items: center !important; gap: 8px !important; margin-top: 6px !important; }
      .card-actions .play-btn-icon { width: 44px !important; height: 44px !important; font-size: 18px !important; flex-shrink: 0 !important; }
      .card-actions .recommend-btn { flex: 2 !important; height: 44px !important; }
      .card-actions .download-btn { flex: 1 !important; height: 44px !important; }
      .audio-player-bar { flex-direction: column; align-items: stretch; gap: 6px; }
      .media-player-container { max-width: 100%; }

      .title-selector-modal, 
      .help-modal, 
      .queue-modal, 
      .auth-modal,
      .settings-modal,
      .filter-picker-modal {
        display: none;
        position: fixed !important;
        top: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        height: 100% !important;
        padding: 12px 10px !important;
        padding-top: max(16px, env(safe-area-inset-top)) !important;
        padding-bottom: max(16px, env(safe-area-inset-bottom)) !important;
        align-items: stretch !important;
        justify-content: center !important;
        box-sizing: border-box !important;
      }

      .title-selector-content, 
      .help-modal-content, 
      .queue-modal-content, 
      .auth-modal-content,
      .settings-modal-content,
      .filter-picker-content {
        position: relative !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        flex: 1 1 0px !important;
        margin: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        border-radius: 12px !important;
        overflow: hidden !important;
      }

      .title-selector-list, 
      .help-modal-body, 
      .queue-modal-list,
      .settings-modal-body,
      .filter-picker-list {
        flex: 1 1 0px !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow-y: scroll !important;
        -webkit-overflow-scrolling: touch !important;
      }

      .player-controls-extra {
        display: grid !important;
        grid-template-columns: 1.15fr 0.85fr 0.85fr 0.95fr 0.80fr 1.40fr !important;
        gap: 4px !important;
        width: 100% !important;
        overflow: visible !important;
        white-space: normal !important;
      }

      .player-controls-extra .player-btn {
        min-width: 0 !important;
        width: 100% !important;
        padding: 7px 2px !important;
        font-size: 11px !important;
        line-height: 1.1 !important;
        white-space: nowrap !important;
        flex: 0 0 auto !important;
      }

      #openQueueBtn {
        min-width: 0 !important;
        padding-left: 4px !important;
        padding-right: 4px !important;
      }
    }

    @media (max-width: 390px) {
      .player-controls-extra .player-btn {
        font-size: 10px !important;
        padding-left: 1px !important;
        padding-right: 1px !important;
      }
    }
  
    @media (max-width: 768px) {
      #photoGalleryModal .modal-content,
      #photoGalleryModal .photo-gallery-content {
        width: 94vw !important;
        max-width: 94vw !important;
        max-height: 88vh !important;
        overflow-y: auto !important;
      }

      #pswpGalleryContainer {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        width: 100% !important;
        padding: 10px !important;
        box-sizing: border-box !important;
        overflow: visible !important;
      }

      #pswpGalleryContainer a {
        display: block !important;
        width: 100% !important;
        height: 140px !important;
        min-height: 140px !important;
        overflow: hidden !important;
        border-radius: 10px !important;
      }

      #pswpGalleryContainer a img,
      #pswpGalleryContainer img {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 140px !important;
        object-fit: cover !important;
      }

      #photoGalleryModal {
        align-items: flex-start !important;
        justify-content: center !important;
        overflow-y: auto !important;
        padding: max(16px, env(safe-area-inset-top)) 10px max(16px, env(safe-area-inset-bottom)) !important;
        box-sizing: border-box !important;
      }
      #photoGalleryModal .modal-content,
      #photoGalleryModal .photo-gallery-content,
      #pswpGalleryContainer {
        margin-top: 0 !important;
      }

      #photoGalleryModal .modal-header {
        position: sticky !important;
        top: 0 !important;
        z-index: 10050 !important;
        background: inherit !important;
      }

      #photoGalleryModal .close-btn,
      #photoGalleryModal .modal-close,
      #closePhotoGalleryBtn {
        position: sticky !important;
        top: 8px !important;
        z-index: 10060 !important;
      }

      .sehaj-pswp-button {
        min-width: 108px !important;
        height: 62px !important;
        padding: 3px 12px 5px !important;
        flex-direction: column !important;
        gap: 0 !important;
        line-height: 1 !important;
      }
      .sehaj-pswp-button .sehaj-photo-arrow {
        display: block !important;
        font-size: 36px !important;
        line-height: 32px !important;
        font-weight: 900 !important;
        color: #fff !important;
      }
      .sehaj-pswp-button .sehaj-photo-label {
        display: block !important;
        font-size: 15px !important;
        line-height: 17px !important;
        font-weight: 800 !important;
        color: #fff !important;
      }
      .sehaj-pswp-close-btn {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
        font-size: 30px !important;
        margin: 8px 6px 8px 6px !important;
      }
    }

    #closePhotoGalleryBtn {
      position: absolute !important;
      top: max(12px, env(safe-area-inset-top)) !important;
      right: 14px !important;
      width: 46px !important;
      height: 46px !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      padding: 0 0 4px 0 !important;
      border-radius: 50% !important;
      border: 2px solid rgba(255,255,255,0.92) !important;
      background: rgba(20,20,20,0.90) !important;
      color: #ffffff !important;
      font-size: 34px !important;
      font-weight: 800 !important;
      line-height: 1 !important;
      text-shadow: 0 1px 2px rgba(0,0,0,0.55) !important;
      box-shadow: 0 3px 10px rgba(0,0,0,0.42) !important;
      cursor: pointer !important;
      z-index: 100005 !important;
      -webkit-tap-highlight-color: transparent;
    }

    @media (max-width: 768px) {
      #closePhotoGalleryBtn {
        position: sticky !important;
        top: max(8px, env(safe-area-inset-top)) !important;
        margin-left: auto !important;
        margin-right: 4px !important;
      }
    }
  
    /* Keep clear X inside the search input; keyboard stays beside it. */
    .main-search-input-wrap { position: relative; flex: 1 1 auto; min-width: 0; }
    .main-search-input-wrap #searchInput { box-sizing: border-box; width: 100%; }
    .main-search-input-wrap .clear-search-btn { top: 50%; transform: translateY(-50%); right: 9px; z-index: 1; }
    #mainPunjabiKeyboardBtn { flex: 0 0 auto; margin-left: 6px; white-space: nowrap; }
    /* Main search Punjabi keyboard */
    .toolbar-row-search { flex-wrap: wrap; }
    #mainPunjabiKeyboard { width: 100%; box-sizing: border-box; }
    #mainPunjabiKeyboard .title-punjabi-key-grid { grid-template-columns: repeat(9, minmax(0, 1fr)); }
    #mainPunjabiKeyboardBtn { padding: 0 9px; }
    @media (max-width: 600px) {
      #mainPunjabiKeyboard .title-punjabi-key-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); }
      #mainPunjabiKeyboardBtn { padding: 0 6px; }
    }
  
    .self-delete-overlay {display:none;position:fixed !important;top:0 !important;right:0 !important;bottom:0 !important;left:0 !important;width:100%;height:100%;z-index:200000 !important;background:rgba(0,0,0,.85);padding:16px;align-items:center;justify-content:center;box-sizing:border-box;overflow:hidden;}
    .self-delete-overlay.active {display:flex !important;visibility:visible !important;opacity:1 !important;pointer-events:auto !important;}
    #privacyDialog > .legal-reader-panel {background:white;width:100%;max-width:850px;height:100%;max-height:900px;min-height:0;display:flex;flex-direction:column;border-radius:14px;overflow:hidden;position:relative;}
    #privacyDialog .legal-reader-header {display:flex;align-items:center;justify-content:space-between;padding:10px 16px;gap:12px;flex-shrink:0;background:white;}
    #privacyDialog #privacyContent {flex:1 1 0%;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;}
    @media (max-width:768px) {
      .self-delete-overlay {padding:12px 10px;padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom));}
    }
    .self-delete-panel {box-sizing:border-box;width:100%;max-width:520px;height:100%;max-height:620px;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:white;border-radius:14px;box-shadow:0 16px 45px rgba(0,0,0,.4);color:#1e293b;}
    .self-delete-header {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;flex:0 0 auto;background:white;}
    .self-delete-panel h3 {margin:0;color:#9f1239;font-size:20px;}
    .self-delete-body {flex:1 1 0%;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 20px 16px;}
    .self-delete-panel p {line-height:1.55;}
    .self-delete-panel label {display:block;margin:16px 0 8px;font-weight:600;}
    .self-delete-panel input {display:block;width:100%;box-sizing:border-box;padding:12px;font-size:18px;border:2px solid #94a3b8;border-radius:8px;text-transform:uppercase;}
    .self-delete-actions {flex:0 0 auto;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;background:white;border-top:1px solid #e2e8f0;padding:14px 20px;}
    .self-delete-actions button {border:0;border-radius:8px;min-height:48px;padding:12px 15px;font:inherit;font-weight:700;white-space:normal;cursor:pointer;}
    @media(max-width:600px) {
      .self-delete-panel {max-height:100%;}
      .self-delete-actions {flex-direction:column;gap:8px;padding:10px 16px;}
      .self-delete-actions button {width:100%;}
    }
    #selfDeleteCancelBtn {background:#e2e8f0;color:#0f172a;}
    #selfDeleteConfirmBtn {background:#be123c;color:white;}
    #selfDeleteConfirmBtn:disabled {background:#cbd5e1;color:#64748b;cursor:not-allowed;}

/* One playback surface at a time, including during queue resets. */
    #audioPlayer[hidden] { display: none !important; }
    #nativePlayPause { display: inline-flex; align-items: center; justify-content: center;
      width: 42px; min-width: 42px; height: 38px; padding: 8px;
      color: #fff; background: #334155; border: 1px solid #64748b; border-radius: 6px; }
    #nativePlayPause svg { width: 20px; height: 20px; fill: currentColor; }

    /* Cloud Sync: fit all options naturally; scroll only when the viewport is shorter. */
    #authModal.active {
      align-items: center !important;
      box-sizing: border-box !important;
    }
    #authModal .auth-modal-content {
      height: auto !important;
      min-height: 0 !important;
      flex: 0 1 auto !important;
      max-height: calc(var(--auth-visual-height, 100vh) - 48px) !important;
      max-width: 650px !important;
    }
    #authModal .auth-modal-body {
      flex: 0 1 auto !important;
      min-height: 0 !important;
      overflow-y: auto !important;
    }
  
    /* Tactile visual feedback without changing labels, layout, or click behavior. */
    button:not(:disabled):not([aria-disabled="true"]):active,
    input[type="button"]:not(:disabled):active,
    input[type="submit"]:not(:disabled):active,
    [role="button"]:not([aria-disabled="true"]):active {
      filter: brightness(0.82) !important;
      box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.24),
                  inset 0 3px 6px rgba(0, 0, 0, 0.22) !important;
    }
    button:focus-visible,
    input[type="button"]:focus-visible,
    input[type="submit"]:focus-visible,
    [role="button"]:focus-visible {
      outline: 3px solid #1259c3;
      outline-offset: 3px;
    }
  
    /* Strong feedback remains briefly after a quick tap, including busy buttons. */
    button.button-press-visible,
    input.button-press-visible,
    [role="button"].button-press-visible {
      filter: none !important;
      background: #ffddb3 !important;
      color: #663300 !important;
      border-color: #e89032 !important;
      outline: 3px solid #e89032 !important;
      outline-offset: 2px !important;
      box-shadow: inset 0 0 0 3px #fff0db,
                  inset 0 5px 9px rgba(190,100,20,0.28) !important;
    }
  
    /* Readable desktop text in account and supporting dialogs. */
    @media (min-width: 769px) {
      #authModal .auth-modal-body,
      #cloudAgeModal .auth-modal-body,
      #favoriteSyncChoice,
      .settings-modal .settings-modal-body,
      .help-modal .help-modal-body { font-size: 18px !important; line-height: 1.6; }
      #authModal input,
      #authModal button:not(.close-auth-modal-btn),
      #cloudAgeModal button:not(.close-auth-modal-btn),
      #favoriteSyncChoice button { font-size: 18px !important; }
      #authModal button:not(.close-auth-modal-btn),
      #cloudAgeModal button:not(.close-auth-modal-btn) {
        min-height: 48px; white-space: normal; height: auto; line-height: 1.4;
      }
    }
  
    .favorites-loading-spinner {
      width: 36px; height: 36px; margin: 22px auto;
      border: 4px solid #dbeafe; border-top-color: #0d6efd;
      border-radius: 50%; animation: favorites-loading-spin 0.85s linear infinite;
    }
    @keyframes favorites-loading-spin { to { transform: rotate(360deg); } }
    @media (prefers-reduced-motion: reduce) {
      .favorites-loading-spinner { animation: none; }
    }
  
    .queue-offline-notice {
      background: #fff3df; color: #663300; border: 1px solid #e89032;
      border-radius: 8px; padding: 9px 12px; margin: 6px 10px;
      font-size: 15px; line-height: 1.45; flex-shrink: 0;
    }
    .queue-offline-notice[hidden] { display: none !important; }
    #queuePreviousControl:disabled, #queueNextControl:disabled {
      opacity: 0.4; cursor: not-allowed;
    }
  
    /* Keep the original six navigation controls; Stop/Close sits beside the title. */
    #playerInfo .player-text { flex: 1 1 auto; min-width: 0; }
    #playerInfo #stopClosePlayerBtn {
      flex: 0 0 auto; margin-left: 8px; min-height: 40px;
      max-width: 48%; white-space: normal; line-height: 1.25;
      font-size: 12px; padding: 7px 9px;
    }
    @media (max-width: 768px) {
      #playerInfo { width: 100%; }
    }
  
/* SCROLL_SAFE_CARDS: secondary actions live in the recording's More dialog. */
.song-card { flex-wrap: wrap; }
.song-card .song-details { min-width: 0; }
.song-card .card-actions { width:100% !important; display:flex !important; flex-direction:row !important; justify-content:flex-start; align-items:center; gap:16px !important; }
.song-card .card-actions > button { min-width:56px; min-height:48px; height:auto !important; margin:0; padding:10px 14px; font-size:18px; border-radius:10px; }
.song-card .card-more-btn { background:#fff4e5; border:2px solid #ad6400; color:#633900; font-weight:700; }
.song-card .fav-heart-btn { border:1px solid #b9c1ca; background:white; }
.song-card .song-title-row { cursor:default; }
.recording-actions-dialog { width:min(560px, calc(100% - 24px)); max-height:85vh; max-height:85dvh; padding:0; border:1px solid #bbb; border-radius:18px; background:#fff; color:#212529; box-sizing:border-box; }


.recording-actions-header { display:flex; gap:16px; align-items:flex-start; padding:16px; position:sticky; top:0; background:white; border-bottom:1px solid #ddd; z-index:1; }
.recording-actions-title { flex:1; min-width:0; font-size:18px; font-weight:700; overflow-wrap:anywhere; margin:0; }
.recording-actions-close { min-height:48px; min-width:48px; padding:8px 12px; background:#fff; color:#a32424; border:2px solid #a32424; border-radius:8px; font-size:18px; }
.recording-actions-body { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:16px; padding-bottom:max(16px, env(safe-area-inset-bottom)); }
.song-card .recording-actions-body > button, .song-card .recording-actions-body > a { box-sizing:border-box; width:100%; min-height:52px; height:auto !important; white-space:normal; margin:0; padding:12px; font-size:16px; display:flex; align-items:center; justify-content:center; gap:6px; text-align:center; }
.recording-actions-body .song-meta-container { grid-column:1 / -1; }
@media(max-width:600px) { .recording-actions-dialog { margin:auto auto 0; width:100%; max-width:100%; border-radius:18px 18px 0 0; } }
@media(max-width:360px) { .recording-actions-body { grid-template-columns:1fr; } }


/* Android-compatible overlay: attached to body, outside card paint containment. */
.recording-actions-dialog[hidden] { display:none !important; }
.recording-actions-dialog:not([hidden]) { display:flex !important; position:fixed; inset:0; z-index:2147483000; width:100%; max-width:none; height:100%; max-height:none; margin:0; padding:12px; border:0; border-radius:0; background:rgba(0,0,0,.48); align-items:center; justify-content:center; box-sizing:border-box; }
.recording-actions-sheet { width:100%; max-width:560px; max-height:85vh; max-height:85dvh; overflow-y:auto; overscroll-behavior:contain; background:white; border-radius:18px; color:#212529; }
.recording-actions-body > button, .recording-actions-body > a { box-sizing:border-box; width:100%; min-height:52px; height:auto !important; white-space:normal; margin:0; padding:12px; font-size:16px; display:flex; align-items:center; justify-content:center; gap:6px; text-align:center; }
.song-card .song-title .text-clamp, .song-card .hindi-text .text-clamp, .song-card .translation-text .text-clamp { -webkit-line-clamp:1; }
/* Standard mode, compact screens: keep Hindi readable at 18px on ONE line.
   Truncate at the visible card width (not by fixed character count) with an ellipsis.
   Preserve the existing Show full title behavior for unusually long entries. */
@media (max-width: 600px) {
  body:not(.large-text-mode) .song-card .hindi-text {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: normal;
  }
  body:not(.large-text-mode) .song-card .hindi-text .text-clamp {
    -webkit-line-clamp: 1;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
  body:not(.large-text-mode) .song-card .hindi-text .text-clamp.expanded {
    white-space: normal;
    word-break: break-word;
  }
}
@media(max-width:600px) { .recording-actions-dialog:not([hidden]) { padding:0; align-items:flex-end; } .recording-actions-sheet { max-width:none; border-radius:18px 18px 0 0; } }


/* Four primary controls; original offline text remains the accessible name. */
.song-card .card-actions { justify-content:flex-start !important; gap:8px !important; flex-wrap:nowrap !important; }
.song-card .card-actions > button { min-width:48px; padding:8px; }
.song-card .card-actions > .card-offline-icon { font-size:0 !important; position:relative; width:48px; height:48px !important; flex:0 0 48px; padding:3px; background:white; border:1px solid #9ba8b5; border-radius:10px; }
/* OFFLINE_ICON_V6: embed the icon so cards never depend on a separate offline-button.webp asset. */
.card-offline-icon::before { content:''; display:block; width:38px; height:38px; background:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2238%22%20height%3D%2238%22%20viewBox%3D%220%200%2038%2038%22%3E%3Crect%20x%3D%222%22%20y%3D%222%22%20width%3D%2234%22%20height%3D%2234%22%20rx%3D%228%22%20fill%3D%22%23eaf4ff%22%2F%3E%3Cpath%20d%3D%22M10.2%2024.6v4.2c0%20.6.5%201.1%201.1%201.1h15.4c.6%200%201.1-.5%201.1-1.1v-4.2%22%20fill%3D%22none%22%20stroke%3D%22%231465ba%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M19%208.4v16.1m-6.1-6.1%206.1%206.1%206.1-6.1%22%20fill%3D%22none%22%20stroke%3D%22%231465ba%22%20stroke-width%3D%222.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E') center / contain no-repeat; }
.card-offline-icon.saved::after { content:'✓'; position:absolute; right:-3px; top:-5px; font-size:16px; line-height:20px; width:20px; height:20px; color:white; background:#198754; border-radius:50%; }
.card-offline-icon:disabled { opacity:.45; }
.song-card .card-actions > .card-more-btn { font-size:16px; white-space:normal; min-width:0; }

.song-card .song-title-row > .title-favorite-button { display:inline-flex; align-items:center; justify-content:center; flex:0 0 48px; width:48px; min-height:48px; margin:0 6px 0 0; padding:4px; font-size:28px; line-height:1; border:1px solid #ccd3da; border-radius:10px; background:#fff; }
.song-card .card-actions > .card-queue-button { font-size:15px; white-space:normal; flex:0 1 auto; border:1px solid #c28c00; background:#fff5ce; color:#624600; }
.card-queue-button:disabled { opacity:.45; cursor:default; }

.favorite-title-line { display:flex; align-items:flex-start; gap:8px; width:100%; min-width:0; }
.song-card .favorite-title-line > .title-favorite-button { flex:0 0 48px; width:48px; min-height:48px; padding:4px; margin:0; font-size:28px; line-height:1; display:flex; align-items:center; justify-content:center; border:1px solid #ccd3da; border-radius:10px; background:white; }
.song-card .punjabi-card-title { flex:1 1 0%; min-width:0; margin:0; padding-top:8px; }
.punjabi-title-text { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.punjabi-title-text.expanded { white-space:normal; overflow:visible; overflow-wrap:anywhere; }

/* Icon-only queue controls; keep a generous touch target. */
.card-queue-button { position:relative; }
.card-queue-button .queue-saved-check { position:absolute; right:-3px; top:-5px; font-size:16px; line-height:20px; width:20px; height:20px; text-align:center; color:white; background:#198754; border-radius:50%; pointer-events:none; }
.song-card .card-actions > .card-queue-button { min-width:48px; min-height:48px; display:inline-flex; align-items:center; justify-content:center; }
.song-card .card-actions > .card-queue-button.is-queued { color:#246139; border-color:#246139; background:#eaf5ed; }
.sehaj-queue-icon { flex-shrink:0; vertical-align:middle; pointer-events:none; }
.player-controls-extra .player-btn { min-height:48px; display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; }



#guidedTour[hidden] {display:none!important}
#guidedTour {position:fixed;left:0;top:0;width:100%;height:100%;z-index:2147483000;overflow:hidden;}
#tourSpot {position:absolute;border:3px solid #f59e0b;border-radius:9px;box-shadow:0 0 0 9999px rgba(15,23,42,.72);pointer-events:none;box-sizing:border-box;}
#guidedTour:has(#tourSpot[hidden]) {background:rgba(15,23,42,.72);}
#tourCard {position:absolute;box-sizing:border-box;max-width:470px;background:white;color:#172033;border-radius:14px;padding:14px;box-shadow:0 5px 24px #0005;display:flex;flex-direction:column;}
#tourCard h2 {font-size:21px;line-height:1.25;margin:8px 0;flex-shrink:0;}
#tourText {font-size:17px;line-height:1.5;white-space:pre-line;margin:0;overflow:auto;min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1 1 auto;}
/* V10.1: readable semibold final Welcome paragraph in three languages. */
#tourText .tour-welcome-final {
  font-family: system-ui, "Segoe UI", "Noto Sans", Arial, sans-serif;
  font-weight: 600;
  font-size: 1.04em;
  line-height: 1.65;
  letter-spacing: normal;
}
#tourText .tour-welcome-final:lang(pa) {
  font-family: "Noto Sans Gurmukhi", "Raavi", system-ui, sans-serif;
}
#tourText .tour-welcome-final:lang(hi) {
  font-family: "Noto Sans Devanagari", "Mangal", system-ui, sans-serif;
}
#tourStatus {font-size:14px;color:#8a4307;margin:4px 0;flex-shrink:0;}
#tourStatus:empty {display:none}
#tourNav {display:flex;gap:8px;margin-top:10px;flex-shrink:0;flex-wrap:wrap;}
#tourNav button,#tourClose {min-height:48px;font-size:16px;border-radius:8px;border:1px solid #cbd5e1;padding:8px;background:#f1f5f9;color:#172033;cursor:pointer;}
#tourNav button {flex:1;min-width:65px;}
#tourNav button[hidden]{display:none!important}
#tourNav #tourNext {background:#b45309;color:white;border-color:#b45309;}
#tourClose {font-size:24px;min-width:44px;padding:2px;}
#tourLanguage {font-size:16px;min-height:44px;max-width:140px;}
#tourArrow {position:absolute;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;}
html.tour-open,body.tour-open {overflow:hidden!important;overscroll-behavior:none;}
#showIntroductionBtn,#aboutSehajBtn {min-height:48px;font-size:17px;padding:10px;border-radius:8px;}

#toggleLargeTextModeBtn,#toggleDataSaverBtn,#openHelpBtn {display:none!important;}
#appInfoLinks {display:block;padding:0;}
#appInfoLinks a,#appInfoLinks button {width:100%;text-align:left;justify-content:flex-start!important;}
#appInfoLinks a,#appInfoLinks button {font:inherit;font-size:16px;color:#854d0e;background:#fff8eb;border:1px solid #d4b47b;border-radius:8px;min-height:48px;padding:10px 14px;box-sizing:border-box;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}
#settingsModal #toggleDisplayModeBtn {min-height:48px;font-size:17px;display:inline-flex!important;}
#tourReadMore {font:inherit;min-height:44px;color:#854d0e;text-decoration:underline;background:white;border:0;margin-top:8px;flex-shrink:0;}
#tourReadMore[hidden] {display:none!important;}

/* Compact unified layout, with readable title and full-size header tap targets. */
.app-header-container {display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;}
.app-header-title {flex:1;min-width:0;text-align:left;font-size:clamp(19px,4.8vw,30px);line-height:1.2;overflow-wrap:normal;}
.header-actions {display:flex;gap:6px;flex-shrink:0;}
.header-actions button {min-width:44px;min-height:44px;padding:8px;justify-content:center;font-size:17px;}
.toolbar-row-controls {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.55fr) minmax(0,1fr) minmax(0,1fr);gap:6px;overflow:visible;white-space:normal;}
.toolbar-row-controls .view-toggle-btn {min-width:0;width:100%;box-sizing:border-box;min-height:44px;padding:8px 3px;justify-content:center;font-size:13px;white-space:normal;}
#toggleDetailsBtn[hidden],.settings-card[hidden] {display:none!important;}
body:not(.simple-view-mode) .toolbar-row-filters {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;overflow:visible;}
body:not(.simple-view-mode) .toolbar-row-filters .filter-btn-trigger {width:100%;min-width:0;min-height:44px;box-sizing:border-box;flex:none;}
#moreFiltersPanel summary {cursor:pointer;min-height:44px;box-sizing:border-box;padding:10px 4px;font-size:16px;color:#334155;}
.extra-filters {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.extra-filters .filter-btn-trigger {width:100%;min-width:0;min-height:44px;box-sizing:border-box;}
@media(max-width:600px) {.header-action-label {display:none;} body.large-text-mode .app-header-title {font-size:26px;} }
@media(min-width:601px) {.extra-filters {grid-template-columns:repeat(3,minmax(0,1fr));}}


/* Responsive toolbar labels and readable expanded filter names. */
body:not(.simple-view-mode) .toolbar-row-filters {grid-template-columns:repeat(2,minmax(0,1fr));}
#moreFiltersLabel {justify-content:space-between;white-space:normal;}
#moreFiltersLabel::after {content:"▼";margin-left:6px;font-size:11px;}
#moreFiltersLabel[aria-expanded="true"]::after {content:"▲";}
#moreFiltersPanel {display:none;}
#moreFiltersPanel[open] {display:block;}
#moreFiltersPanel > summary {display:none;}
.filter-field-label {font-size:14px;font-weight:650;color:#334155;margin:0 0 4px;}
.named-filter {min-width:0;}
.extra-filters .filter-trigger-text {white-space:normal;overflow-wrap:anywhere;text-overflow:clip;}
.toolbar-action-icon {font-size:18px;line-height:1.2;}
.toolbar-action-label {line-height:1.25;}
#toggleOfflineFilterBtn .toolbar-action-label {white-space:nowrap;}
@media(max-width:420px) {
 .toolbar-row-controls .view-toggle-btn {flex-direction:column;gap:4px;min-height:62px;font-size:13px;}
 .extra-filters {grid-template-columns:1fr;}
}
@media(min-width:421px) {
 .toolbar-row-controls .view-toggle-btn {flex-direction:row;gap:4px;}
}

#settingsModal #toggleDisplayModeBtn[hidden] {display:none!important;}
.unified-close {width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;max-width:48px!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 48px!important;border:1px solid #94a3b8!important;border-radius:6px!important;background:#f8fafc!important;color:#334155!important;font:28px/1 system-ui,sans-serif!important;cursor:pointer;box-sizing:border-box!important;}

/* TITLE_TAP_V11: compact, accessible independent titles (mobile and desktop).
   The visual width varies naturally; Punjabi/Hindi share the same grapheme cap.
   No change to audio, Cloud Sync, Queue or Favorites behavior. */
.song-card .recording-title-field { color: #1f2937 !important; max-width: 100%; min-width: 0; }
.song-card .song-title.punjabi-card-title { color:#1f2937 !important; font-size:20px; font-weight:700; padding-top:0; }
.song-card .song-sub.hindi-text { color:#1f2937 !important; font-size:18px; font-weight:600; }
.song-card .song-sub.translation-text { color:#1f2937 !important; font-size:18px; font-weight:500; }
.song-card .recording-title-field.hindi-text { white-space:normal !important; overflow:visible !important; text-overflow:clip !important; }
.song-card .recording-title-toggle {
  box-sizing:border-box; width:100%; min-width:0; min-height:44px; padding:5px 2px;
  border:0; border-radius:5px; background:transparent; color:inherit;
  font:inherit; letter-spacing:inherit; line-height:1.4; text-align:left;
  display:flex; align-items:center; gap:8px; cursor:pointer;
  touch-action:pan-y; -webkit-tap-highlight-color:transparent;
}
/* PLAIN_TITLE_FEEDBACK_V1: recording titles always look like plain text.
   Override the application's global orange button-press and :active effects;
   keep a focus ring ONLY for keyboard navigation. */
.song-card .recording-title-field button.recording-title-toggle,
.song-card .recording-title-field button.recording-title-toggle:hover,
.song-card .recording-title-field button.recording-title-toggle:active,
.song-card .recording-title-field button.recording-title-toggle:focus:not(:focus-visible),
.song-card .recording-title-field button.recording-title-toggle.button-press-visible {
  appearance:none; -webkit-appearance:none;
  background:transparent !important; background-color:transparent !important;
  color:#1f2937 !important;
  border:0 !important; border-color:transparent !important;
  box-shadow:none !important; filter:none !important;
  outline:none !important;
  -webkit-tap-highlight-color:transparent !important;
}
.song-card .recording-title-field button.recording-title-toggle:focus-visible {
  background:transparent !important; color:#1f2937 !important;
  border:0 !important; box-shadow:none !important; filter:none !important;
  outline:2px solid #1259c3 !important; outline-offset:2px !important;
}
.song-card .recording-title-toggle:focus-visible { outline:3px solid #0d6efd; outline-offset:2px; }
.song-card .recording-title-copy {
  flex:1 1 auto; display:block; min-width:0; width:0;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; word-break:normal;
}
.song-card .recording-title-toggle[aria-expanded="true"] .recording-title-copy {
  white-space:normal; overflow:visible; overflow-wrap:anywhere; word-break:normal;
}
.song-card .recording-title-chevron { flex:0 0 18px; width:18px; display:flex; align-items:center; justify-content:center; }
.song-card .recording-title-chevron::after {
  content:""; display:block; width:8px; height:8px;
  border-right:2px solid #475569; border-bottom:2px solid #475569;
  transform:translateY(-2px) rotate(45deg); transition:transform .15s ease;
}
.song-card .recording-title-toggle[aria-expanded="true"] .recording-title-chevron::after { transform:translateY(3px) rotate(225deg); }
.song-card .recording-stats-row { margin:5px 0 7px; }
body.large-text-mode .song-card .song-title.punjabi-card-title { font-size:25px; }
body.large-text-mode .song-card .song-sub.hindi-text { font-size:19px; }
body.large-text-mode .song-card .song-sub.translation-text { font-size:20px; }
@media (prefers-reduced-motion:reduce) { .song-card .recording-title-chevron::after { transition:none; } }
