/* Shared KinobiDisk transfer windows.
   All browsers use the same controls and presentation. Upload and download
   tasks remain independent; CSS only controls placement, never scheduling.
   This stylesheet is intentionally self-contained and avoids global button rules.
*/
.kinobi-transfer-window{
 position:fixed;bottom:16px;z-index:65;
 width:min(410px,calc(50vw - 24px));max-height:min(68dvh,680px);
 min-width:0;box-sizing:border-box;overflow:auto;
 display:grid;align-content:start;gap:9px;
 padding:13px 14px;border-radius:12px;
 border:1px solid #566880;background:#1b2432;
 box-shadow:0 12px 42px rgba(0,0,0,.7);
 color:#edf0f7;
 font:13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
#uploadQueue.kinobi-transfer-window{width:min(410px,calc(50vw - 24px));max-height:min(68dvh,680px);
 padding:13px 14px;bottom:16px;display:grid;align-content:start;gap:9px;
 border-color:#566880;background:#1b2432;box-shadow:0 12px 42px rgba(0,0,0,.7)}
.kinobi-transfer-window[hidden],#uploadQueue.kinobi-transfer-window[hidden]{display:none!important}
.kinobi-transfer-window[data-transfer-side="upload"],#uploadQueue.kinobi-transfer-window[data-transfer-side="upload"]{
 right:16px;left:auto;
}
.kinobi-transfer-window[data-transfer-side="download"]{left:16px;right:auto}
.kinobi-transfer-window .kinobi-transfer-head,
#uploadQueue.kinobi-transfer-window .kinobi-transfer-head{
 display:flex;justify-content:space-between;align-items:center;
 flex-wrap:wrap;gap:7px;margin:0;
}
.kinobi-transfer-window .kinobi-transfer-head strong{
 font-size:14px;line-height:1.3;color:#edf3ff;font-weight:650;
}
.kinobi-transfer-window .kinobi-transfer-controls{
 display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px;
}
.kinobi-transfer-window button{
 display:inline-flex;align-items:center;justify-content:center;
 font:500 12px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 border:1px solid #4c5b70;border-radius:7px;background:#29394e;
 padding:6px 9px;min-height:29px;color:#eef3ff;cursor:pointer;
}
.kinobi-transfer-window button:hover:not(:disabled){background:#364e69}
.kinobi-transfer-window button:disabled{opacity:.5;cursor:not-allowed}
.kinobi-transfer-window button:focus-visible{outline:2px solid #91b6f0;outline-offset:2px}
.kinobi-transfer-window progress{
 display:block;width:100%;height:8px;accent-color:#8db5ff;
}
.kinobi-transfer-window .kinobi-transfer-summary,
.kinobi-transfer-window .kinobi-download-info,
.kinobi-transfer-window .file-info,
.kinobi-transfer-window .upload-status,
.kinobi-transfer-window .queue-total,
.kinobi-transfer-window .meta{
 margin:0;color:#c0cde0;font-size:12px;line-height:1.45;overflow-wrap:anywhere;
}
.kinobi-transfer-window .kinobi-transfer-list,
#uploadQueue.kinobi-transfer-window .kinobi-transfer-list{
 display:grid;gap:7px;list-style:none;margin:0;padding:0;
 max-height:min(42dvh,410px);overflow:auto;min-width:0;
}
.kinobi-transfer-window .kinobi-transfer-list > li,
#uploadQueue.kinobi-transfer-window .kinobi-transfer-list > li{
 border:0;border-radius:8px;padding:10px;
 background:#131f2e;min-width:0;
 display:grid;gap:5px;color:#eaf0f8;font-size:12px;
}
/* Download task: symmetric 30px pause/play and close controls on the right. */
.kinobi-transfer-window .kinobi-download-task-head{
 display:flex;align-items:center;justify-content:space-between;
 gap:10px;min-width:0;
}
.kinobi-transfer-window .kinobi-download-task-head .kinobi-download-name{
 flex:1 1 auto;min-width:0;
}
.kinobi-transfer-window .kinobi-download-actions{
 display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto;gap:6px;
}
.kinobi-transfer-window button.kinobi-download-icon-button{
 width:30px;height:30px;min-width:30px;min-height:30px;
 padding:0;display:inline-flex;align-items:center;justify-content:center;
 border-radius:7px;box-sizing:border-box;flex:0 0 30px;
}
.kinobi-transfer-window .kinobi-download-icon-button svg{
 display:block;width:16px;height:16px;flex:0 0 16px;
 fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
 pointer-events:none;
}
.kinobi-transfer-window .kinobi-download-icon-pause svg rect,
.kinobi-transfer-window .kinobi-download-icon-play svg path{
 fill:currentColor;stroke:none;
}
.kinobi-transfer-window .kinobi-download-retry{
 justify-self:start;text-align:center;
}
.kinobi-transfer-window .kinobi-download-retry[hidden],
.kinobi-transfer-window .kinobi-download-note[hidden],
.kinobi-transfer-window .kinobi-download-info[hidden]{
 display:none!important;
}
/* Choice applies to all filename conflicts in a direct-download task. */
.kinobi-download-conflict-overlay{
 position:fixed;inset:0;z-index:150;
 display:flex;align-items:center;justify-content:center;
 padding:20px;background:rgba(0,0,0,.66);
}
.kinobi-download-conflict-dialog{
 width:min(460px,100%);display:grid;gap:14px;padding:20px;
 border:1px solid #5c7290;border-radius:12px;
 background:#1b2737;color:#edf3ff;
 box-shadow:0 18px 60px rgba(0,0,0,.7);
 font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.kinobi-download-conflict-dialog strong{font-size:16px}
.kinobi-download-conflict-dialog p{margin:0;overflow-wrap:anywhere;color:#bdc9dc}
.kinobi-download-conflict-actions{
 display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;
}
.kinobi-download-conflict-actions button{
 font:500 13px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 border:1px solid #526984;border-radius:7px;color:#edf3ff;
 background:#2e4055;padding:9px 14px;min-height:34px;cursor:pointer;
}
.kinobi-download-conflict-actions button:hover{background:#3d5675}
.kinobi-download-conflict-actions button:focus-visible{outline:2px solid #91b6f0;outline-offset:2px}
.kinobi-transfer-window .kinobi-transfer-list strong,
.kinobi-transfer-window .file-name,
.kinobi-transfer-window .upload-filename,
.kinobi-transfer-window .kinobi-download-name{overflow-wrap:anywhere;font-size:13px}
.kinobi-transfer-window .queue-help,
.kinobi-transfer-window .kinobi-download-note{
 margin:0;color:#a9b9cd;font-size:11px;line-height:1.5;overflow-wrap:anywhere;
}
/* Lab's legacy #results styles carry ID specificity; keep the same rows. */
#downloadLabWindow #results > li{
 border:0;border-radius:8px;padding:10px;background:#131f2e;
 min-width:0;display:grid;gap:5px;font-size:12px;
}
#downloadLabWindow #results[hidden]{display:none!important}
.kinobi-transfer-window .error{color:#ffbac2}
.kinobi-transfer-window .kinobi-transfer-list[hidden],
.kinobi-transfer-window .kinobi-transfer-summary[hidden],
.kinobi-transfer-window .queue-help[hidden],
.kinobi-transfer-window .kinobi-download-summary[hidden]{
 display:none!important;
}
@media(max-width:680px){
 .kinobi-transfer-window,#uploadQueue.kinobi-transfer-window{
  left:12px;right:12px;bottom:12px;width:auto;max-width:none;
  max-height:61dvh;padding:11px 12px;
 }
 .kinobi-transfer-window[data-transfer-side="upload"],
 #uploadQueue.kinobi-transfer-window[data-transfer-side="upload"]{
  left:12px;right:12px;
 }
 .kinobi-transfer-window[data-transfer-side="download"]{left:12px;right:12px}
 /* Only when BOTH windows are visible: two independently scrollable halves. */
 body:has(.kinobi-transfer-window[data-transfer-side="download"]:not([hidden]))
 .kinobi-transfer-window[data-transfer-side="upload"]:not([hidden]),
 body:has(.kinobi-transfer-window[data-transfer-side="download"]:not([hidden]))
 #uploadQueue.kinobi-transfer-window[data-transfer-side="upload"]:not([hidden]){
  bottom:calc(43dvh + 17px);max-height:40dvh;
 }
 body:has(.kinobi-transfer-window[data-transfer-side="upload"]:not([hidden]))
 .kinobi-transfer-window[data-transfer-side="download"]:not([hidden]){
  max-height:40dvh;
 }
 .kinobi-transfer-window .kinobi-transfer-list,
 #uploadQueue.kinobi-transfer-window .kinobi-transfer-list{
  max-height:25dvh;
 }
}
@media(max-height:550px){
 .kinobi-transfer-window,#uploadQueue.kinobi-transfer-window{max-height:55dvh}
}
