    /* Status */
    #status-line {
      font-size: 13px;
      padding: 10px 12px;
      border-radius: 8px;
      margin-top: 8px;
      line-height: 1.4;
    }
    #status-line:empty { display: none; }
    .s-idle    { background: #f8fafc; color: #64748b; border: 1px solid #e2e8f0; }
    .s-loading { background: #fafafa; color: #666; border: 1px solid #e8e8ec; }
    .s-ok      { background: #edfbf2; color: #1a6638; border: 1px solid #b8e8cc; }
    .s-err     { background: #fff2f2; color: #922; border: 1px solid #f0c0c0; }

    /* Upload UI */
    .upload-row { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
    #v2-choose-btn {
      padding: 13px 14px;
      border-radius: 5px;
      font-size: 14px;
      cursor: pointer;
      white-space: nowrap;
    }
    #v2-file-name { margin-bottom: 8px; }
    .upload-queue-summary {
      margin-bottom: 10px;
      padding: 10px 12px;
      border-radius: 10px;
      background: linear-gradient(180deg, #fafbff 0%, #f3f5fb 100%);
      border: 1px solid #e1e6f2;
    }
    .upload-queue-summary.is-uploading {
      background: linear-gradient(180deg, #eef6ff 0%, #e4f0ff 100%);
      border-color: #bfdbfe;
    }
    .upload-queue-summary.is-paused {
      background: linear-gradient(180deg, #fff8eb 0%, #ffefcc 100%);
      border-color: #f4c97d;
    }
    .upload-queue-summary.is-failed {
      background: linear-gradient(180deg, #fff5f5 0%, #ffe7e7 100%);
      border-color: #f5c2c7;
    }
    .upload-queue-headline {
      font-size: 14px;
      font-weight: 700;
      color: #1f2937;
      margin-bottom: 3px;
    }
    .upload-queue-detail {
      font-size: 12px;
      color: #667085;
      line-height: 1.45;
    }
    .upload-queue-list {
      display: flex;
      flex-direction: column;
      gap: 8px;
      margin-bottom: 10px;
    }
    .upload-queue-card {
      border: 1px solid #e6e8ef;
      border-radius: 10px;
      padding: 10px 12px;
      background: #fff;
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .upload-queue-card.state-uploading { border-left: 4px solid #4a90d9; }
    .upload-queue-card.state-processing { border-left: 4px solid #d97706; }
    .upload-queue-card.state-paused { border-left: 4px solid #d97706; background: #fffaf0; }
    .upload-queue-card.state-interrupted { border-left: 4px solid #c2410c; background: #fff8f1; }
    .upload-queue-card.state-failed { border-left: 4px solid #d14343; background: #fff6f6; }
    .upload-queue-card.state-repick { border-left: 4px solid #b45309; background: #fffbeb; }
    .upload-queue-card-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 8px;
    }
    .upload-queue-card-title {
      font-size: 14px;
      font-weight: 700;
      color: #1f2937;
      word-break: break-word;
    }
    .upload-queue-card-meta {
      display: flex;
      align-items: center;
      gap: 6px;
      flex-wrap: wrap;
    }
    .upload-queue-card-detail {
      font-size: 12px;
      color: #6b7280;
      line-height: 1.45;
    }
    .upload-queue-card-actions {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
    }
    .upload-queue-card-actions .mc-btn { margin: 0; }
    #v2-upload-btn {
      width: 100%;
      padding: 9px 16px;
      border: 1px solid #bbb;
      border-radius: 5px;
      background: #f0f0f5;
      font-size: 14px;
      cursor: pointer;
      margin-bottom: 10px;
    }
    #v2-upload-btn:not(:disabled) { background: #111; color: #fff; border-color: #111; font-weight: 600; }
    #v2-upload-btn:not(:disabled):hover { background: #333; border-color: #333; }
    #v2-upload-btn:disabled { color: #bbb; cursor: default; border-color: #e0e0e6; }
    #v2-progress-wrap {
      display: flex;
      align-items: center;
      gap: 8px;
    }
    #v2-progress-track {
      flex: 1;
      height: 6px;
      background: #e8e8ec;
      border-radius: 3px;
      overflow: hidden;
    }
    #v2-progress-bar {
      height: 100%;
      width: 0%;
      background: #4a90d9;
      border-radius: 3px;
      transition: width 0.1s linear;
    }
    #v2-progress-pct {
      font-size: 12px;
      color: #888;
      white-space: nowrap;
      min-width: 32px;
      text-align: right;
    }
    .upload-note {
      font-size: 11px;
      color: #bbb;
      margin-top: 6px;
    }
    .badge-uploading { background: #dbeafe; color: #1e40af; }
    .badge-paused { background: #fef3c7; color: #92400e; }
    .badge-interrupted { background: #ffedd5; color: #9a3412; }
    .media-card-uploading { border-left: 3px solid #4a90d9; padding-left: 8px; }
    .upload-item-progress { display: flex; align-items: center; gap: 8px; margin-top: 6px; }
    .upload-item-track { flex: 1; height: 6px; background: #e8e8ec; border-radius: 3px; overflow: hidden; }
    .upload-item-fill { height: 100%; background: #4a90d9; border-radius: 3px; transition: width 0.1s linear; }
    .upload-item-pct { font-size: 12px; color: #888; white-space: nowrap; min-width: 32px; text-align: right; }
    #media-status {
      font-size: 12px;
      margin-bottom: 8px;
      display: none;
    }
    #media-status.ms-ok      { display: block; color: #1a6638; }
    #media-status.ms-err     { display: block; color: #c00;    }
    #media-status.ms-loading { display: block; color: #888;    }
    #recent-jobs-body.rj-collapsed { display: none; }
    .rj-header { cursor: pointer; border-radius: 8px; min-height: 46px; padding: 0 10px; margin: -2px -6px 10px; }
    .rj-header:hover { background: #f8fafc; }
    .rj-header:hover .card-title { color: #475569; }
    .rj-header:focus-visible { outline: 2px solid #4a90d9; outline-offset: 2px; }
    #recent-jobs-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 10px;
      width: calc(100% + 20px);
      box-sizing: border-box;
    }
    #recent-jobs-header .card-title { margin: 0; font-size: 12px; color: #475569; }
    #recent-jobs-toggle { min-width: 36px; min-height: 36px; font-size: 11px; color: #94a3b8; padding: 2px 4px; }
    /* W12 — shell shaping */
    .chip {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      font-size: 11px;
      padding: 2px 8px;
      border-radius: 10px;
      background: #f0f0f5;
      color: #666;
      line-height: 1.35;
      white-space: nowrap;
    }
    .chip svg { width: 12px; height: 12px; display: block; flex-shrink: 0; }
    .chip-icon,
    .chip-visible { display: inline-flex; align-items: center; gap: 3px; }
    /* F15b — shared-presence tint on count chip */
    .chip-shared { background: #dcfce7; color: #15803d; }
    .action-btn {
      display: block;
      width: 100%;
      padding: 10px 14px;
      border-radius: 5px;
      font-size: 14px;
      cursor: pointer;
      text-align: center;
      border: 1px solid #ddd;
      margin-bottom: 6px;
      white-space: normal;
    }
    .action-btn-primary { background: #fff; color: #111; font-weight: 600; }
    .action-btn-primary:hover { background: #f7f7f9; }
    .action-btn-cta { background: #960000; color: #fff; font-weight: 700; border-color: rgba(0,0,0,.18); }
    .action-btn-cta:hover { background: #7a0000; border-color: rgba(0,0,0,.28); }
    .action-btn-secondary { background: #f7f7f9; color: #333; font-weight: 600; }
    .action-btn-secondary:hover { background: #ebebf0; }
    .action-btn-danger { background: #fff5f5; color: #b91c1c; font-weight: 500; border-color: #f5c6cb; }
    .action-btn-danger:hover { background: #fee2e2; border-color: #f5b7bb; }
    .action-btn-portal-primary { background: #111; color: #fff; font-weight: 700; border-color: #111; }
    .action-btn-portal-primary:hover { background: #333; border-color: #333; }
    .send-primary-btn {
      display: block;
      width: 100%;
      padding: 13px 16px;
      border: 1px solid #bbb;
      border-radius: 5px;
      background: #f0f0f5;
      color: #222;
      font-size: 14px;
      font-weight: 600;
      cursor: pointer;
      margin-bottom: 6px;
      -webkit-appearance: none;
      appearance: none;
    }
    .send-primary-btn:hover { background: #e4e4ec; }
    .send-primary-btn:disabled { color: #bbb; cursor: default; border-color: #e0e0e6; background: #f7f7f9; }
    /* W33e-b — send readiness signal */
    .send-primary-btn.send-ready { background: #960000; color: #fff; border-color: rgba(0,0,0,.18); }
    .send-primary-btn.send-ready:hover { background: #7a0000; border-color: rgba(0,0,0,.28); }
    /* delivery-state emphasis variants — post-release only */
    .send-primary-btn.send-soft { background: #f8f8fb; color: #888; border-color: #d4d4de; }
    .send-primary-btn.send-soft:hover { background: #f0f0f5; color: #666; }
    .send-primary-btn.send-tools { background: #2d2d3a; color: #f0f0f5; border-color: rgba(0,0,0,.18); }
    .send-primary-btn.send-tools:hover { background: #3d3d4e; border-color: rgba(0,0,0,.28); }
    .sc-btn-icon { vertical-align: -2px; flex-shrink: 0; }
    /* Customer Portal action stack — flex so icon+text gap is always consistent */
    #send-card #jd-unlock-submit,
    #send-card .send-secondary-btn,
    #send-card #v2-release-btn {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      padding: 12px 16px;
      font-size: 14px;
      min-height: 46px;
      box-sizing: border-box;
    }
    .send-primary-btn.send-nudge { background: #fffbeb; color: #92400e; border-color: #fcd34d; }
    .send-primary-btn.send-nudge:hover { background: #fef3c7; border-color: #f59e0b; }
    .send-secondary-btn {
      display: block;
      width: 100%;
      padding: 11px 14px;
      border: 1px solid #9aa8cc;
      border-radius: 5px;
      background: #eef2ff;
      font-size: 13px;
      font-weight: 600;
      color: #1a2a4a;
      cursor: pointer;
    }
    .send-secondary-btn:hover { background: #e4eaff; }
    .send-secondary-btn:disabled { color: #bbb; cursor: default; border-color: #e0e0e6; background: #f7f7f9; }
    .sc-secondary-group {
      display: flex;
      flex-direction: column;
      gap: 6px;
      margin-bottom: 10px;
    }
    /* Phase 3 — re-pick required state for restored staged rows */
    .state-repick { border-left: 3px solid #d97706; }
    .badge-repick { background: #fef3c7; color: #92400e; font-size: 11px; padding: 1px 6px; border-radius: 8px; }
