  .fetchProviders{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-bottom:12px;
  }
  .fetchProviders label{
    display:inline-flex;
    align-items:center;
    gap:7px;
    border:1px solid var(--border);
    border-radius:999px;
    padding:8px 13px;
    font-size:13px;
    background:var(--surface);
    cursor:pointer;
    transition:border-color .15s ease, background-color .15s ease, color .15s ease, box-shadow .15s ease;
  }
  .fetchProviders label:hover{
    border-color:var(--accent-line);
    background:var(--surface-muted);
  }
  .fetchProviders input{
    width:auto;
    padding:0;
    margin:0;
    border:none;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    flex:0 0 auto;
    accent-color:var(--accent);
  }
  .fetchProviders input:focus{
    box-shadow:none;
  }
  .fetchProviders label.is-selected{
    border-color:var(--accent-line);
    background:var(--accent-soft);
    color:var(--primary);
    box-shadow:inset 0 0 0 1px rgba(207,155,50,.12);
  }
  .fetchProviders label.is-disabled{
    opacity:.9;
    cursor:not-allowed;
  }
  .fetchProviders label.is-disabled:hover{
    background:inherit;
    border-color:inherit;
  }
  .fetchProviders label.is-selected.is-disabled{
    background:var(--accent-soft);
    border-color:var(--accent-line);
    color:var(--primary);
  }
  .fetchSummary{
    margin:12px 0 10px;
    font-family:Aptos, "Aptos Display", Arial, sans-serif;
    font-size:13px;
    line-height:1.5;
    color:var(--slate-ink);
    display:flex;
    align-items:center;
    gap:8px;
  }
  #fetchSummary.fetchWarn{
    color:var(--warn-text);
  }
  .fetchInvalid{
    margin:0 0 12px;
    padding:0;
    border:none;
    background:transparent;
    color:var(--warn-text);
    font-size:12px;
    line-height:1.45;
  }
  .fetchSummarySpinner{
    width:14px;
    height:14px;
    border:2px solid rgba(58,68,90,.18);
    border-top-color:var(--accent);
    border-radius:999px;
    animation:spin .8s linear infinite;
    flex:0 0 auto;
  }
  .fetchStats{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 10px;
  }
  .fetchStat{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 11px;
    border-radius:999px;
    font-size:12px;
    line-height:1.2;
  }
  .fetchStat .k{
    color:var(--muted);
  }
  .fetchStat .v{
    font-weight:800;
    min-width:10px;
    text-align:right;
  }
  .fetchStat.ok .k, .fetchStat.ok .v{
    color:var(--ok-text);
  }
  .fetchStat.fail .k, .fetchStat.fail .v{
    color:var(--danger-text);
  }
  .fetchStat.cancel .k, .fetchStat.cancel .v{
    color:var(--warn-text);
  }
  .fetchProgress{
    margin:0 0 10px;
  }
  .fetchProgressHead{
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:6px;
  }
  .fetchProgressSpinner{
    width:14px;
    height:14px;
    border:2px solid rgba(58,68,90,.18);
    border-top-color:var(--accent);
    border-radius:999px;
    animation:spin .8s linear infinite;
  }
  .fetchProgressBar{
    height:9px;
    border-radius:999px;
    background:#ddd7ca;
    overflow:hidden;
  }
  .fetchProgressFill{
    height:100%;
    width:0%;
    background:var(--primary);
    transition:width .2s ease;
  }
  .fetchProgressText{
    margin-top:7px;
    font-size:12px;
    color:var(--muted);
  }
  .fetchTableWrap{
    overflow:auto;
    border:1px solid var(--border);
    border-radius:18px;
    background:rgba(253,253,251,.88);
  }
  .fetchTable{
    width:100%;
    border-collapse:collapse;
    font-size:13px;
  }
  .fetchTable th, .fetchTable td{
    padding:12px 12px;
    border-bottom:1px solid #ebe4d7;
    text-align:left;
    vertical-align:top;
    white-space:nowrap;
  }
  .fetchTable th{
    background:#eee8dc;
    color:var(--primary);
    font-weight:700;
  }
  .fetchTable tbody tr:hover{
    background:#fbf7ee;
  }
  .fetchTable td.muted{
    text-align:center;
    color:var(--muted);
    padding:20px 12px;
  }
  .fetchTable td.err{
    color:var(--danger-text);
    max-width:380px;
    white-space:normal;
    word-break:break-word;
  }
  .fetchTable td.file{
    min-width:220px;
    max-width:320px;
    color:var(--slate-ink);
  }
  .fetchFileName{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-weight:600;
  }
  .fetchActionsCell{
    white-space:normal;
    min-width:220px;
  }
  .fetchActions{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
  }
  .fetchActionBtn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:52px;
    padding:6px 10px;
    border:1px solid var(--border);
    border-radius:999px;
    background:var(--surface);
    color:var(--primary);
    font-size:12px;
    font-weight:700;
    line-height:1;
    text-decoration:none;
    cursor:pointer;
    transition:border-color .15s ease, background-color .15s ease, color .15s ease;
  }
  .fetchActionBtn:hover{
    border-color:var(--accent-line);
    background:var(--accent-soft);
  }
  .fetchActionBtn.is-disabled,
  .fetchActionBtn[aria-disabled="true"]{
    opacity:.5;
    pointer-events:none;
  }
  .fetchOk{ color:var(--ok-text); font-weight:700; }
  .fetchFail{ color:var(--danger-text); font-weight:700; }
  .fetchCancel{ color:var(--warn-text); font-weight:700; }

  /* Fetch panel spacing tuning */
  #pageFetch .card{
    padding:22px 20px;
  }
  #pageFetch .card h3{
    margin-bottom:12px;
  }
  #pageFetch .muted{
    line-height:1.5;
  }
  #pageFetch .fetchProviders{
    gap:10px;
    margin:10px 0 14px;
  }
  #pageFetch .fetchProviders label{
    padding:7px 12px;
  }
  #pageFetch #fetchTickers{
    min-height:160px;
    margin-top:2px;
  }
  #pageFetch .row{
    margin-bottom:12px;
  }
  #pageFetch .fetchSummary{
    margin:12px 0 10px;
  }
  @media (max-width: 1180px){
    .fetchTable{
      min-width:760px;
    }
    .fetchTable th,
    .fetchTable td{
      padding:10px 10px;
    }
  }
  @media (max-width: 768px){
    .fetchProviders{
      gap:6px;
    }
    .fetchProviders label{
      font-size:12px;
      padding:7px 10px;
    }
    .fetchSummary{
      flex-wrap:wrap;
      align-items:flex-start;
    }
    .fetchStats{
      gap:6px;
    }
    .fetchStat{
      padding:5px 9px;
    }
    .fetchProgressText{
      line-height:1.45;
    }
    .fetchTableWrap{
      overflow-x:auto;
      -webkit-overflow-scrolling:touch;
    }
    .fetchTable{
      min-width:720px;
      font-size:12px;
    }
    .fetchTable th,
    .fetchTable td{
      padding:8px 9px;
    }
    .fetchTable td.err{
      max-width:280px;
    }
    .fetchTable td.file{
      min-width:180px;
      max-width:220px;
    }
    .fetchActionsCell{
      min-width:190px;
    }
    .fetchActions{
      gap:6px;
    }
    .fetchActionBtn{
      min-width:48px;
      padding:6px 9px;
    }
    #pageFetch .card{
      padding:16px 14px;
    }
    #pageFetch #fetchTickers{
      min-height:140px;
    }
  }
