/* R141 jalur web141transfer: dialog unggah, panel kemajuan, Pusat transfer, offline, sesi habis.
   Dimuat sesudah web140.css. Semua kelas baru berakhiran 141; warna dari token tokens132.css (Putih dan Hitam). */
body:not(.console-page) .sr141{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0;white-space:nowrap}

/* ---------- Dialog unggah ---------- */
body:not(.console-page) #dialog .goal132p.old141{display:none}
body:not(.console-page) #dialog .goal141{width:100%;min-height:52px;box-sizing:border-box;margin:0 0 12px;padding:8px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);display:flex;align-items:center;gap:12px;text-align:left;font:inherit;cursor:pointer}
body:not(.console-page) #dialog .goal141:hover{border-color:var(--line-2)}
body:not(.console-page) #dialog .goal141:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
body:not(.console-page) #dialog .goal141 svg{flex:0 0 auto;width:26px;height:26px;color:var(--brand)}
body:not(.console-page) #dialog .goal141>span:nth-of-type(1){flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
body:not(.console-page) #dialog .goal141>span:nth-of-type(1)>span{font-size:13px;color:var(--muted)}
body:not(.console-page) #dialog .goal141 strong{font-size:14px;font-weight:700;overflow-wrap:anywhere}
body:not(.console-page) #dialog .goal141 .change141{flex:0 0 auto;font-size:13px;font-weight:700;color:var(--link)}
body:not(.console-page) #dialog .drop141{margin:0 0 12px;padding:16px 18px;border:2px dashed var(--line-2);border-radius:20px;background:var(--surface-2);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 14px;text-align:center;font-size:14px;font-weight:600;color:var(--ink)}
body:not(.console-page) #dialog .drop141.over141{border-color:var(--accent);background:var(--soft)}
body:not(.console-page) #dialog .drop141 .up141 svg{width:28px;height:28px;color:var(--accent);display:block}
body:not(.console-page) #dialog .drop141 .btn{height:38px;min-height:38px;padding:0 16px;border-radius:999px;font-size:13px}
body:not(.console-page) #dialog .check141{margin:0 0 8px;font-size:13px}
body:not(.console-page) #dialog .upload-check132{position:relative}
body:not(.console-page) #dialog .upload-check132:has(>.x141)>.badge{margin-left:auto}
body:not(.console-page) #dialog .upload-check132:has(>.x141){gap:8px 14px}
body:not(.console-page) #dialog .upload-check132:has(>.x141)>.upload-file132{min-width:0;flex:1 1 auto}
body:not(.console-page) #dialog .upload-check132 .x141{flex:0 0 auto;width:30px;height:30px;margin-left:4px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
body:not(.console-page) #dialog .upload-check132 .x141:hover{background:var(--surface-2);color:var(--ink)}
body:not(.console-page) #dialog .upload-check132 .x141:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
body:not(.console-page) #dialog .upload-check132 .x141 svg{width:16px;height:16px}
body:not(.console-page) #dialog .upload-check132.clash141{flex-wrap:wrap;background:var(--warn);color:var(--warn-ink)}
body:not(.console-page) #dialog .upload-check132.clash141 strong,
body:not(.console-page) #dialog .upload-check132.clash141 small{color:var(--warn-ink)}
body:not(.console-page) #dialog .upload-check132 .why141{display:block;font-size:13px;color:var(--warn-ink)}
body:not(.console-page) #dialog .choice141{flex:1 0 100%;margin:6px 0 2px 44px;padding:0;border:0;display:flex;flex-wrap:wrap;gap:6px;min-width:0}
body:not(.console-page) #dialog .choice141 legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
body:not(.console-page) #dialog .choice141 label{height:34px;box-sizing:border-box;padding:0 12px;border:1px solid var(--line-2);border-radius:17px;background:var(--surface);color:var(--ink);font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
body:not(.console-page) #dialog .choice141 label.on141{border:2px solid var(--accent);font-weight:700}
body:not(.console-page) #dialog .choice141 label:has(input:disabled){opacity:.55;cursor:not-allowed}
body:not(.console-page) #dialog .choice141 input{margin:0;accent-color:var(--accent)}
body:not(.console-page) #dialog form.picking141>:not(.picker141){display:none}
body:not(.console-page) #dialog .picker141 h3{margin:0 0 8px;font-size:16px;font-weight:700}
body:not(.console-page) #dialog .picker141 .trail141{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 0 10px;font-size:13px;color:var(--muted)}
body:not(.console-page) #dialog .picker141 .trail141 b{color:var(--ink)}
body:not(.console-page) #dialog .picker141 .find141{display:block;margin:0 0 10px}
body:not(.console-page) #dialog .picker141 .list141{margin:0 0 10px;padding:0;list-style:none;max-height:min(360px,48vh);overflow:auto;border:1px solid var(--line);border-radius:14px}
body:not(.console-page) #dialog .picker141 .list141 li+li{border-top:1px solid var(--line)}
body:not(.console-page) #dialog .picker141 .list141 button{width:100%;min-height:48px;padding:6px 14px;border:0;background:transparent;color:var(--ink);display:flex;align-items:center;gap:12px;text-align:left;font:inherit;font-size:14px;cursor:pointer}
body:not(.console-page) #dialog .picker141 .list141 button:hover{background:var(--surface-2)}
body:not(.console-page) #dialog .picker141 .list141 button svg{flex:0 0 auto;width:24px;height:24px;color:var(--brand)}
body:not(.console-page) #dialog .picker141 .list141 button>span{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;overflow-wrap:anywhere}
body:not(.console-page) #dialog .picker141 .list141 small{font-size:12px;color:var(--muted)}
body:not(.console-page) #dialog .picker141 .list141 em{font-style:normal;font-size:12px;color:var(--muted)}
body:not(.console-page) #dialog .picker141 .none141{padding:14px;font-size:13px;color:var(--muted)}
body:not(.console-page) #dialog .picker141 .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}

