.dre-batch-collector-toggle{margin-left:auto;min-height:34px;padding:6px 12px;border:1px solid #6b3f16;border-radius:8px;background:#21160d;color:#ffc45c;font-weight:900;letter-spacing:.04em}.dre-batch-collector{position:fixed;top:72px;right:18px;z-index:120;width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 88px);overflow:auto;padding:15px;border:1px solid #4a3320;border-radius:12px;background:linear-gradient(180deg,#14181d,#0b0e12);box-shadow:0 22px 60px #000c;color:#eef2f5}.dre-batch-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.dre-batch-head b{display:block;font-size:15px}.dre-batch-head small{display:block;margin-top:3px;color:#929ba6}.dre-batch-close{width:30px;height:30px;border:1px solid #343a42;border-radius:7px;background:#11151a;color:#dce2e8;font-size:20px}.dre-batch-basic{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dre-batch-collector label{display:grid;gap:5px;color:#b9c1ca;font-size:12px;font-weight:800}.dre-batch-collector input,.dre-batch-collector select{height:38px;padding:7px 10px;border:1px solid #343b44;border-radius:7px;background:#090c10;color:#f2f5f7;font-size:14px}.dre-batch-option{display:flex!important;grid-template-columns:22px 1fr!important;align-items:center;gap:8px!important;margin-top:10px;padding:9px 10px;border:1px solid #303740;border-radius:8px;background:#0b0f13;cursor:pointer}.dre-batch-option input{width:18px;height:18px;padding:0;accent-color:#c56a25}.dre-batch-option span{line-height:1.35}.dre-batch-venue-note{margin:12px 0 7px;color:#8f99a4;font-size:11px;line-height:1.45}.dre-batch-venue-group{margin:8px 0 0;padding:10px;border:1px solid #303740;border-radius:9px;background:#0b0f13}.dre-batch-venue-group legend{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 4px;color:#dce2e8;font-size:12px;font-weight:900}.dre-batch-group-actions{display:flex;gap:5px}.dre-batch-group-actions button{padding:3px 7px;border:1px solid #3a424c;border-radius:6px;background:#12171d;color:#aeb8c2;font-size:10px}.dre-batch-venue-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:8px}.dre-batch-venue-grid label{display:block;cursor:pointer}.dre-batch-venue-grid input{position:absolute;opacity:0;pointer-events:none}.dre-batch-venue-grid span{display:flex;align-items:center;justify-content:center;min-height:34px;padding:5px 7px;border:1px solid #343b44;border-radius:7px;background:#10151a;color:#aeb7c1;font-size:11px;font-weight:800;transition:.15s ease}.dre-batch-venue-grid input:checked+span{border-color:#a65c20;background:linear-gradient(180deg,#3b2411,#23170d);color:#ffd17d;box-shadow:inset 0 0 0 1px #ffb64a22}.dre-batch-venue-group[data-source="NAR"] .dre-batch-venue-grid input:checked+span{border-color:#28604a;background:linear-gradient(180deg,#123426,#0d2119);color:#83e2b1}.dre-batch-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.dre-batch-actions button{min-height:40px;border:1px solid #454c55;border-radius:8px;background:#151a20;color:#eef2f5;font-weight:900}.dre-batch-actions button:disabled{opacity:.45;cursor:not-allowed}.dre-batch-start{border-color:#8a421d!important;background:linear-gradient(180deg,#c43a25,#8e2018)!important}.dre-batch-progress{margin-top:12px;padding:10px;border:1px solid #2c333b;border-radius:8px;background:#090c10;color:#d9e0e7;font-size:12px;line-height:1.45}.dre-batch-results{max-height:240px;overflow:auto;margin-top:8px}.dre-batch-result{padding:7px 9px;border-bottom:1px solid #242a31;font-size:11px}.dre-batch-result.ok{color:#7cdd98}.dre-batch-result.skip{color:#9aa5b1}.dre-batch-result.error{color:#ff8a7e}@media(max-width:768px){.dre-batch-collector-toggle{margin-left:6px;min-height:40px;padding:7px 9px;font-size:11px}.dre-batch-collector{top:max(62px,env(safe-area-inset-top));right:8px;left:8px;width:auto;max-height:calc(100dvh - 78px);padding-bottom:max(15px,env(safe-area-inset-bottom))}.dre-batch-basic{grid-template-columns:1fr}.dre-batch-venue-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dre-batch-actions{position:sticky;bottom:0;padding-top:9px;background:linear-gradient(180deg,transparent,#0b0e12 28%)}.dre-batch-actions button{min-height:44px}}
/* Sprint1-1: Batch Collector Ver2 */
.dre-batch-meter{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin:12px 0 6px}
.dre-batch-meter progress{width:100%;height:12px}
.dre-batch-meter b{min-width:38px;text-align:right;font-size:12px}
.dre-batch-errors,.dre-batch-logs{margin-top:10px;border:1px solid rgba(148,163,184,.3);border-radius:8px;background:rgba(15,23,42,.35)}
.dre-batch-errors summary,.dre-batch-logs summary{cursor:pointer;padding:9px 11px;font-weight:700;font-size:12px}
.dre-batch-errors>div,.dre-batch-logs>div{max-height:180px;overflow:auto;padding:0 11px 10px;font-size:11px;line-height:1.55}
.dre-batch-errors>div>div,.dre-batch-logs>div>div{padding:4px 0;border-top:1px solid rgba(148,163,184,.16)}
.dre-batch-logs .warn{color:#fbbf24}.dre-batch-logs .error{color:#fca5a5}.dre-batch-logs time{opacity:.7;font-variant-numeric:tabular-nums}
.dre-batch-resume{background:#334155!important}
/* Sprint1-2: status visibility and performance metrics */
.dre-batch-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:9px}
.dre-batch-metrics>div{display:grid;gap:4px;padding:9px 10px;border:1px solid #2f3740;border-radius:8px;background:#0b1015}
.dre-batch-metrics span{color:#8f99a4;font-size:10px;font-weight:800}
.dre-batch-metrics b{color:#eef2f5;font-size:13px;font-variant-numeric:tabular-nums}
.dre-batch-workers,.dre-batch-result-section{margin-top:10px;border:1px solid rgba(148,163,184,.3);border-radius:8px;background:rgba(15,23,42,.35);overflow:hidden}
.dre-batch-section-head{display:flex;align-items:center;justify-content:space-between;padding:9px 11px;border-bottom:1px solid rgba(148,163,184,.16);font-size:12px}
.dre-batch-section-head span{color:#8f99a4;font-size:10px;font-weight:800}
.dre-batch-worker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px}
.dre-batch-worker{display:grid;gap:2px;padding:8px 9px;border:1px solid #303943;border-radius:7px;background:#0a0e13}
.dre-batch-worker span{color:#8f99a4;font-size:9px;font-weight:900;text-transform:uppercase}
.dre-batch-worker b{font-size:12px}.dre-batch-worker small{color:#7f8994;font-size:9px}
.dre-batch-worker.active{border-color:#87531f;background:linear-gradient(180deg,#26190d,#101116)}
.dre-batch-worker.active b{color:#ffd17d}.dre-batch-worker.idle b{color:#9aa5b1}
.dre-batch-result-section .dre-batch-results{margin-top:0}
.dre-batch-empty{padding:10px;color:#7f8994;font-size:11px}
@media(max-width:520px){.dre-batch-metrics{grid-template-columns:1fr}.dre-batch-worker-grid{grid-template-columns:1fr}}

/* Sprint1-3: worker control, pause/resume and expanded statistics */
.dre-batch-run-settings{display:grid;grid-template-columns:140px 1fr;gap:10px;align-items:stretch;margin-top:10px}
.dre-batch-run-settings .dre-batch-option{margin-top:0;min-height:38px}
.dre-batch-concurrency:disabled{opacity:.55;cursor:not-allowed}
.dre-batch-meter b{min-width:96px;white-space:nowrap;font-variant-numeric:tabular-nums}
.dre-batch-cancel:not(:disabled){border-color:#8a6a27;background:linear-gradient(180deg,#493813,#2c230f);color:#ffd978}
@media(max-width:520px){.dre-batch-run-settings{grid-template-columns:1fr}.dre-batch-meter{grid-template-columns:1fr}.dre-batch-meter b{text-align:left}}

/* Sprint5-6: batch result import */
.dre-result-batch-toggle{margin-left:8px;border-color:rgba(255,125,102,.5);background:linear-gradient(180deg,rgba(70,31,28,.95),rgba(36,22,23,.95));}
.dre-result-batch-toggle:hover{border-color:rgba(255,145,120,.85);}
.dre-result-batch{z-index:10020;}
.dre-result-batch .dre-batch-head{border-bottom-color:rgba(255,125,102,.25);}
.dre-result-batch .dre-batch-start{background:linear-gradient(135deg,#c84e43,#8f302b);}

/* Sprint5-6.2: distinguish race-list and result batch actions */
.dre-batch-collector-toggle{
  border-color:#a66012;
  background:linear-gradient(180deg,#4a2b08,#271806);
  color:#ffd06f;
  box-shadow:inset 0 0 0 1px rgba(255,186,72,.08);
}
.dre-batch-collector-toggle:hover{
  border-color:#db8a20;
  background:linear-gradient(180deg,#5b3509,#321e07);
}
.dre-result-batch-toggle{
  border-color:#b7463f;
  background:linear-gradient(180deg,#5a201e,#321414);
  color:#ffb0a6;
  box-shadow:inset 0 0 0 1px rgba(255,112,96,.10);
}
.dre-result-batch-toggle:hover{
  border-color:#ef6e60;
  background:linear-gradient(180deg,#6d2824,#3d1716);
  color:#ffd2cc;
}