/* ---------- Panel kemajuan mengambang ---------- */
body:not(.console-page) #panel141{position:fixed;right:24px;bottom:24px;z-index:60;width:400px;max-width:calc(100vw - 48px);border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--surface);color:var(--ink);box-shadow:0 24px 60px rgba(0,0,0,.22)}
body:not(.console-page) #panel141[hidden]{display:none}
body:not(.console-page) #panel141 .head141{padding:12px 8px 12px 18px;background:var(--deep);color:var(--deep-ink);display:flex;align-items:center;gap:8px}
body:not(.console-page) #panel141 .ttl141{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
body:not(.console-page) #panel141 h2{margin:0;font-size:15px;font-weight:700;color:var(--deep-ink)}
body:not(.console-page) #panel141 .sub141{font-size:13px;color:var(--deep-muted)}
body:not(.console-page) #panel141 .icon141{flex:0 0 auto;width:38px;height:38px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--deep-ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
body:not(.console-page) #panel141 .icon141:hover{background:rgba(255,255,255,.12)}
body:not(.console-page) #panel141 .icon141:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
body:not(.console-page) #panel141 .icon141 svg{width:18px;height:18px}
body:not(.console-page) #panel141.small141 [data-action="panel-small141"] svg{transform:rotate(180deg)}
body:not(.console-page) #panel141 .rows141{margin:0;padding:0;list-style:none;max-height:min(320px,46vh);overflow:auto}
body:not(.console-page) #panel141 .row141{min-height:56px;box-sizing:border-box;padding:8px 14px 8px 16px;display:flex;align-items:center;gap:12px}
body:not(.console-page) #panel141 .row141+.row141{border-top:1px solid var(--line)}
body:not(.console-page) #panel141 .tile141{flex:0 0 28px;width:28px;height:28px;min-width:28px;border-radius:7px;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}
body:not(.console-page) #panel141 .tf141 svg{width:28px;height:28px;color:var(--brand);display:block}
body:not(.console-page) #panel141 .mid141{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}
body:not(.console-page) #panel141 .top141{display:flex;justify-content:space-between;gap:8px;min-width:0}
body:not(.console-page) #panel141 .top141 b{min-width:0;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body:not(.console-page) #panel141 .top141>span{flex:0 0 auto;font-size:13px;color:var(--muted)}
body:not(.console-page) #panel141 progress,
body:not(.console-page) .fprog141 progress,
body:not(.console-page) .wait141card progress{width:100%;height:5px;border:0;border-radius:3px;overflow:hidden;background:var(--surface-2);accent-color:var(--accent);-webkit-appearance:none;appearance:none}
body:not(.console-page) #panel141 progress::-webkit-progress-bar,
body:not(.console-page) .fprog141 progress::-webkit-progress-bar,
body:not(.console-page) .wait141card progress::-webkit-progress-bar{background:var(--surface-2);border-radius:3px}
body:not(.console-page) #panel141 progress::-webkit-progress-value,
body:not(.console-page) .fprog141 progress::-webkit-progress-value{background:var(--accent);border-radius:3px}
body:not(.console-page) #panel141 progress::-moz-progress-bar,
body:not(.console-page) .fprog141 progress::-moz-progress-bar{background:var(--accent)}
body:not(.console-page) #panel141 progress.idle141::-webkit-progress-value,
body:not(.console-page) .wait141card progress::-webkit-progress-value{background:var(--line-2)}
body:not(.console-page) #panel141 progress.idle141::-moz-progress-bar,
body:not(.console-page) .wait141card progress::-moz-progress-bar{background:var(--line-2)}
body:not(.console-page) #panel141 .st141{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
body:not(.console-page) #panel141 .st141.ok141{color:var(--ok-ink)}
body:not(.console-page) #panel141 .st141.warn141{color:var(--warn-ink)}
body:not(.console-page) #panel141 .st141.bad141{color:var(--danger-ink)}
body:not(.console-page) #panel141 .link141,
body:not(.console-page) .toast141 .link141{padding:0;border:0;background:none;color:var(--link);font:inherit;font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer}
body:not(.console-page) #panel141 .link141:hover{text-decoration:underline}
body:not(.console-page) #panel141 .foot141{padding:10px 16px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px}
body:not(.console-page) #panel141 .foot141 .link141[hidden]{display:none}
body:not(.console-page) #panel141 .foot141 .link141:last-child{margin-left:auto}
body:not(.console-page) #panel141.small141 .rows141,
body:not(.console-page) #panel141.small141 .foot141{display:none}
body:not(.console-page)[data-page=transfers] #panel141{display:none}
body.panel141-on:not(.console-page):not([data-page=transfers]) #toast{bottom:calc(var(--panel141-h,64px) + 36px)}
@media(max-width:720px){
 body:not(.console-page) #panel141{left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom,0px));width:auto;max-width:none;border-radius:16px}
 body:not(.console-page) #panel141 .rows141{max-height:38vh}
 body.panel141-on:not(.console-page):not([data-page=transfers]) #toast{bottom:calc(var(--panel141-h,64px) + 88px)}
}

/* ---------- Pesan dengan tombol ---------- */
body:not(.console-page) .toast141{position:fixed;left:256px;bottom:24px;z-index:70;max-width:min(560px,calc(100vw - 48px));min-height:52px;box-sizing:border-box;padding:6px 6px 6px 16px;border-radius:14px;background:var(--deep);color:var(--deep-ink);display:none;align-items:center;gap:12px;font-size:14px;box-shadow:0 14px 30px rgba(0,0,0,.25)}
body:not(.console-page) .toast141.visible{display:flex}
body:not(.console-page) .toast141 .ok141 svg{width:18px;height:18px;color:var(--brand);display:block}
body:not(.console-page) .toast141 .txt141{min-width:0;overflow-wrap:anywhere}
body:not(.console-page) .toast141 b{font-weight:700}
body:not(.console-page) .toast141 button:not(.x141){height:36px;padding:0 16px;border:0;border-radius:999px;background:rgba(255,255,255,.12);color:var(--deep-ink);font:inherit;font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer}
body:not(.console-page) .toast141 button:not(.x141):hover{background:rgba(255,255,255,.2)}
body:not(.console-page) .toast141 .x141{width:32px;height:32px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--deep-muted);display:flex;align-items:center;justify-content:center;cursor:pointer}
body:not(.console-page) .toast141 .x141 svg{width:14px;height:14px}
body:not(.console-page) .toast141 button:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
@media(max-width:900px){body:not(.console-page) .toast141{left:12px;right:12px;max-width:none;bottom:calc(76px + env(safe-area-inset-bottom,0px))}}

/* ---------- Pusat transfer ---------- */
body:not(.console-page) .transfer-center163.kind141-upload .downloads-w140{display:none}
body:not(.console-page) .transfer-center163.kind141-download .transfer-filters163~.panel:not(.list-w140),
body:not(.console-page) .transfer-center163.kind141-download .transfer-paging163,
body:not(.console-page) .transfer-center163.kind141-download .sep-w140,
body:not(.console-page) .transfer-center163.kind141-download .hidden141{display:none}
body:not(.console-page) .transfer-center163 .hidden141{margin:0 0 10px;font-size:13px;color:var(--muted)}
body:not(.console-page) .transfer-center163 .hidden141 .link{font-size:13px;font-weight:700}
body:not(.console-page) .progress-row.folder141 .tf141{background:transparent}
body:not(.console-page) .progress-row.folder141 .tf141 svg{width:30px;height:30px;color:var(--brand)}
body:not(.console-page) .progress-row.member141{background:color-mix(in srgb,var(--surface-2) 45%,transparent)}
body:not(.console-page) .progress-row.member141.folded141{display:none}
body:not(.console-page) .progress-row .ver141,
body:not(.console-page) .file-label .ver141{display:block;font-size:13px;font-weight:400;color:var(--muted)}
body:not(.console-page) .progress-row .transfer-name163 strong:has(+.ver141){overflow:visible}
body:not(.console-page) .progress-row .transfer-name163:has(.ver141){flex-wrap:wrap}
body:not(.console-page) .progress-row .auto141{color:var(--warn-ink)}

/* ---------- Daftar file: kemajuan folder ---------- */
body:not(.console-page) .fprog141{display:flex;flex-direction:column;gap:4px;min-width:110px;margin-top:4px;font-size:13px;color:var(--accent);font-weight:700}

/* ---------- Offline ---------- */
body:not(.console-page) #connection127.on141>:not(.net141){display:none}
body:not(.console-page) #connection127 .net141{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 10px;max-width:100%;text-align:center}
body:not(.console-page) #connection127 .net141>*{min-width:0;white-space:normal}
body:not(.console-page) #connection127 .net141 .wifi141 svg{width:20px;height:20px;color:var(--brand);display:block}
body:not(.console-page) #connection127 .net141 .lead141{margin:0}
body:not(.console-page) #connection127 .net141 .btn{height:32px;min-height:32px;padding:0 14px;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:transparent;color:inherit;font-size:13px;font-weight:700}
body:not(.console-page) #connection127 .net141 .btn:disabled{opacity:.6}
body:not(.console-page) .wait141card{margin:16px 0 0;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
body:not(.console-page) .wait141card .hd141{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px}
body:not(.console-page) .wait141card .hd141 b{font-size:15px;color:var(--ink)}
body:not(.console-page) .wait141card .chip141{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:12px;background:var(--warn);color:var(--warn-ink);font-size:12px;font-weight:700;white-space:nowrap}
body:not(.console-page) .wait141card ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
body:not(.console-page) .wait141card li>span{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted);margin-bottom:4px}
body:not(.console-page) .wait141card li b{min-width:0;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body:not(.console-page) .wait141card p{margin:10px 0 0}

/* ---------- Sesi berakhir ---------- */
body:not(.console-page) #dialog.session-dialog132 #session-note141{margin:0 0 16px;color:var(--muted);font-size:15px;line-height:1.5}
body:not(.console-page) #dialog .paused141{margin:0 0 16px;padding:12px 14px;border-radius:14px;background:var(--warn);color:var(--warn-ink);font-size:13px;text-align:left}
body:not(.console-page) #dialog .paused141>b{font-size:14px}
body:not(.console-page) #dialog .paused141 ul{margin:8px 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}
body:not(.console-page) #dialog .paused141 li{display:flex;justify-content:space-between;gap:12px}
body:not(.console-page) #dialog .paused141 li span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body:not(.console-page) #dialog .paused141 p{margin:0;line-height:1.5}
body:not(.console-page) #dialog.session141 .session-other132{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left}
body:not(.console-page) #dialog .login141{margin:10px 0 0}
body:not(.console-page) #dialog .login141:empty{display:none}
body:not(.console-page) .popup141{position:fixed;inset:0;z-index:100;background:var(--bg);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center}
body:not(.console-page) .popup141 b{font-size:20px}
body:not(.console-page) .popup141 p{margin:0;color:var(--muted)}
