
:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#eaf1ff;background:#0a1020;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 10% 0,#1b3158 0,transparent 55%),#0a1020}
header{position:sticky;top:0;z-index:10;background:#0b1427ef;backdrop-filter:blur(18px);border-bottom:1px solid #273652;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.logo{font-size:21px;font-weight:850;letter-spacing:-.6px}.logo em{color:#65abff;font-style:normal}.hint{font-size:11px;color:#91a4c5}
main{max-width:860px;margin:auto;padding:12px 13px 75px}.panel{background:#121e32e8;border:1px solid #293954;border-radius:19px;margin-bottom:14px;padding:17px;box-shadow:0 12px 35px #0003}
.title{font-size:17px;font-weight:750;margin:0 0 12px;display:flex;justify-content:space-between;align-items:center;gap:9px}
.small{font-size:12px;color:#96a9c9;line-height:1.65}.field{display:flex;flex-direction:column;gap:6px;margin:10px 0}.field label{font-size:12px;color:#aebdd9}
input,select{width:100%;background:#0b1526;border:1px solid #334664;border-radius:12px;color:#e8f2ff;padding:13px 12px;font-size:15px;outline:none;min-height:43px}input:focus,select:focus{border-color:#4b96ff}
button{border:0;border-radius:11px;padding:11px 14px;min-height:42px;font-weight:700;font-size:14px;cursor:pointer;background:#233956;color:#e3efff}button:active{transform:scale(.98)}button.primary{background:linear-gradient(100deg,#4083f5,#3666c8);color:#fff}button.danger{color:#ffb5b5;background:#492331}button.ghost{background:#1e304b}button:disabled{opacity:.45;cursor:wait}
.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row>*{flex-shrink:0}.grow{flex:1}.hide{display:none!important}
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:100000;background:#253b60;color:#fff;border-radius:13px;padding:12px 18px;max-width:92vw;box-shadow:0 5px 35px #0008;display:none;font-size:13px;overflow-wrap:anywhere}
.pill{font-size:11px;border:1px solid #36537c;border-radius:30px;padding:5px 9px;color:#a4c8ff}
.item{display:flex;gap:10px;padding:12px 0;border-top:1px solid #263954;align-items:center}.item .emoji{width:39px;height:39px;display:grid;place-items:center;background:#213451;border-radius:11px;font-size:22px}.filetext{flex:1;min-width:0}.fn{font-size:14px;font-weight:650;overflow-wrap:anywhere}.meta{font-size:11px;color:#97abc9;margin-top:4px}/* Compact always-visible file actions, with accessible labels and tooltips. */
.icon-actions{display:flex;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:5px;max-width:100%;min-width:0}
.item .icon-action{flex:0 0 37px;width:37px;height:37px;min-height:37px;display:inline-flex;justify-content:center;align-items:center;padding:0;border:1px solid #365276;background:#213754;color:#bfd9ff;border-radius:10px;touch-action:manipulation}
.item .icon-action.primary{background:#28549a;border-color:#377dd2;color:#fff}
.item .icon-action.danger{color:#ffb9bd;border-color:#6f364a;background:#422638}
.item .icon-action svg{width:18px;height:18px;flex:none;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round}
.item .icon-action:focus-visible{outline:2px solid #80b9ff;outline-offset:2px}
.item button{font-size:12px;padding:8px 10px;min-height:36px}
.toolbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:8px 0 12px}.toolbar button{min-width:0;padding:9px 4px;white-space:nowrap;font-size:12px}.loc{font-size:12px;color:#89acdb;overflow-wrap:anywhere;background:#0b1526;border-radius:10px;padding:11px;margin:9px 0}
button a,a{color:#79b7ff;text-decoration:none}progress{width:100%;height:7px;accent-color:#5f99fe}#fileInput{max-width:100%;padding:7px}.tip{border-left:3px solid #4387e6;padding:8px 10px;background:#203454;border-radius:6px}
#accountSelect{width:120px;max-width:33vw;padding:7px 6px;font-size:12px;min-height:38px}
#accountSelect.single{appearance:none;-webkit-appearance:none;pointer-events:none;opacity:1;text-align:center;padding-right:6px}
#loginFields{padding-top:3px}#loginFields>.primary{width:100%;margin-top:5px}#settings .field label{font-size:13px}
/* Elegant dark dropdowns drawn inside the page instead of OS-native white popup menus. */
.select-native{display:none!important}.styled-select{position:relative;min-width:0;flex-shrink:1;width:100%;isolation:isolate}
.styled-select.grow{flex:1 1 130px}.select-trigger{width:100%;text-align:left;min-height:43px;padding:11px 36px 11px 13px;background:linear-gradient(150deg,#172844,#101c31);border:1px solid #355074;border-radius:12px;font-size:14px;color:#edf5ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;font-weight:600}
.select-trigger::after{content:'⌄';position:absolute;right:12px;top:50%;transform:translateY(-55%);color:#88baff;font-size:18px}.select-trigger.single{padding-right:12px;text-align:center;opacity:1;cursor:default}.select-trigger.single::after{display:none}
.styled-select.open{z-index:36}.styled-select.open .select-trigger{border-color:#5e99f1;box-shadow:0 0 0 2px #3c7cdd28}
.select-options{display:none;position:absolute;left:0;right:0;top:calc(100% + 5px);max-height:min(300px,50dvh);overflow:auto;overscroll-behavior:contain;background:#15253c;border:1px solid #405b80;border-radius:13px;box-shadow:0 17px 45px #0009;padding:5px;z-index:50}
.styled-select.open .select-options{display:block}.select-option{display:block;width:100%;text-align:left;font-size:14px;font-weight:600;background:transparent;min-height:42px;padding:10px 12px;border-radius:8px;color:#e6f0ff}
.select-option[aria-selected='true']{background:#254a7b;color:#cfe7ff}.select-option:active,.select-option:focus-visible{background:#3265a0;outline:0}
#accountSelect{width:100%}.account-select-wrap{width:116px;flex:0 1 116px}.account-select-wrap .select-trigger{font-size:12px;min-height:38px;padding:7px 26px 7px 10px}.account-select-wrap .select-options{min-width:132px;width:max-content;max-width:230px}
.icon-utility{padding:0;min-height:36px;min-width:36px;font-size:19px}.head-controls{flex-wrap:nowrap;gap:5px}.head-controls>button{flex-shrink:0}.head-controls .pill{white-space:nowrap}
.minor{min-height:34px;padding:7px 11px;font-size:12px;background:#233954}.title .minor{white-space:nowrap}.summary-panel{padding-block:13px}.summary-panel .title{margin-bottom:7px}
.file-header-tools{gap:5px}.file-header-tools button{min-height:32px;padding:6px 9px}.sort-head{margin:7px 0}.upload-zone{margin:11px 0 14px}.upload-row{flex-wrap:nowrap}.upload-row #fileInput{flex:1;min-width:0;width:0}.upload-row #upload{flex-shrink:0}
.control-stack{display:grid;gap:11px;margin:10px 0 12px}
.control-card{background:linear-gradient(180deg,#15243b,#101c31);border:1px solid #263a56;border-radius:16px;padding:12px 12px 11px;box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
.control-card-title{display:flex;align-items:center;gap:7px;margin:0 0 10px;font-size:12px;font-weight:800;color:#d9e9ff;letter-spacing:.1px}
.control-card .toolbar{margin:0}
.control-card .loc{margin:0 0 10px}
.control-card .row{margin:0}
.control-card .sort-head{margin:9px 0 7px}
.control-card .field{margin:0}
.control-card .field label{font-size:12px;color:#aebdd9}
.control-card.search-card input,.control-card.search-card select,.control-card.upload-card input{background:#0b1526}
.control-card.upload-card .upload-zone{margin:0}
.control-card.upload-card .upload-row{align-items:stretch}
.control-card.upload-card .upload-row button{align-self:stretch}
.control-stack + .cloud-share-panel{margin-top:0}
@media(max-width:510px){.control-stack{gap:9px}.control-card{padding:11px}.control-card-title{margin-bottom:9px}.control-card .toolbar{gap:6px}.control-card .toolbar button{padding-inline:4px}.control-card .row{gap:7px}}
@media(max-width:360px){.control-card{padding:10px}.control-card-title{font-size:11px}}


#taskBtn{padding:9px 10px;font-size:12px}
.scope-label{font-size:11px;color:#79b7ff;margin-top:4px}
#allScopeNotice{padding:8px 11px;margin:7px 0;border-left:3px solid #4a95e7;background:#1b3151;border-radius:9px}
/* Native JavaScript prompts are replaced by accessible dark themed modal UI. */
.modal-layer{position:fixed;inset:0;z-index:40;background:#030817c9;display:flex;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(9px)}
.modal-card{width:min(100%,460px);max-height:min(90dvh,720px);overflow:auto;border:1px solid #3a5279;border-radius:23px;background:radial-gradient(ellipse at 4% 0,#24436c 0,transparent 67%),linear-gradient(160deg,#14243c,#0c172b);box-shadow:0 25px 85px #000b;padding:23px 19px}
.modal-card h2{margin:0 0 12px;font-size:20px;color:#f1f7ff}.modal-msg{color:#b6c9e5;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}
.modal-buttons{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:20px}.modal-buttons button{min-width:90px}.modal-card .field{margin-top:14px}
.task{padding:13px 0;border-bottom:1px solid #2a3d5b}.task:last-child{border-bottom:0}.task-header{display:flex;justify-content:space-between;gap:8px;align-items:baseline;overflow-wrap:anywhere}.task .fn{flex:1;min-width:0}.task-state{color:#8cbafa;font-size:12px;white-space:nowrap}.task-meter{height:7px;background:#0a1629;border-radius:7px;overflow:hidden;margin-top:9px}.task-meter>span{display:block;height:100%;background:linear-gradient(90deg,#4e8df5,#63bde8);border-radius:6px;transition:width .2s}
.task-meta{font-size:12px;color:#98aecd;margin-top:6px;overflow-wrap:anywhere}
.quota-tools{margin-top:12px}.quota-details{border-top:1px solid #2a3d59;margin-top:11px}.quota-tools button{font-size:13px;min-height:35px}.quota-line{padding:10px 0;border-top:1px solid #2a3d59}.quota-line:first-child{border-top:0}.quota-name{font-weight:700;color:#dcecff}.quota-detail{font-size:12px;color:#9aafd0;margin-top:4px}.quota-meter{height:6px;background:#0a1629;border-radius:6px;overflow:hidden;margin-top:7px}.quota-meter span{height:100%;display:block;background:linear-gradient(90deg,#478dff,#66bae4);border-radius:6px}.task .row button{min-height:31px;padding:5px 9px}.subtle{color:#98aecd}
@media(max-width:510px){.brand .hint{display:none}.head-controls{gap:4px}.head-controls .pill{display:none}.account-select-wrap{width:112px;flex-basis:112px}.head-controls #taskBtn,.head-controls #showSettings{padding:8px 10px;font-size:13px}header{flex-wrap:nowrap}.logo{font-size:18px}.item{align-items:flex-start;flex-wrap:wrap}.item .icon-actions{width:100%;margin-top:8px;justify-content:space-between;overflow-x:auto;padding:1px 0 3px;scrollbar-width:thin}.item .icon-action{flex:0 0 39px;width:39px;height:39px;min-height:39px}.filetext{width:calc(100% - 55px)}header{padding:11px}header .row{gap:5px}header .row button{font-size:12px;padding:8px 9px}.panel{padding:14px}}
@media(max-width:360px){.logo{font-size:16px}.account-select-wrap{width:93px;flex-basis:93px}.item .icon-action{flex-basis:36px;width:36px;height:36px;min-height:36px}}

/* Version 0.13: floating, mobile-first windows never modify the document layout. */
body.overlay-active{overflow:hidden}
#modalLayer{z-index:70}
/* Keep the dialog scrollable normally, but let its dropdown escape the scroll clipping while open. */
#modalLayer .modal-card.dropdown-open{overflow:visible}
#modalLayer .select-options.open-up{top:auto;bottom:calc(100% + 5px)}
.window-layer{z-index:46;overscroll-behavior:contain}
.window-layer .modal-card{width:min(100%,510px);max-height:min(86dvh,740px);overscroll-behavior:contain;overflow-y:auto;padding:18px 17px;scrollbar-width:thin}
.window-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}
.window-head h2{font-size:18px;margin:0;letter-spacing:.1px}
.window-close{display:grid;place-items:center;width:35px;height:35px;min-height:35px;padding:0;border:1px solid #39567b;background:#203651;border-radius:10px;color:#dfecff;font-size:20px}
.window-layer .field{margin:13px 0}
.quota-head-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.quota-head-tools button{min-height:33px;padding:7px 10px;font-size:12px;white-space:nowrap}
.quota-details{margin-top:13px}
.saved-accounts{margin-top:16px;border-top:1px solid #2b4263;padding-top:14px}
.saved-accounts .account-manage-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;background:#1d3351;border:1px solid #375378;padding:11px 13px;min-height:41px}
.manage-account-list{margin-top:9px;display:grid;gap:7px;max-height:240px;overflow-y:auto;scrollbar-width:thin}
.manage-account-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;border:1px solid #304a6d;border-radius:12px;background:#11243d}
.manage-account-label{flex:1;min-width:0;padding:8px;text-align:left;background:transparent;font-size:13px;overflow-wrap:anywhere;min-height:36px}
.manage-account-row.selected{border-color:#538fe7;background:#1b3659}
.manage-account-delete{min-height:35px;min-width:48px;padding:7px 9px;background:#482b3c;color:#ffc3cf;border:1px solid #794659;border-radius:10px;font-size:12px}
#settingsLayer .select-options{max-height:180px}
#taskLayer .task{padding:12px 0}
#taskLayer .task-header{align-items:flex-start}
@media(max-width:510px){.window-layer{padding:12px}.window-layer .modal-card{max-height:calc(100dvh - 32px);padding:17px 14px}.quota-head-tools button{font-size:11px;padding:6px 8px}.summary-panel .title{align-items:flex-start}.summary-panel .title>span{padding-top:6px}.window-head h2{font-size:17px}}

/* v0.14: avoid the Android modal-select clipping caused by a content-height popup.
   The initial provider selection now has enough internal space for its dropdown. */
#settingsLayer #settings{min-height:min(345px,calc(100dvh - 24px));display:flex;flex-direction:column;justify-content:flex-start}
#settingsLayer #settings .select-options{max-height:min(180px,34dvh);overscroll-behavior:contain}
#settingsLayer #settings .styled-select{z-index:auto}
#settingsLayer #settings .styled-select.open{z-index:4}
#settingsLayer #settings .select-options{box-shadow:0 17px 32px #000b}
#settingsLayer #settings .field{flex:0 0 auto}
/* Account dialog can grow to the available viewport; scroll the dialog itself on smaller screens. */
#settingsLayer .modal-card{max-height:calc(100dvh - 24px);-webkit-overflow-scrolling:touch}
#taskLayer .modal-card{-webkit-overflow-scrolling:touch}
/* v0.14: connection indicator comes immediately before the account selector on mobile. */
.head-controls #status{display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 auto;white-space:nowrap;padding:5px 7px;min-height:30px;font-size:10px;line-height:1}
.head-controls{flex-wrap:nowrap;min-width:0}
.head-controls .account-select-wrap{flex-shrink:1;min-width:0}
@media(max-width:510px){
 header{gap:4px;flex-wrap:nowrap;padding:10px 8px}
 .logo{font-size:17px}
 .head-controls{gap:4px}
 .head-controls .account-select-wrap{width:102px;flex-basis:102px}
 .head-controls #status{font-size:10px;padding:5px}
 .head-controls #taskBtn,.head-controls #showSettings{font-size:12px;padding:6px 8px;min-height:36px}
 #settingsLayer #settings{min-height:min(345px,calc(100dvh - 24px))}
}
@media(max-width:375px){
 .logo{font-size:15px}
 .head-controls .account-select-wrap{width:89px;flex-basis:89px}
 .head-controls #status{font-size:9px;padding:4px}
 .head-controls #taskBtn,.head-controls #showSettings{padding:5px 7px;min-height:34px}
}
@media(max-height:460px){#settingsLayer #settings{min-height:0}#settingsLayer .select-options{max-height:100px}}
/* v0.15: QR login is an independent, responsive area inside the account modal. */
#loginFields .full-width{width:100%;margin-top:12px}
.qr-login-panel{margin-top:12px;padding:14px;border:1px solid #345177;border-radius:15px;background:#0c1c34;display:grid;gap:10px;justify-items:center;text-align:center}
.qr-login-panel .small{line-height:1.6}
.qr-login-image{width:min(240px,82%);height:auto;aspect-ratio:1;background:#fff;border-radius:12px;padding:6px}
#qrLoginActions{width:100%;justify-content:center;gap:8px;flex-wrap:wrap}
.qr-login-link{color:#eef6ff;text-decoration:none;background:#275b9e;border:1px solid #4a8cd7;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:650;min-height:38px}
.manual-cookie{margin-top:15px;border-top:1px solid #2a4264;padding-top:13px;color:#a8c7f0;font-size:13px}
.manual-cookie summary{cursor:pointer;list-style:disclosure-closed;padding:7px 1px}
.manual-cookie[open] summary{margin-bottom:8px}
.manual-cookie #connect{width:100%}


/* v0.25: platform switch and Telegram account management; safe file-upload layout. */
.head-controls{display:flex;justify-content:flex-end;align-items:center;flex-wrap:nowrap;min-width:0;gap:6px}
.head-platform,.head-actions{display:flex;align-items:center;flex-wrap:nowrap;min-width:0;gap:5px}
.head-platform{flex:0 0 auto}
.head-actions{flex:0 1 auto}
.head-platform .drive-select-wrap{width:110px;flex:0 0 110px;min-width:0}
.head-platform .drive-select-wrap .select-trigger{min-height:38px;font-size:12px;padding:7px 24px 7px 9px}
.head-platform .drive-select-wrap .select-trigger::after{right:8px}
.head-platform .drive-select-wrap .select-options{min-width:115px}
.head-platform #status{white-space:nowrap}
/* Never allow the native mobile file chooser to push Upload beyond the card. */
.upload-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-width:0;max-width:100%}
.upload-row input[type="file"]{display:block;box-sizing:border-box;min-width:0;width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis;padding:7px}
.upload-row button{display:inline-flex;align-items:center;justify-content:center;min-width:78px;max-width:100%;white-space:nowrap;box-sizing:border-box}
.head-actions .tg-head-account-wrap{width:116px;flex:0 1 116px;min-width:0}
.head-actions .tg-head-account-wrap .select-trigger{font-size:12px;min-height:38px;padding:7px 26px 7px 10px}
.head-actions .tg-head-account-wrap .select-options{min-width:130px;width:max-content;max-width:230px}
@media(max-width:650px){
 header{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand platform" "actions actions";align-items:center;gap:7px;padding:10px 11px}
 header .brand{grid-area:brand;min-width:0}
 header .head-controls{display:contents}
 header .head-platform{grid-area:platform;justify-self:end;min-width:0}
 header .head-actions{grid-area:actions;justify-self:end}
 header .head-platform .drive-select-wrap{width:100px;flex-basis:100px}
 header .head-platform .drive-select-wrap .select-trigger{font-size:12px}
 header .head-actions .account-select-wrap,header .head-actions .tg-head-account-wrap{flex:0 1 120px;width:120px;min-width:0}
 header .head-platform #status{display:inline-flex!important}
}
@media(max-width:375px){
 header{padding:9px 7px;gap:6px}
 header .head-platform .drive-select-wrap{width:94px;flex-basis:94px}
 header .head-platform #status{font-size:9px;padding:5px}
 .upload-row{gap:6px}
 .upload-row button{padding:9px 9px;min-width:72px}
}
/* v0.26: keep platform, connection status and account controls together. */
@media(min-width:651px){
 header .head-controls{flex:0 1 auto;width:auto;justify-content:flex-end;gap:7px}
}
/* The older ID-specific width:0 rule must not collapse the native file picker. */
.upload-row #fileInput,.upload-row #tgFileInput{width:100%;min-width:0;max-width:100%;flex:initial;display:block}


/* v0.33: Telegram public-share controls and TeraBox share-list actions stay aligned. */
.tg-share-tools,.tg-share-actions,.share-list-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;width:100%;margin:10px 0;align-items:stretch}
.tg-share-tools>button,.tg-share-actions>button,.share-list-actions>button{width:100%;min-width:0;min-height:38px;padding:8px 6px;font-size:12px;white-space:normal;overflow-wrap:anywhere;text-align:center}
.tg-share-actions{margin:9px 0 0}
#tgSharePanel .task{margin-top:10px;padding:12px 0;border-bottom:1px solid #2a4162}
#tgSharePanel .task:last-child{border-bottom:0}
#tgSharePanel .task-meta{overflow-wrap:anywhere}
@media(max-width:350px){.tg-share-tools,.tg-share-actions,.share-list-actions{gap:5px}.tg-share-tools>button,.tg-share-actions>button,.share-list-actions>button{font-size:11px;padding:8px 4px}}

/* v0.35: Both cloud providers use the same management-panel layout. */
.cloud-file-panel>.title{align-items:center;flex-wrap:wrap}
.cloud-file-panel>.title>span{min-width:0;line-height:1.36}
.cloud-platform-hint{font-weight:550;font-size:12px;color:#86addb;white-space:nowrap}
.cloud-file-panel .toolbar{grid-template-columns:repeat(4,minmax(0,1fr));margin:9px 0 12px}
.cloud-file-panel .sort-head{margin:10px 0 6px}
.cloud-file-panel .upload-zone{margin:13px 0}
.cloud-file-panel .loc{margin:8px 0}
.cloud-file-panel .file-header-tools{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.cloud-file-panel .file-header-tools>.minor{min-height:35px;padding:7px 9px;white-space:nowrap}
.cloud-share-panel{border:1px solid #345177;border-radius:13px;padding:12px;margin:12px 0;background:#101f36;min-width:0}
.cloud-share-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:9px;color:#e2f0ff;font-size:14px;font-weight:700}
.cloud-share-head .small{font-weight:400;overflow-wrap:anywhere}
.cloud-share-panel .task{padding:12px 0;border-bottom:1px solid #2a4162}
.cloud-share-panel .task:last-child{border-bottom:0}
.cloud-share-panel .task-meta{overflow-wrap:anywhere;line-height:1.6}
.cloud-share-panel .small{line-height:1.55}
.cloud-account-controls{display:flex;align-items:end;justify-content:space-between;gap:8px;margin:10px 0 5px}
.cloud-account-select{flex:1 1 140px;min-width:0}
.cloud-account-select>label{display:block;margin-bottom:5px}
.cloud-account-buttons{flex:0 1 auto;justify-content:flex-end;flex-wrap:wrap;gap:6px}
.cloud-account-buttons button{white-space:nowrap}
.cloud-account-status{margin:4px 0 10px}
.cloud-file-panel .sort-head+.row select{min-width:0}
@media(max-width:410px){.cloud-file-panel .file-header-tools>.minor{font-size:11px;padding:7px 7px}.cloud-platform-hint{font-size:11px}.cloud-account-controls{align-items:stretch;flex-direction:column}.cloud-account-select,.cloud-account-buttons{width:100%}.cloud-account-select{flex:0 0 auto}.cloud-account-buttons button{flex:1 1 0}}
@media(max-width:345px){.cloud-file-panel>.title{align-items:stretch}.cloud-file-panel .file-header-tools{justify-content:space-between}.cloud-file-panel .file-header-tools>.minor{flex:1 1 0;font-size:10px;padding:7px 5px}}


/* v0.35: single compact quota strip replaces the large capacity card and status badge. */
header{row-gap:8px}
.header-quota{flex:1 0 100%;width:100%;min-width:0;display:flex;align-items:center;gap:10px;position:relative;min-height:32px;padding:3px 9px 3px 11px;background:#15243b;border:1px solid #2b4464;border-radius:10px}
.quota-brief{flex:0 1 auto;display:flex;gap:9px;min-width:0;align-items:center;padding:3px 2px;background:transparent;border:0;min-height:28px;color:#cbe0ff;font-size:12px;white-space:nowrap;text-align:left}
.quota-brief-title{flex:none;font-weight:700;color:#86b9fa}
.quota-brief-text{overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.quota-brief-arrow{flex:none;color:#8cbaff}
.header-quota-meter{flex:1 1 50px;min-width:25px;max-width:360px;height:5px;border-radius:4px;overflow:hidden;background:#0a1426}
.header-quota-meter>span{display:block;height:100%;background:linear-gradient(90deg,#438cff,#68bfea);border-radius:4px;transition:width .2s}
.header-quota #quotaPopup{position:absolute;right:0;top:calc(100% + 9px);width:min(450px,calc(100vw - 20px));max-height:min(73dvh,540px);overflow-y:auto;z-index:35;margin:0;box-shadow:0 22px 48px #000b;padding:16px;background:#122239}
.header-quota #quotaPopup .title{flex-wrap:wrap}
@media(max-width:650px){header{grid-template-areas:"brand platform" "actions actions" "quota quota"}.header-quota{grid-area:quota;justify-self:stretch}.header-quota #quotaPopup{right:0}}
@media(max-width:370px){.header-quota{padding-inline:8px;gap:6px}.quota-brief{font-size:11px;gap:6px}.header-quota #quotaPopup{padding:12px}}


/* v0.38 MaDrive: truly tiny quota button in the top toolbar. */
header{row-gap:7px}
header .header-quota{order:1;flex:0 0 auto;width:auto;min-width:0;min-height:0;padding:0;margin:0;background:transparent;border:0;box-shadow:none;position:relative}
header .head-controls{order:2}
.header-quota .quota-brief{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:33px;padding:5px 8px;border:1px solid #345071;background:#1b2d47;border-radius:10px;color:#bfd8ff;font-size:11px;line-height:1;max-width:none;white-space:nowrap}
.header-quota .quota-brief-title{font-size:11px;white-space:nowrap}
.header-quota .quota-brief-arrow{font-size:11px}
.header-quota .quota-brief-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.header-quota .header-quota-meter{display:none}
.header-quota #quotaPopup{position:fixed;left:auto;right:10px;top:var(--quota-popup-top,92px);width:min(430px,calc(100vw - 20px));max-height:min(74dvh,calc(100dvh - var(--quota-popup-top,92px) - 10px));overflow:auto;overscroll-behavior:contain;z-index:60;margin:0}
@media(max-width:650px){
 header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"brand quota platform" "actions actions actions";align-items:center}
 header .header-quota{grid-area:quota;justify-self:end;width:auto}
 header .head-platform{grid-area:platform}
 header .head-actions{grid-area:actions}
}
@media(max-width:370px){
 header .header-quota{padding:0;gap:0}
 header .quota-brief{gap:3px;padding:5px 6px;min-height:32px}
 header .quota-brief-title{font-size:10px}
 header .header-quota #quotaPopup{right:7px;width:calc(100vw - 14px);padding:12px}
}

/* v0.38: capacity immediately follows the selected account in the same control row. */
header .header-quota{order:0;flex:0 1 auto;min-width:0;width:auto;max-width:100%;margin:0;align-self:center}
header .head-actions{min-width:0}
header .header-quota .quota-brief{min-height:38px;max-width:100%;width:100%;padding:6px 9px;gap:5px;display:flex;font-size:11px;line-height:1.2}
header .header-quota .quota-brief-title{flex:0 0 auto;font-size:11px}
header .header-quota .quota-brief-text{position:static;display:block;flex:1 1 auto;min-width:0;width:auto;height:auto;margin:0;padding:0;overflow:hidden;clip:auto;white-space:nowrap;text-overflow:ellipsis;font-size:11px;color:#e3f0ff}
header .header-quota .quota-brief-arrow{flex:0 0 auto}
@media(max-width:650px){
 header{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand platform" "actions actions"}
 header .head-actions{grid-area:actions;justify-self:stretch;width:100%;max-width:100%;gap:5px}
 header .head-actions .account-select-wrap,header .head-actions .tg-head-account-wrap{flex:0 1 108px;width:108px;min-width:0}
 header .head-actions .header-quota{grid-area:auto;justify-self:auto;flex:1 1 auto;min-width:0;width:auto}
 header .head-actions #taskBtn,header .head-actions #showSettings{flex:0 0 auto}
 header .header-quota .quota-brief{min-width:0;padding:6px 7px;gap:4px}
 header .header-quota .quota-brief-title{font-size:10px}
 header .header-quota .quota-brief-text{font-size:10px}
}
@media(max-width:365px){
 header .head-actions{gap:4px}
 header .head-actions .account-select-wrap,header .head-actions .tg-head-account-wrap{flex:0 1 96px;width:96px}
 header .head-actions .header-quota{flex:1 1 auto}
 header .header-quota .quota-brief{padding:5px 5px;gap:3px}
 header .header-quota .quota-brief-title{font-size:10px}
 header .header-quota .quota-brief-arrow{display:none}
}


/* v0.44 -- compact TeraBox-like file explorer, retaining MaDrive dark palette. */
body{background:#0b1322}
main{max-width:1380px;padding:14px 12px 70px}
.drive-layout{display:grid;grid-template-columns:76px minmax(0,1fr);gap:14px;align-items:stretch}
.drive-workspace{min-width:0}
.drive-sidebar{background:#121e32;border:1px solid #253753;border-radius:18px;display:flex;flex-direction:column;gap:9px;padding:14px 8px;min-height:68vh;align-items:stretch;position:sticky;top:80px;align-self:start}
.drive-sidebar .rail-caption{text-align:center;text-transform:uppercase;color:#7694bc;font-size:10px;font-weight:800;letter-spacing:1px;margin-bottom:8px}
.rail-btn{border:1px solid transparent;border-radius:12px;background:transparent;color:#9eb5d5;min-width:0;width:100%;padding:9px 2px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:63px;cursor:pointer}
.rail-btn>span{font-size:22px;line-height:1.15}
.rail-btn>.drive-mark{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px}.rail-btn>.drive-mark svg{display:block;width:24px;height:24px}
.rail-btn>small{font-size:10px;line-height:1.2;letter-spacing:-.2px}
.rail-btn.is-current,.rail-btn:focus-visible{background:#203e67;border-color:#315e97;color:#87bbff;outline:0}
.rail-btn:active{transform:scale(.98)}
.rail-divider{height:1px;background:#2c3c55;margin:9px 4px}
.cloud-file-panel{border-radius:19px;background:#121e32;border:1px solid #263954;box-shadow:0 7px 28px #02071235;min-height:65vh;padding:22px;margin:0}
.cloud-file-panel>.title{font-size:22px;font-weight:800;margin:0 0 8px;align-items:center;gap:8px}
.cloud-file-panel>.title>span{min-width:0}
.cloud-file-panel .cloud-platform-hint{font-size:12px;color:#86a8cd;font-weight:500}
.cloud-file-panel .file-header-tools{gap:7px}
.cloud-file-panel .file-header-tools button{background:#1c2e49;border:1px solid #2c4567;border-radius:10px;color:#bdd3f1}
.cloud-file-panel .control-stack{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-areas:'upload search' 'path path';gap:10px 12px;margin:12px 0 18px;align-items:start}
.cloud-file-panel .control-card{box-shadow:none;border:0;border-radius:0;padding:0;margin:0;background:transparent;min-width:0}
.cloud-file-panel .control-card-title{display:none}
.cloud-file-panel .upload-card{grid-area:upload}
.cloud-file-panel .search-card{grid-area:search}
.cloud-file-panel .path-card{grid-area:path;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 0;border-top:1px solid #253954;border-bottom:1px solid #253954}
.cloud-file-panel .path-card .loc{order:1;flex:1 1 130px;min-width:0;margin:0;background:transparent;padding:8px 9px;color:#9eb5d5;border-radius:8px}
.cloud-file-panel .path-card .toolbar{order:0;flex:0 1 auto;display:flex;gap:6px;margin:0;flex-wrap:wrap}
.cloud-file-panel .path-card .toolbar button{min-height:36px;padding:7px 10px;font-size:12px;border:1px solid #2d435f}
.cloud-file-panel .path-card .toolbar .primary{background:#21416e;color:#badaff}
.cloud-file-panel .upload-card .upload-zone{margin:0;gap:3px}
.cloud-file-panel .upload-card .upload-zone>label{font-size:11px;color:#8ea6c4;min-height:16px;line-height:1.4}
.cloud-file-panel .upload-card .upload-row{display:flex;align-items:stretch;gap:7px;min-height:42px}
.cloud-file-panel .upload-card .upload-row input{width:auto;flex:1 1 100px;min-width:100px;min-height:42px;padding:5px;font-size:11px;background:#0b1628;border:1px solid #2b405c}
.cloud-file-panel .upload-card input::file-selector-button{border:0;border-radius:7px;padding:8px 9px;background:#253b5c;color:#d5e7ff;font-size:11px;font-weight:700}
.cloud-file-panel .upload-card .upload-row button{min-height:42px;padding:8px 15px;white-space:nowrap}
.cloud-file-panel .search-card .row:first-of-type{display:flex;flex-wrap:nowrap;gap:7px}
.cloud-file-panel .search-card .row:first-of-type input{min-width:0;width:0;flex:1 1 auto;height:42px;min-height:42px;font-size:13px;padding:9px 12px}
.cloud-file-panel .search-card .row:first-of-type button{min-height:42px;padding:8px 11px;font-size:12px;white-space:nowrap}
.cloud-file-panel .search-card .sort-head{margin:6px 0 0;justify-content:flex-end}
.cloud-file-panel .search-card .sort-head button{border:0;background:transparent;min-height:27px;padding:3px 5px;font-size:11px;color:#a8c6eb}
.cloud-file-panel .search-card #sortPanel,.cloud-file-panel .search-card #tgSortPanel{margin-top:4px!important;gap:6px}
.cloud-file-panel .search-card #sortPanel .styled-select,.cloud-file-panel .search-card #tgSortPanel .styled-select{flex:1 1 120px}
.cloud-file-panel .search-card #sortPanel select,.cloud-file-panel .search-card #tgSortPanel select{min-height:36px}
.cloud-file-panel #tgDriveState{margin:8px 0}
.cloud-file-panel .cloud-account-controls{background:#16263e;border:1px solid #2c3b55;border-radius:12px;padding:10px;margin:8px 0}
.file-table-head{display:grid;grid-template-columns:minmax(0,1fr) 130px 85px 58px;gap:12px;align-items:center;min-height:39px;border-top:1px solid #2a3950;border-bottom:1px solid #2a3950;color:#95afcd;font-weight:700;font-size:12px;padding:0 12px}
.file-table-head>span:first-child{padding-left:41px}
.file-table-head>span:last-child{text-align:center}
.file-table{min-width:0}
.file-table .item{display:grid;grid-template-columns:32px minmax(0,1fr) 130px 85px 58px;gap:12px;align-items:center;min-height:64px;padding:9px 12px;border-top:0;border-bottom:1px solid #22344c;position:relative}
.file-table .item .emoji{width:32px;height:32px;font-size:19px;border-radius:8px;background:#1c304c}
.file-table .filetext{min-width:0;width:auto;cursor:pointer;border-radius:6px}.file-table .filetext:focus-visible{outline:2px solid #5597ed;outline-offset:3px}
.file-table .filetext .fn{font-size:13px;font-weight:650;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-table .filetext .meta{font-size:10px;margin-top:3px;color:#839cbf;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-table .file-date,.file-table .file-size{font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#9aaecb}
.file-table .item .icon-action{min-width:0;max-width:none;flex:auto;width:42px;height:38px;min-height:38px;padding:0;border:1px solid #365276}
.file-table .item .icon-action svg{width:18px;height:18px}
@media(max-width:900px){.file-table-head{grid-template-columns:minmax(0,1fr) 100px 64px 48px;gap:6px}.file-table .item{grid-template-columns:28px minmax(0,1fr) 100px 64px 48px;gap:6px}.file-table-head>span:first-child{padding-left:32px}}
@media(max-width:650px){
 main{padding:8px 5px 60px}
 .drive-layout{grid-template-columns:47px minmax(0,1fr);gap:6px}
 .drive-sidebar{top:91px;min-height:67vh;border-radius:12px;padding:10px 3px;gap:8px}
 .drive-sidebar .rail-caption{font-size:9px;letter-spacing:0}
 .rail-btn{min-height:55px;border-radius:9px;padding:7px 0;gap:4px}
 .rail-btn>span{font-size:19px}
 .rail-btn>.drive-mark,.rail-btn>.drive-mark svg{width:21px;height:21px}.rail-btn>.drive-mark{flex-basis:21px}
 .rail-btn>small{font-size:8px;word-break:break-word}
 .cloud-file-panel{padding:12px 10px;min-height:70vh;border-radius:13px}
 .cloud-file-panel>.title{font-size:17px;gap:6px}
 .cloud-file-panel .file-header-tools button{font-size:10px;min-height:30px;padding:5px 7px}
 .cloud-file-panel .control-stack{grid-template-columns:1fr;grid-template-areas:'upload' 'search' 'path';gap:8px;margin:9px 0 13px}
 .cloud-file-panel .path-card{gap:3px;padding:7px 0;display:block}
 .cloud-file-panel .path-card .toolbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
 .cloud-file-panel .path-card .toolbar button{font-size:10px;padding:7px 1px;min-width:0;white-space:nowrap}
 .cloud-file-panel .path-card .loc{font-size:11px;margin:6px 0 0;padding:5px}
 .cloud-file-panel .upload-card .upload-zone>label{font-size:10px}
 .cloud-file-panel .upload-card .upload-row{gap:5px}
 .cloud-file-panel .upload-card .upload-row input{min-width:0;font-size:10px}
 .cloud-file-panel .upload-card .upload-row button{font-size:11px;min-height:39px;padding:6px 9px}
 .cloud-file-panel .search-card .row:first-of-type{gap:5px}
 .cloud-file-panel .search-card .row:first-of-type input{font-size:12px;min-height:39px;height:39px}
 .cloud-file-panel .search-card .row:first-of-type button{font-size:11px;min-height:39px;padding:6px 7px}
 .file-table-head{grid-template-columns:minmax(0,1fr) 42px 36px;gap:5px;font-size:10px;padding:0 5px;min-height:34px}
 .file-table-head>span:first-child{padding-left:26px}
 .file-table-head>span:nth-child(2){display:none}
 .file-table .item{grid-template-columns:25px minmax(0,1fr) 42px 36px;gap:5px;padding:8px 5px;min-height:61px}
 .file-table .item .emoji{width:25px;height:27px;font-size:16px}
 .file-table .filetext .fn{font-size:11px}
 .file-table .filetext .meta{font-size:9px}
 .file-table .file-date{display:none}
 .file-table .file-size{font-size:9px}
}
@media(max-width:350px){.drive-layout{grid-template-columns:42px minmax(0,1fr);gap:4px}.cloud-file-panel{padding:10px 7px}.cloud-file-panel .file-header-tools button{padding:5px 5px}.file-table .item{gap:4px;padding-left:2px;padding-right:2px}.file-table-head{gap:4px;padding-left:2px;padding-right:2px}}
/* v0.44: focused share window and aligned dark-theme file toolbar. */
.cloud-file-panel>.title{margin-bottom:14px;min-height:30px}
.cloud-file-panel .file-header-tools.hide{display:none!important}
.cloud-file-panel .control-stack{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 14px;align-items:start}
.cloud-file-panel .control-card.search-card::before{content:'搜索文件';display:block;color:#8ea6c4;font-size:11px;line-height:1.4;min-height:16px;margin:0 0 3px}
.cloud-file-panel .search-card .row:first-of-type,.cloud-file-panel .upload-card .upload-row{align-items:stretch;gap:7px;min-height:42px}
.cloud-file-panel .search-card .row:first-of-type button,.cloud-file-panel .upload-card .upload-row button{min-height:42px;min-width:0;white-space:nowrap}
.cloud-file-panel .path-card .toolbar{gap:7px}
.cloud-file-panel .path-card .toolbar button{min-height:38px}
.cloud-file-panel .path-card #showScopeHint{order:2;min-height:34px;padding:4px 9px}
.cloud-file-panel .sort-head{margin:7px 0 0}
#shareLayer .modal-card{width:min(100%,570px);max-height:min(88dvh,800px);overflow:auto}
#shareLayer .cloud-share-panel{background:transparent;border:0;padding:0;margin:0;box-shadow:none}
#shareLayer .cloud-share-head{padding:4px 0 12px;border-bottom:1px solid #2b4562;margin-bottom:10px;gap:8px}
#shareLayer .cloud-share-head>span{font-size:12px;color:#a9bfde}
#shareLayer .cloud-share-head>span:first-child{display:none}
#shareLayer .cloud-share-head .row{gap:7px}
#shareLayer #hideShares,#shareLayer #tgShareHide{display:none}
#shareLayer #shareList,#shareLayer #tgShareItems{min-height:82px;overflow-wrap:anywhere}
#shareLayer .task-meta{overflow-wrap:anywhere}
#shareLayer .tg-share-tools{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
#shareLayer .tg-share-tools button{flex:1 1 auto;min-height:36px;padding:7px 9px}
@media(max-width:800px){
 .cloud-file-panel .control-stack{grid-template-columns:minmax(0,1fr);grid-template-areas:'upload' 'search' 'path';gap:12px}
 .cloud-file-panel .control-card.search-card::before{min-height:16px}
 .cloud-file-panel .path-card .toolbar{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
 .cloud-file-panel .path-card .toolbar button{font-size:11px;min-width:0;padding:8px 3px}
 .cloud-file-panel .path-card #showScopeHint{display:inline-flex;align-items:center;justify-content:center}
 .cloud-file-panel .path-card #showScopeHint.hide{display:none!important}
 .cloud-file-panel .path-card .loc{width:auto;min-width:0}
}
@media(max-width:510px){
 .cloud-file-panel>.title{font-size:18px;margin-bottom:10px}
 .cloud-file-panel .control-stack{gap:9px;margin:8px 0 12px}
 .cloud-file-panel .upload-card .upload-row input{min-width:0}
 .cloud-file-panel .search-card .row:first-of-type button{padding:8px 9px}
 #shareLayer{padding:10px}
 #shareLayer .modal-card{width:100%;max-height:calc(100dvh - 20px);padding:16px 13px}
 #shareLayer .window-head h2{font-size:17px}
}



/* v0.44: share actions are a single row on phones and tablets. */
#shareLayer #tgSharePanel .tg-share-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;align-items:stretch;flex-wrap:nowrap;width:100%;min-width:0}
#shareLayer #tgSharePanel .tg-share-tools>button{display:flex;align-items:center;justify-content:center;flex:initial;width:100%;min-width:0;min-height:40px;padding:8px 3px;text-align:center;font-size:11px;line-height:1.26;white-space:normal;word-break:keep-all;overflow-wrap:normal}
@media(max-width:370px){#shareLayer #tgSharePanel .tg-share-tools{gap:5px}#shareLayer #tgSharePanel .tg-share-tools>button{font-size:10px;padding:7px 2px}}
/* Telegram keeps the TeraBox file-manager layout; accounts are managed in settings. */
#tgDrivePanel .control-stack{margin-top:12px}
#tgDrivePanel .upload-card #tgDriveState{margin:5px 0 0;font-size:10px;line-height:1.45;color:#839bb9;min-height:0}
#tgLoginFields .tg-account-manager-row{margin:13px 0 8px}
#tgLoginFields .tg-account-manager-row .cloud-account-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}
#tgLoginFields .tg-account-manager-row .cloud-account-select{flex:1 1 140px;min-width:0}
#tgLoginFields .tg-account-manager-row .cloud-account-buttons{display:flex;gap:6px;flex-wrap:wrap}
#tgLoginFields .tg-account-manager-row .cloud-account-buttons button{min-height:38px}
#tgLoginFields .tg-cloud-notice{margin:8px 0;color:#9fb6d7;font-size:12px}
#tgLoginFields .tg-cloud-notice>summary{cursor:pointer;padding:7px 0;color:#bcd1eb}


/* v0.44: identical, compact file controls for both clouds. Two visible actions + More. */
.cloud-file-panel #tgDriveState{display:none!important}
.file-table .item{grid-template-columns:32px minmax(0,1fr) 130px 85px 124px;gap:10px;min-height:65px}
.file-table-head{grid-template-columns:minmax(0,1fr) 130px 85px 124px;gap:10px}
.file-table .item>.icon-actions{grid-column:5;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:38px;gap:5px;position:relative;justify-self:end;align-items:center;width:124px;min-width:0;max-width:none;overflow:visible;margin:0;padding:0;background:transparent;border:0;box-shadow:none}
.file-table .item>.icon-actions>.icon-action{display:flex;align-items:center;justify-content:center;flex:initial;width:100%;height:38px;min-height:38px;padding:0;margin:0;border-radius:9px;touch-action:manipulation}
.file-table .item>.icon-actions>.icon-action svg{width:18px;height:18px}
.file-table .file-action-menu{position:relative;z-index:1;min-width:0;width:100%;height:38px;margin:0;padding:0}
.file-table .file-menu-trigger{display:grid;place-items:center;list-style:none;width:100%;height:38px;min-height:38px;padding:0;border:1px solid #344e73;border-radius:9px;background:#233956;color:#d5eaff;font-size:24px;font-weight:800;line-height:1;cursor:pointer;user-select:none;touch-action:manipulation}
.file-table .file-menu-trigger::-webkit-details-marker{display:none}
.file-table .file-action-menu[open] .file-menu-trigger{background:#30578b;border-color:#5185c3}
.file-table .file-action-options{display:none;position:absolute;right:0;top:calc(100% + 7px);z-index:50;width:115px;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:8px;border:1px solid #415a7e;border-radius:12px;background:#1b2c46;box-shadow:0 14px 36px #000a}
.file-table .file-action-menu[open]>.file-action-options{display:grid}
.file-table .file-action-options>.icon-action{display:grid;place-items:center;width:100%;min-width:0;height:41px;min-height:41px;padding:0;border-radius:9px;touch-action:manipulation}
.file-table .file-action-options>.icon-action svg{width:18px;height:18px}
.file-table .item:has(.file-action-menu[open]){z-index:30}
.file-table .item:nth-last-child(-n + 2) .file-action-options{top:auto;bottom:calc(100% + 7px)}
@media(max-width:900px){
 .file-table .item{grid-template-columns:28px minmax(0,1fr) 100px 64px 116px;gap:6px;min-height:61px}
 .file-table-head{grid-template-columns:minmax(0,1fr) 100px 64px 116px;gap:6px}
 .file-table .item>.icon-actions{grid-column:5;width:116px;gap:4px;grid-template-rows:35px}
 .file-table .item>.icon-actions>.icon-action,.file-table .file-action-menu,.file-table .file-menu-trigger{height:35px;min-height:35px}
}
@media(max-width:650px){
 .file-table-head{grid-template-columns:minmax(0,1fr) 116px;gap:5px}
 .file-table-head>span:nth-child(2),.file-table-head>span:nth-child(3){display:none}
 .file-table .item{grid-template-columns:25px minmax(0,1fr) 116px;gap:5px;min-height:58px;padding:7px 5px}
 .file-table .item .file-date,.file-table .item .file-size{display:none}
 .file-table .item>.icon-actions{grid-column:3;width:116px;grid-template-rows:36px;gap:4px}
 .file-table .item>.icon-actions>.icon-action,.file-table .file-action-menu,.file-table .file-menu-trigger{height:36px;min-height:36px}
 .file-table .filetext{min-width:0;width:auto}
 .file-table .filetext .fn{white-space:normal;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
 .file-table .filetext .meta{white-space:nowrap}
}
@media(max-width:350px){
 .file-table-head{grid-template-columns:minmax(0,1fr) 108px;gap:4px}
 .file-table .item{grid-template-columns:23px minmax(0,1fr) 108px;gap:4px;padding-inline:2px}
 .file-table .item>.icon-actions{width:108px;grid-template-rows:34px;gap:3px}
 .file-table .item>.icon-actions>.icon-action,.file-table .file-action-menu,.file-table .file-menu-trigger{height:34px;min-height:34px}
 .file-table .item>.icon-actions>.icon-action svg{width:16px;height:16px}
}

/* v0.56: matching panel margins across both providers. */
#filesPanel .control-stack,#tgDrivePanel .control-stack{margin:12px 0 18px}
@media(max-width:800px){#filesPanel .control-stack,#tgDrivePanel .control-stack{margin:12px 0 12px}}
@media(max-width:650px){#filesPanel .control-stack,#tgDrivePanel .control-stack{margin:8px 0 12px}}
#fileInput,#tgFileInput{padding:5px}
/* v0.56: shared physical geometry for TeraBox/Telegram controls. Neither
   provider may introduce browser-native height differences into the toolbar. */
.cloud-file-panel .upload-card .upload-row,
.cloud-file-panel .search-card .row:first-of-type{align-items:stretch;min-height:44px}
.cloud-file-panel .upload-card .upload-row input[type="file"],
.cloud-file-panel .upload-card .upload-row button,
.cloud-file-panel .search-card .row:first-of-type input,
.cloud-file-panel .search-card .row:first-of-type button{
 box-sizing:border-box;height:44px;min-height:44px;max-height:44px;
 margin:0;vertical-align:middle;
}
.cloud-file-panel .upload-card .upload-row input[type="file"]{
 display:block;padding:5px;line-height:32px;
}
.cloud-file-panel .path-card .toolbar button{
 box-sizing:border-box;height:38px;min-height:38px;max-height:38px;
}
.file-table .item>.icon-actions>.icon-action,
.file-table .item>.icon-actions>.file-action-menu,
.file-table .item>.icon-actions>.file-action-menu>.file-menu-trigger{
 box-sizing:border-box;min-width:0;max-width:none;
}
@media(max-width:650px){
 /* The account always occupies the left; tasks and add-account always sit
    on the right, with or without the TeraBox-only capacity indicator. */
 header .head-actions #taskBtn{margin-left:auto}
}
/* v0.56: share metadata, batch revoke and page controls only. */
.share-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin:15px 0 5px}
.share-pagination button{min-height:34px;padding:6px 11px;font-size:12px}
.share-pagination .small{color:#9eb9dc;white-space:nowrap}
#shareLayer .cloud-share-head>.row{flex-wrap:wrap;justify-content:flex-end}
#shareLayer .share-clear-all{width:100%;margin:9px 0 7px;min-height:35px}
#shareLayer .share-list-actions,#shareLayer .tg-share-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
#shareLayer .task .task-meta{margin-top:5px;line-height:1.55}
/* v0.56: consistent three-action file rows and touch long-press selection. */
.file-table .item.is-selected{background:rgba(65,134,245,.16);outline:1px solid #4b91f0;border-radius:10px}
.file-table .item .filetext{user-select:none;-webkit-user-select:none;touch-action:pan-y}
.batch-toolbar{margin:8px 0;padding:9px 10px;border:1px solid #355981;border-radius:12px;background:#172a45;gap:9px;flex-wrap:wrap}
.batch-toolbar .small{flex:1;min-width:65px}.batch-toolbar button{font-size:12px;min-height:36px;padding:7px 10px}


/* v0.64: shared visual directory picker for same-account move/copy. */
.destination-picker{margin:2px 0 14px;padding:11px;background:#0d1a2c;border:1px solid #344965;border-radius:13px;min-width:0}
.destination-owner{font-size:12px;color:#9bb8e1;margin-bottom:7px;overflow-wrap:anywhere}
.destination-current{border:1px solid #3a5a80;border-radius:9px;background:#172a43;padding:10px 11px;color:#dcecff;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.destination-picker .destination-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:9px 0}
.destination-picker .destination-controls button{min-width:0;min-height:36px;font-size:12px;padding:6px}
.destination-folders{display:flex;flex-direction:column;gap:5px;max-height:min(32dvh,250px);overflow:auto;overscroll-behavior:contain;min-height:42px}
.destination-folder{width:100%;display:flex;align-items:center;gap:8px;justify-content:space-between;text-align:left;padding:9px 11px;min-height:42px;line-height:1.3;background:#1b304b;border:1px solid #345174;border-radius:9px;color:#e9f3ff;font-size:13px}
.destination-folder span{min-width:0;overflow-wrap:anywhere}.destination-folder:focus-visible{outline:2px solid #79b6ff}
.destination-folder[disabled]{opacity:.45}
.destination-empty{font-size:12px;color:#9eb4cf;padding:12px 6px}
.destination-pagination{display:flex;justify-content:center;gap:8px;align-items:center;margin-top:8px}
.destination-pagination button{padding:6px 10px;min-height:33px;font-size:12px}
.destination-pagination span{font-size:12px;color:#9db2d0}
@media(max-width:360px){.destination-picker{padding:9px}.destination-picker .destination-controls button{font-size:11px}}
#gDrivePanel .control-stack{margin:12px 0 18px}
#gDrivePanel .upload-card .upload-row input[type="file"]{width:100%;min-width:0;max-width:100%;display:block;padding:5px}
#gDrivePanel .path-card .toolbar button{height:38px;min-height:38px;max-height:38px}
@media(max-width:650px){#gDrivePanel .control-stack{margin:8px 0 12px}}

/* v0.72: identical button grid/spacing in all three share managers. */
#shareLayer .share-manager-tools{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;
 width:100%;min-width:0;margin:7px 0 12px;align-items:stretch;
}
#shareLayer .cloud-share-head>.share-manager-tools{flex:1 1 100%;margin:0}
#shareLayer .share-manager-tools>button{
 display:flex;align-items:center;justify-content:center;
 width:100%;min-width:0;min-height:40px;padding:8px 6px;margin:0;
 text-align:center;font-size:12px;line-height:1.36;white-space:normal;
}
#shareLayer #tgShareRevokeAll.share-clear-all{width:100%;min-height:40px;margin:0}
#shareLayer #tgSharePanel .tg-share-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:6px 0 10px}
#shareLayer #tgSharePanel .tg-share-tools>button{width:100%;min-width:0;min-height:40px;padding:8px 6px;font-size:12px;line-height:1.36}
#shareLayer .share-list-actions,#shareLayer .tg-share-actions{
 display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;
 width:100%;min-width:0;align-items:stretch;margin:9px 0 0;
}
#shareLayer .share-list-actions>button,#shareLayer .tg-share-actions>button{
 display:flex;align-items:center;justify-content:center;
 width:100%;min-width:0;min-height:40px;padding:8px 3px;
 text-align:center;font-size:11px;line-height:1.3;white-space:normal;
}
@media(max-width:370px){#shareLayer .share-manager-tools,#shareLayer .share-list-actions,#shareLayer .tg-share-actions{gap:5px}}

/* v0.76: fixed geometry for the account / capacity / task / add controls
   across TeraBox, Telegram and Google Drive. */
header .head-actions{
 display:grid;grid-template-columns:116px 156px 44px 44px;
 gap:6px;width:max-content;max-width:100%;flex:0 0 auto;
 align-items:center;justify-content:end;
}
header .head-actions .account-select-wrap,
header .head-actions .tg-head-account-wrap{
 grid-column:1;grid-row:1;width:100%;min-width:0;max-width:100%;
 flex:none;justify-self:stretch;
}
header .head-actions .header-quota{
 grid-column:2;grid-row:1;width:100%;min-width:0;max-width:100%;
 flex:none;justify-self:stretch;
}
header .head-actions #taskBtn{grid-column:3;grid-row:1;margin-left:0;min-width:0}
header .head-actions #showSettings{grid-column:4;grid-row:1;min-width:0}
header .head-actions .account-select-wrap .select-trigger,
header .head-actions .tg-head-account-wrap .select-trigger,
header .head-actions .header-quota .quota-brief,
header .head-actions #taskBtn,
header .head-actions #showSettings{
 box-sizing:border-box;width:100%;height:40px;min-height:40px;max-height:40px;
}
header .head-actions #taskBtn,header .head-actions #showSettings{
 display:flex;align-items:center;justify-content:center;padding:0 4px;
}
@media(max-width:650px){
 header .head-actions{justify-self:end;width:max-content;max-width:100%}
}
@media(min-width:361px) and (max-width:400px){
 header .head-actions{grid-template-columns:104px 128px 42px 42px;gap:5px}
}
@media(max-width:360px){
 header .head-actions{grid-template-columns:94px 103px 38px 38px;gap:4px}
 header .head-actions .account-select-wrap .select-trigger,
 header .head-actions .tg-head-account-wrap .select-trigger,
 header .head-actions .header-quota .quota-brief,
 header .head-actions #taskBtn,
 header .head-actions #showSettings{height:38px;min-height:38px;max-height:38px}
}
/* v0.86: mobile-only fluid header controls. Keep account, quota, tasks,
   and host-only add button on ONE line at every mobile width. */
@media(max-width:650px){
 header .head-controls{min-width:0;max-width:100%;width:100%}
 header .head-actions{
  box-sizing:border-box;display:grid!important;
  grid-template-columns:minmax(0,.95fr) minmax(0,1.3fr) clamp(32px,10vw,40px) clamp(32px,10vw,40px);
  gap:clamp(3px,1vw,5px);width:100%;max-width:100%;min-width:0;
  justify-self:stretch;justify-content:stretch;align-items:center;
 }
 header .head-actions .account-select-wrap,
 header .head-actions .tg-head-account-wrap,
 header .head-actions .header-quota{
  min-width:0;max-width:100%;width:100%;overflow:visible;
  grid-row:1;justify-self:stretch;
 }
 header .head-actions .account-select-wrap,
 header .head-actions .tg-head-account-wrap{grid-column:1}
 header .head-actions .header-quota{grid-column:2}
 header .head-actions #taskBtn{grid-column:3;grid-row:1;margin-left:0}
 header .head-actions #showSettings{grid-column:4;grid-row:1}
 header .head-actions #taskBtn,header .head-actions #showSettings{
  box-sizing:border-box;min-width:0;width:100%;height:clamp(34px,10vw,40px);
  min-height:34px;max-height:40px;padding:0 1px;
  font-size:clamp(11px,3.5vw,13px);white-space:nowrap;
 }
 header .head-actions .account-select-wrap .select-trigger,
 header .head-actions .tg-head-account-wrap .select-trigger,
 header .head-actions .header-quota .quota-brief{
  box-sizing:border-box;min-width:0;max-width:100%;width:100%;
  height:clamp(34px,10vw,40px);min-height:34px;max-height:40px;
 }
 header .head-actions .account-select-wrap .select-trigger,
 header .head-actions .tg-head-account-wrap .select-trigger{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  padding:5px clamp(17px,5.3vw,24px) 5px clamp(5px,1.5vw,10px);
  font-size:clamp(10px,3vw,12px);
 }
 header .head-actions .account-select-wrap .select-trigger::after,
 header .head-actions .tg-head-account-wrap .select-trigger::after{
  right:clamp(4px,1.7vw,8px);font-size:15px;
 }
 header .head-actions .header-quota .quota-brief{
  display:flex;align-items:center;flex-wrap:nowrap;
  padding:3px clamp(3px,1vw,7px);gap:clamp(1px,.55vw,4px);
  overflow:hidden;white-space:nowrap;
 }
 header .head-actions .header-quota .quota-brief-title{
  font-size:clamp(9px,2.6vw,11px);flex:0 0 auto;
 }
 header .head-actions .header-quota .quota-brief-text{
  font-size:clamp(9px,2.6vw,11px);min-width:0;flex:1 1 auto;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
 }
 header .head-actions .header-quota .quota-brief-arrow{flex:0 0 auto}
}
@media(max-width:340px){
 header .head-actions .header-quota .quota-brief-arrow{display:none}
}

/* v0.77: compact, identical help controls for every provider login. */
#loginFields,#tgLoginFields,#gLoginFields{padding-top:0}
.login-help-row{width:100%;display:flex;justify-content:flex-end;align-items:center;min-height:34px;margin:0 0 6px}
.login-help-row .login-help-toggle{display:inline-flex;justify-content:center;align-items:center;min-width:154px;min-height:32px;height:32px;padding:5px 10px;font-size:12px;line-height:1.3;white-space:nowrap}
.login-help-body{padding:12px;border:1px solid var(--line,#41536b);border-radius:12px;margin:0 0 12px;font-size:12px;line-height:1.7;overflow-wrap:anywhere}
.login-help-body ol{padding-left:20px;margin:4px 0 10px}
.login-help-body li{margin:0 0 5px}
.login-help-body a{overflow-wrap:anywhere}


/* v1.03 standalone browser additions: preserve the original MaDrive layout. */
.static-notice{margin-top:8px;border-color:#405f93;font-size:12px;color:#c7dcfc;line-height:1.7;padding:12px 15px}
.static-notice strong{color:#fff}
.browser-note{font-size:12px;line-height:1.6;margin-top:7px;color:#aec5e7}
.browser-file{border-top:1px solid #2a3f60;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:11px 5px;align-items:center}
.browser-file label{display:flex;align-items:center;gap:8px;min-width:0;cursor:pointer}
.browser-file .browser-name{font-weight:650;font-size:13px;overflow-wrap:anywhere}
.browser-file .browser-name.folder{color:#9ed0ff}
.browser-file .browser-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.browser-file .browser-actions button{min-height:34px;padding:7px 9px;font-size:12px}
.browser-file .browser-meta{color:#94abcb;font-size:11px;margin-top:4px}
.browser-file .browser-label{min-width:0}
.browser-file input[type=checkbox]{width:17px;min-height:17px;margin:0;accent-color:#6dafff}
#browserVault{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:6px 0 12px;padding:9px;border:1px solid #2c4466;border-radius:11px;font-size:12px}
#browserVault button{min-height:32px;padding:6px}
#browserVault input{width:125px;min-height:32px;padding:5px 8px;font-size:12px}
@media(max-width:420px){.browser-file{grid-template-columns:1fr}.browser-file .browser-actions{justify-content:flex-start;padding-left:25px}.browser-file .browser-actions button{flex:1}}

/* v1.19: distinct provider quota header; all file actions are directly visible, never collapsed into '…'. */
#headerQuota[data-platform='google'] .quota-brief-title{color:#a9c9ff}
#headerQuota[data-platform='terabox'] .quota-brief-title{color:#9adbe8}
#headerQuota[data-platform='telegram'] .quota-brief-title{color:#b1c9ef}
.browser-file .browser-actions{min-width:0;align-items:stretch}
.browser-file .browser-actions button{white-space:normal;min-width:0;overflow-wrap:anywhere;text-align:center}
@media (max-width:650px){
 .browser-file{grid-template-columns:minmax(0,1fr);row-gap:9px}
 .browser-file .browser-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding-left:25px;justify-content:stretch;width:100%;box-sizing:border-box}
 .browser-file .browser-actions button{width:100%;min-height:36px;font-size:11px;padding:7px 4px;flex:none}
}
@media (max-width:350px){.browser-file .browser-actions{gap:4px;padding-left:16px}.browser-file .browser-actions button{font-size:10px}}

/* v1.22: simplified Cloudflare NAS controls, existing functionality unchanged. */
#nasLayer .nas-simplified{width:min(100%,670px);max-height:min(90dvh,830px)}
#nasLayer .nas-url-block{background:#172d49;border:1px solid #36547a;border-radius:13px;padding:12px;margin:12px 0}
#nasLayer .nas-status-dot{display:inline-block;width:9px;height:9px;background:#71c3af;border-radius:50%;margin-right:7px}
#nasLayer .nas-mini-status{font-size:13px;margin-bottom:8px}
#nasLayer .nas-copy-row input{min-width:0;flex:1;font-size:12px;min-height:40px;padding:9px}
#nasLayer .nas-copy-row button{flex:0 0 auto}
#nasLayer .nas-mini-title{font-size:15px;font-weight:750;margin:15px 0 8px}
#nasLayer .nas-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
#nasLayer .nas-fields-grid .field{min-width:0;margin:6px 0}
#nasLayer .nas-main-actions{flex-wrap:wrap;margin:12px 0}
#nasLayer .nas-main-actions button{flex:1;min-width:118px}
#nasLayer .nas-limit-note{background:#172b44;padding:10px;border-radius:10px}
#nasLayer .nas-credentials{border:1px solid #4f84c3;border-radius:10px;padding:10px;margin:12px 0;background:#142b49}
#nasLayer #nasCredentialsText{resize:none;width:100%;font-size:13px;margin:8px 0}
#nasLayer .nas-details{border:1px solid #344f72;border-radius:13px;margin:10px 0;background:#15253d;overflow:hidden}
#nasLayer .nas-details>summary{cursor:pointer;list-style:none;font-weight:720;padding:13px 14px;min-height:44px}
#nasLayer .nas-details>summary::after{content:'⌄';float:right;color:#94abd0}
#nasLayer .nas-details[open]>summary{border-bottom:1px solid #344f72}
#nasLayer .nas-details[open]>summary::after{content:'⌃'}
#nasLayer .nas-details>section,#nasLayer .nas-details>.browser-peer{padding:12px;margin:0!important;border:0!important}
#nasLayer .nas-wrap{flex-wrap:wrap;margin:8px 0}
#nasLayer .nas-wrap select,#nasLayer .nas-wrap input{flex:1;min-width:160px}
#nasLayer .nas-guide-line{overflow-wrap:anywhere;line-height:1.9}
#nasLayer .nas-guide-line code{display:inline;user-select:all;overflow-wrap:anywhere;color:#c4dcff;font-size:11px}
#nasLayer .nas-steps{font-size:13px;color:#baccea;padding:9px 18px;line-height:1.8}
#nasLayer .nas-steps li{margin:4px 0}
#nasLayer a{color:#7cb8ff;overflow-wrap:anywhere}
#nasLayer .browser-file{display:flex;align-items:center;gap:6px;flex-wrap:wrap;border-bottom:1px solid #324b6d;padding:8px 0}
#nasLayer .browser-file .browser-label{flex:1;min-width:170px;overflow-wrap:anywhere}
@media(max-width:520px){#nasLayer .nas-fields-grid{grid-template-columns:1fr 1fr}#nasLayer .nas-fields-grid label{font-size:11px}#nasLayer .nas-fields-grid input,#nasLayer .nas-fields-grid select{font-size:13px}#nasLayer .nas-simplified{padding:13px 12px}}
@media(max-width:350px){#nasLayer .nas-fields-grid{grid-template-columns:1fr}}

/* v1.22: same account-button geometry across cloud providers, no wrapping/overlap. */
#tgLoginFields .tg-account-manager-row .cloud-account-controls{
 display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;
 padding:10px;min-width:0;width:100%;box-sizing:border-box;
}
#tgLoginFields .tg-account-manager-row .cloud-account-select{min-width:0;max-width:100%;width:100%;}
#tgLoginFields .tg-account-manager-row .cloud-account-select select{display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box;height:42px;}
#tgLoginFields .tg-account-manager-row .cloud-account-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;min-width:0;}
#tgLoginFields .tg-account-manager-row .cloud-account-buttons>button{height:42px;min-height:42px;box-sizing:border-box;padding:6px 9px;white-space:nowrap;}
#tgLoginFields .tg-cloud-notice{margin-top:8px;}
@media(max-width:410px){
 #tgLoginFields .tg-account-manager-row .cloud-account-controls{grid-template-columns:minmax(0,1fr);}
 #tgLoginFields .tg-account-manager-row .cloud-account-buttons{grid-template-columns:repeat(2,minmax(0,1fr));}
}
.cloud-file-panel .upload-card .upload-row>input[type="file"]{min-width:0;flex:1 1 auto;width:100%;}
.cloud-file-panel .upload-card .upload-row>button{flex:0 0 auto;}

/* v1.22: NAS v1.02-inspired simple layout, Cloudflare URL and real D1 records. */
#nasLayer .nas-simplified{width:min(100%,670px)}
#nasLayer .nas-plain-fields>.field{margin:10px 0}
#nasLayer .nas-plain-fields>.field>.row{align-items:center;gap:8px}
#nasLayer .nas-plain-fields #nasNewQuota{flex:1;min-width:0}
#nasLayer .nas-plain-fields #nasInviteUnit{max-width:85px;flex:0 0 auto}
#nasLayer .nas-plain-fields #nasLimit{max-width:90px;min-width:60px}
#nasLayer .nas-permit{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:13px}
#nasLayer .nas-permit input{width:18px;min-height:18px;flex:0 0 auto}
#nasLayer .nas-help-key{margin:8px 0 14px}
#nasLayer .nas-help-key summary{cursor:pointer}
#nasLayer .nas-help-key code{word-break:break-all;user-select:all}
#nasLayer .nas-extra-section{margin-top:8px}
#nasLayer .nas-extra-section>summary{font-size:12px;color:#9daec5}
#nasLayer #nasCredentialsText{min-height:110px}
#tgUsageLabel{color:var(--muted,#aec0dc);margin-top:8px}

/* v1.26: one Google Drive-standard action layout on all three platforms. */
.browser-file .browser-actions{align-items:stretch}
.browser-file .browser-actions>button{min-height:36px;min-width:0;border-radius:9px}
.browser-file .browser-actions>button.primary{background:#3a77df;color:#fff}
.browser-file .browser-actions>button.danger{background:#6c2534;color:#ffe0e3}
@media(max-width:650px){
 .browser-file .browser-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 .browser-file .browser-actions>button{height:36px;min-height:36px}
}

/* v1.30: Telegram managed accounts + confirmed share-link panels */
#tgManagedAccountList .manage-account-row{display:grid;grid-template-columns:minmax(0,1fr) 62px 62px;gap:7px;align-items:center;min-width:0}
#tgManagedAccountList .manage-account-row button{height:38px;min-height:38px;min-width:0;padding:6px 7px;white-space:nowrap;font-size:12px;text-align:center}
#tgManagedAccountList .manage-account-label{text-align:left;overflow:hidden;text-overflow:ellipsis}
#tgManagedAccountList .manage-account-channel{border:1px solid #42658e;background:#244369;color:#e5f1ff;border-radius:10px}
#tgManagedAccountList .manage-account-delete{border-radius:10px}
#shareLayer .share-record{border:1px solid #345273;border-radius:12px;margin:9px 0;padding:10px;display:grid;gap:8px;background:#11233c;min-width:0}
#shareLayer .share-record-name{font-size:13px;color:#e0edff;overflow-wrap:anywhere}
#shareLayer .share-record input{box-sizing:border-box;min-width:0;width:100%;font-size:12px}
#shareLayer .share-record-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#shareLayer .share-record-buttons button{min-height:38px;min-width:0}
#madriveShareResult{z-index:90}
#madriveShareResult .share-result-card{width:min(100%,480px)}
#madriveShareResult #madriveShareResultLink{width:100%;min-width:0;box-sizing:border-box;font-size:13px;overflow-wrap:anywhere}
#madriveShareResult .share-result-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
#madriveShareResult .share-result-actions button{min-height:42px;min-width:0}

/* v1.39: a compact NAS manager; additional experimental settings stay out of the admin screen. */
#nasLayer .nas-extra-section, #nasLayer .nas-limit-note {display:none!important}
#nasLayer .nas-main-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#nasLayer .nas-main-actions>button{width:100%;min-width:0}
#nasLayer .nas-plain-fields>.field .row{display:flex;flex-wrap:wrap}
#nasLayer .nas-platform-choice{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
#nasLayer .nas-platform-choice label{display:flex;align-items:center;white-space:nowrap;gap:4px;min-width:0;font-size:12px}
#nasLayer #nasPolicyUsers .browser-file{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px}
#nasLayer #nasPolicyUsers .browser-file button{min-width:75px}
@media(max-width:560px){#nasLayer #nasPolicyUsers .browser-file{grid-template-columns:repeat(2,minmax(0,1fr))}#nasLayer #nasPolicyUsers .browser-label{grid-column:1 / -1}#nasLayer #nasPolicyUsers .browser-file button{width:100%}}
/* Align upload modes with the Telegram standard on all three platforms. */
#filesPanel .upload-zone select,#gDrivePanel .upload-zone select,#tgDrivePanel .upload-zone select{width:100%;min-height:46px}

/* v1.39: three aligned NAS provider choices, matching the dark dialog style. */
#nasLayer .nas-platform-choice{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;flex-wrap:nowrap!important;width:100%;}
#nasLayer .nas-platform-choice label{display:flex!important;align-items:center;justify-content:center;gap:5px;font-size:clamp(10px,2.5vw,13px);padding:10px 3px;border:1px solid #3a5376;border-radius:11px;background:#142943;min-height:44px;white-space:nowrap;margin:0;}
#nasLayer .nas-platform-choice input[type=checkbox]{flex:0 0 auto;max-width:17px;min-width:17px;width:17px;height:17px;min-height:17px;accent-color:#5b9aff;}
#nasLayer .nas-main-actions button,#nasLayer .nas-copy-row button,#nasLayer .nas-plain-fields button{min-height:43px;border-radius:11px;}
#modalLayer .modal-card,#madriveShareResult .modal-card{background:linear-gradient(135deg,#203a5a,#111e35);border:1px solid #426086;border-radius:19px;box-shadow:0 18px 55px #0008;}
#modalLayer input,#madriveShareResult input{border-radius:11px;}

/* MaDrive v1.39: NAS account edit matching the existing dark modal design. */
.nas-edit-layer{position:fixed;inset:0;z-index:2500;display:grid;place-items:center;padding:12px;background:#030914d9;backdrop-filter:blur(5px)}
.nas-edit-dialog{box-sizing:border-box;width:min(100%,525px);max-height:90dvh;overflow-y:auto;background:radial-gradient(ellipse at 4% 0,#24436c,transparent 68%),linear-gradient(160deg,#14243c,#0c172b);border:1px solid #47678c;border-radius:22px;padding:20px;box-shadow:0 25px 80px #000a;color:#e9f2ff}
.nas-edit-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.nas-edit-head h2{margin:0;font-size:20px}.nas-edit-head .nas-edit-close{font-size:22px;flex:0 0 38px;width:38px;height:38px;min-height:38px;border-radius:12px;padding:2px}
.nas-edit-hint{color:#a6bdd9;font-size:12px;line-height:1.6;margin:6px 0}.nas-edit-dialog fieldset{border:0;padding:0;margin:17px 0 0;min-width:0}.nas-edit-dialog legend,.nas-edit-dialog .nas-edit-field>label{display:block;font-size:13px;color:#d1e2fa;margin-bottom:9px;font-weight:650}
.nas-edit-dialog .nas-edit-field{margin:17px 0 0}.nas-edit-dialog input:not([type=checkbox]),.nas-edit-dialog select{background:#0b192e;color:#eef5ff;border:1px solid #385579;border-radius:11px;min-height:43px;box-sizing:border-box;padding:10px;width:100%;font:inherit}
.nas-edit-platform-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.nas-edit-option{display:flex;align-items:center;justify-content:center;gap:5px;background:#162e4b;border:1px solid #3a5578;border-radius:11px;min-width:0;padding:11px 3px;font-size:clamp(10px,2.6vw,13px);white-space:nowrap;cursor:pointer}
.nas-edit-option input[type=checkbox]{width:17px;height:17px;min-width:17px;min-height:17px;accent-color:#599bff;margin:0}.nas-edit-quota-row{display:grid;grid-template-columns:minmax(0,1fr) 88px;gap:8px}.nas-edit-dialog .nas-edit-quota-row select{width:88px}
.nas-edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:20px}.nas-edit-actions button{min-height:44px}.nas-edit-error{color:#ffc2c2;font-size:13px;min-height:0;margin:6px 0}.nas-edit-dialog :focus-visible{outline:2px solid #7ab1ff;outline-offset:2px}
@media(max-width:420px){.nas-edit-dialog{padding:16px 13px}.nas-edit-option{font-size:10px;padding:9px 1px;gap:3px}.nas-edit-option input[type=checkbox]{width:15px;min-width:15px;height:15px;min-height:15px}}

/* v1.41: administrator cloud files AND folders use the same single-row five-button layout. */
:is(#fileList,#tgFiles,#gFiles)>.browser-file{
 display:flex;flex-wrap:nowrap;align-items:center;gap:6px;min-height:52px;
 width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;padding:8px 3px;
}
:is(#fileList,#tgFiles,#gFiles)>.browser-file>label,
:is(#fileList,#tgFiles,#gFiles)>.browser-file>.browser-label{
 flex:1 1 28%;min-width:68px;max-width:none;overflow:hidden;margin:0;
}
:is(#fileList,#tgFiles,#gFiles)>.browser-file :is(.browser-label,.browser-name){
 overflow:hidden;min-width:0;white-space:nowrap;text-overflow:ellipsis;
}
:is(#fileList,#tgFiles,#gFiles)>.browser-file>.browser-actions{
 display:grid;grid-template-columns:repeat(5,minmax(37px,1fr));flex:1 0 195px;
 gap:3px;justify-content:stretch;padding-left:0;width:auto;min-width:195px;max-width:none;
}
:is(#fileList,#tgFiles,#gFiles)>.browser-file>.browser-actions>button{
 width:100%;min-width:0;min-height:34px;height:auto;padding:6px 1px;
 white-space:nowrap;overflow:hidden;font-size:10px;line-height:1.2;text-align:center;
}
@media(max-width:650px){
 :is(#fileList,#tgFiles,#gFiles)>.browser-file{display:flex;flex-wrap:nowrap;gap:4px;min-height:49px}
 :is(#fileList,#tgFiles,#gFiles)>.browser-file>.browser-actions{display:grid;grid-template-columns:repeat(5,minmax(37px,1fr));gap:2px;flex:1 0 195px;min-width:195px;padding-left:0;width:auto}
 :is(#fileList,#tgFiles,#gFiles)>.browser-file>.browser-actions>button{font-size:9px;min-height:34px;padding:5px 0}
}

/* v1.54: NAS user management – name on its own line, three equal action buttons. */
#nasLayer #nasPolicyUsers .browser-file.nas-user-row{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;column-gap:7px;row-gap:8px;align-items:stretch;min-width:0;padding:12px 0}
#nasLayer #nasPolicyUsers .nas-user-row>.browser-label{grid-column:1 / -1!important;min-width:0!important;overflow-wrap:anywhere;line-height:1.45}
#nasLayer #nasPolicyUsers .nas-user-row>button{min-width:0!important;width:100%!important;height:42px!important;min-height:42px!important;max-height:42px;white-space:nowrap;overflow:hidden;text-overflow:clip;text-align:center;padding:6px 2px!important;font-size:clamp(10px,2.53vw,13px);border-radius:10px}

/* v1.54: a single full-width NAS on/off button above the balanced action pair. */
#nasLayer .nas-service-control{display:grid;grid-template-columns:minmax(0,1fr);margin:12px 0 8px}
#nasLayer #nasServiceToggle{box-sizing:border-box;width:100%;min-width:0;min-height:44px;border-radius:11px;font-weight:650}
#nasLayer #nasServiceToggle[data-enabled="true"]{background:#513044;border:1px solid #9b5367;color:#ffe2e5}
#nasLayer #nasServiceToggle[data-enabled="false"]{background:#2766bd;border:1px solid #4a93ed;color:#fff}
#nasLayer #nasServiceToggle:disabled{opacity:.62;cursor:wait}
#nasLayer .nas-main-actions{margin:0 0 12px;grid-template-columns:repeat(2,minmax(0,1fr))}
#nasLayer .nas-main-actions>button{min-height:44px}

/* v1.77: keep the transfer count INSIDE the top task button on narrow phones. */
header .head-actions #taskBtn{display:inline-flex!important;align-items:center;justify-content:center;flex-direction:row!important;flex-wrap:nowrap!important;gap:2px;overflow:hidden;white-space:nowrap;line-height:1;font-variant-numeric:tabular-nums}
header .head-actions #taskBtn #taskCount{display:inline-block;flex:0 0 auto;min-width:0;white-space:nowrap;line-height:1}

/* v1.77: only the active platform account appears in the fixed first header cell.
   v1.77 positioned class-based wrappers, but these controls are native selects. */
header .head-actions > #accountSelect,
header .head-actions > #tgHeadAccountSelect,
header .head-actions > #gHeadAccountSelect {
 grid-column:1;grid-row:1;min-width:0;max-width:100%;width:100%;
 height:40px;min-height:40px;max-height:40px;align-self:center;
 overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
 padding:5px 20px 5px 7px;font-size:12px;
}
header .head-actions:not([data-active-platform="terabox"]) > #accountSelect,
header .head-actions:not([data-active-platform="telegram"]) > #tgHeadAccountSelect,
header .head-actions:not([data-active-platform="google"]) > #gHeadAccountSelect {display:none!important}
@media (max-width:650px){
 header .head-actions > #accountSelect,header .head-actions > #tgHeadAccountSelect,
 header .head-actions > #gHeadAccountSelect {height:clamp(34px,10vw,40px);min-height:34px;max-height:40px;font-size:clamp(10px,3vw,12px)}
}
@media (max-width:360px){
 header .head-actions > #accountSelect,header .head-actions > #tgHeadAccountSelect,
 header .head-actions > #gHeadAccountSelect {height:38px;min-height:38px;max-height:38px}
}

/* v1.77: single responsive template for administrator/NAS share & transfer windows. */
#shareLayer .modal-card,#guestShareLayer .modal-card,#taskLayer .modal-card,#guestTaskLayer .modal-card{width:min(100%,570px);max-height:min(88dvh,800px);overflow-y:auto;min-width:0;box-sizing:border-box}
#guestShareLayer .cloud-share-panel,#shareLayer .cloud-share-panel{background:transparent;border:0;box-shadow:none;padding:0;margin:0;min-width:0}
#guestShareLayer .cloud-share-head,#shareLayer .cloud-share-head{padding:4px 0 12px;border-bottom:1px solid #2b4562;margin-bottom:10px;gap:8px}
#guestShareLayer .cloud-share-head>span,#shareLayer .cloud-share-head>span:first-child{display:none}
#guestShareLayer .share-manager-tools,#shareLayer .share-manager-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;min-width:0;margin:7px 0 12px;align-items:stretch}
#guestShareLayer .cloud-share-head>.share-manager-tools,#shareLayer .cloud-share-head>.share-manager-tools{flex:1 1 100%;margin:0}
#guestShareLayer .share-manager-tools>button,#shareLayer .share-manager-tools>button{display:flex;align-items:center;justify-content:center;min-width:0;width:100%;min-height:40px;padding:8px 6px;margin:0;text-align:center;font-size:12px;line-height:1.36;white-space:normal}
#guestShareLayer .share-record,#shareLayer .share-record{border:1px solid #345273;border-radius:12px;margin:9px 0;padding:10px;display:grid;gap:8px;background:#11233c;min-width:0}
#guestShareLayer .share-record-name,#shareLayer .share-record-name{font-size:13px;color:#e0edff;overflow-wrap:anywhere}
#guestShareLayer .share-record input,#shareLayer .share-record input{box-sizing:border-box;min-width:0;width:100%;font-size:12px}
#guestShareLayer .share-record-buttons,#shareLayer .share-record-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#guestShareLayer .share-record-buttons>button,#shareLayer .share-record-buttons>button{min-width:0;min-height:38px}
#guestTaskLayer .transfer-item,#taskLayer .transfer-item{padding:12px 3px;border-bottom:1px solid #2b4562;display:grid;gap:6px;min-width:0}
#guestTaskLayer .transfer-item:last-child,#taskLayer .transfer-item:last-child{border-bottom:0}
#guestTaskLayer .transfer-label,#taskLayer .transfer-label{font-weight:650;font-size:13px;color:#e3edfc;overflow-wrap:anywhere}
#guestTaskLayer .transfer-info,#taskLayer .transfer-info{font-size:12px;color:#abbfda}
#guestTaskLayer .transfer-item progress,#taskLayer .transfer-item progress{width:100%;height:7px;display:block;accent-color:#468bf2}
#guestSharePages,#guestShareLayer .share-pagination,#shareLayer .share-pagination{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;margin-top:8px}
@media(max-width:510px){#shareLayer .modal-card,#guestShareLayer .modal-card,#taskLayer .modal-card,#guestTaskLayer .modal-card{width:100%;max-height:calc(100dvh - 24px);padding:17px 14px}}

/* v1.77: tutorials at title-right; restore provider login buttons to their original form positions. */
#settings .account-login-head{display:flex;align-items:center;gap:8px;margin-bottom:14px;min-width:0;}
#settings .account-login-head h2{flex:1 1 auto;min-width:0;margin:0;font-size:clamp(15px,4vw,18px);white-space:nowrap;}
#settings .login-head-actions{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;min-width:0;}
#settings .login-head-actions .hide{display:none!important;}
#settings .login-head-guide{width:auto!important;min-width:0;max-width:none;min-height:32px;height:32px;margin:0!important;padding:5px 9px;font-size:12px;line-height:1.2;white-space:nowrap;border-radius:10px;}
#settings .account-login-head .window-close{flex:0 0 auto;margin:0;}
@media(max-width:380px){#settings .account-login-head{gap:5px}#settings .account-login-head h2{font-size:14px}#settings .login-head-guide{padding:5px 6px;font-size:11px}}

/* v1.78 · aligned account management for all three cloud providers. */
#settings .cloud-account-manager{margin-top:17px;padding:13px;border:1px solid #344f72;border-radius:14px;background:rgba(15,31,53,.65)}
#settings .cloud-account-manager-title{font-size:14px;font-weight:650;color:#eaf2ff;margin-bottom:10px}
#settings .cloud-account-columns,#settings .cloud-unified-account-row{display:grid;grid-template-columns:minmax(0,1fr) 62px 62px;column-gap:7px;min-width:0;align-items:center}
#settings .cloud-account-columns{padding:0 8px 6px;color:#b6c9e6;font-size:12px;border-bottom:1px solid #294463}
#settings .cloud-account-columns span:not(:first-child){text-align:center}
#settings .manage-account-list{margin-top:8px;max-height:216px;gap:6px}
#settings .cloud-unified-account-row{padding:6px;background:#122845;border:1px solid #304b6d;border-radius:10px}
#settings .cloud-unified-account-row button{min-width:0;min-height:36px;padding:7px 5px;font-size:12px;line-height:1.1;border-radius:9px}
#settings .cloud-unified-account-row .manage-account-label{font-weight:500;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;background:transparent;color:#edf3ff}
#settings .cloud-unified-account-row span.manage-account-label{padding:7px 5px}
#settings .cloud-unified-account-row .manage-account-channel{background:#224570;color:#f3f7ff;border:1px solid #42668f}
#settings .cloud-unified-account-row .manage-account-delete{background:#452b3c;color:#ffd0d9;border:1px solid #80516a}
.cloud-account-edit{width:min(94vw,460px);max-height:calc(100dvh - 20px);overflow-y:auto}
.cloud-account-edit .window-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cloud-account-edit .window-head h2{margin:0;font-size:18px}
.cloud-account-edit .field{margin-top:11px}
.cloud-account-edit .field .row{min-width:0;display:flex;gap:6px}
.cloud-account-edit .field .row input{flex:1;min-width:0}
.cloud-account-edit .field .row button{width:44px;flex:0 0 44px}
.cloud-account-edit-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:17px}
.cloud-account-edit-actions button{min-width:0;min-height:40px;font-size:13px;padding:7px 5px}
@media(max-width:380px){#settings .cloud-account-columns,#settings .cloud-unified-account-row{grid-template-columns:minmax(0,1fr) 54px 54px;column-gap:5px}#settings .cloud-unified-account-row button{font-size:11px}}

/* v1.80 private NAS invitation presentation */
.nas-invite-qr{display:flex;justify-content:center;align-items:center;min-height:230px;margin:10px auto;background:transparent}.nas-invite-qr img{background:white;padding:9px;border-radius:14px;max-width:100%;width:216px;height:216px;object-fit:contain}.nas-invite-code{text-align:center;font-size:34px;letter-spacing:7px;font-weight:800;color:#f0f5ff;font-variant-numeric:tabular-nums;margin:10px auto}.nas-invite-code::selection{background:#376dcb}

/* v1.83: install guidance is shown once, only after a verified Android login. */
.madrive-pwa-install-layer{position:fixed;inset:0;z-index:100000;background:rgba(3,9,20,.83);display:grid;place-items:center;padding:16px;box-sizing:border-box}
.madrive-pwa-install-card{width:min(100%,430px);max-height:calc(100dvh - 32px);overflow:auto;box-sizing:border-box;padding:24px;background:linear-gradient(135deg,#203d62,#11233c);border:1px solid #42658e;box-shadow:0 20px 60px #0009;border-radius:20px;color:#eaf3ff;text-align:left}
.madrive-pwa-install-card h2{font-size:21px;margin:0 0 12px;color:#fff}
.madrive-pwa-install-card p{font-size:14px;line-height:1.65;margin:9px 0;color:#d9e6f6}
.madrive-pwa-install-card .madrive-pwa-install-note{color:#b8c9df;font-size:12px}
.madrive-pwa-install-help{display:none;padding:10px;background:#0a192e;border-radius:10px;border:1px solid #3d5c81}
.madrive-pwa-install-help.is-visible{display:block}
.madrive-pwa-install-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.madrive-pwa-install-actions button{width:100%;min-width:0;min-height:44px;border-radius:11px;padding:9px 10px;font-size:14px;cursor:pointer;border:1px solid #476588;color:#e9f4ff;background:#263f60}
.madrive-pwa-install-actions .madrive-pwa-install-primary{background:#3d7ded;border:1px solid #4f90fb;color:white;font-weight:700}

/* v1.83: balanced header, logout left of account selector, no header tasks. */
header .head-actions{grid-template-columns:44px 116px 156px 44px!important;gap:6px}
header .head-actions #ownerHeaderLogout{grid-column:1;grid-row:1;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:40px;min-height:40px;padding:0 2px;font-size:11px}
header .head-actions > #accountSelect,header .head-actions > #tgHeadAccountSelect,header .head-actions > #gHeadAccountSelect{grid-column:2!important}
header .head-actions .header-quota{grid-column:3!important}
header .head-actions #showSettings{grid-column:4!important}
header .head-actions #taskBtn{display:none!important}
@media(max-width:650px){header .head-actions{grid-template-columns:clamp(32px,10vw,40px) minmax(0,0.94fr) minmax(0,1.35fr) clamp(32px,10vw,40px)!important;gap:clamp(3px,1vw,5px)}header .head-actions #ownerHeaderLogout{height:clamp(34px,10vw,40px);min-height:34px;font-size:10px}}
.rail-btn{position:relative}
.rail-task-badge{position:absolute;right:1px;top:1px;display:grid;place-items:center;min-width:16px;min-height:16px;line-height:1;font-size:10px;font-weight:700;padding:2px 3px;border:1px solid #78afff;border-radius:99px;background:#245a9f;color:#fff;font-variant-numeric:tabular-nums;z-index:1}
.rail-task-badge.hide{display:none!important}
.owner-nas-folder{display:flex;align-items:center;gap:9px;width:100%;min-height:42px;text-align:left;margin:8px 0;border:1px solid #41658c;border-radius:10px;background:#1c3655;color:#e9f3ff;font-weight:650;padding:10px 12px}
.owner-nas-folder .small{font-weight:400;opacity:.8;font-size:11px;min-width:0}
#ownerNasFolderLayer .modal-card{width:min(100%,560px);max-height:83dvh;overflow:auto}
#ownerNasCrumbs{display:flex;align-items:center;flex-wrap:wrap;margin:12px 0;gap:4px}
.owner-nas-list{display:grid;gap:7px}
.owner-nas-item{box-sizing:border-box;display:flex;gap:8px;align-items:center;justify-content:space-between;min-height:43px;width:100%;text-align:left;padding:10px 12px;border:1px solid #355475;background:#10253e;border-radius:9px;color:#e3efff;overflow-wrap:anywhere}
.owner-nas-item a{font-size:12px;color:#9ccaff;white-space:nowrap}

/* v1.83: same clean upload card layout across all three providers.
   Status data still updates the quota panel; verbose duplicate counters are not shown below upload. */
#tgDrivePanel .upload-card #tgUsageLabel,
#tgDrivePanel .upload-card #tgDriveState,
#gDrivePanel .upload-card #gCapacity {display:none!important}
#filesPanel>.browser-note.hide{display:none!important}
header .head-actions>select:disabled{opacity:.65;cursor:default}
/* v1.84 bilingual language switch, shared by the administrator and NAS user apps. */
.madrive-lang-switch{border:1px solid #466389;background:#183354;color:#eef5ff;border-radius:9px;padding:3px 8px;min-height:25px;min-width:46px;font-size:11px;font-weight:650;cursor:pointer;white-space:nowrap;box-shadow:none}
.brand{position:relative}.brand .madrive-lang-switch{display:block;max-width:76px;margin:3px 0 0;font-size:10px;padding:1px 7px;min-height:22px}
.guest-login-card,.panel:has(>form#f){position:relative}.lang-login{position:absolute;right:16px;top:13px;min-width:64px}

.guest-login-card>.madrive-lang-switch{position:absolute;right:16px;top:13px;width:auto!important;max-width:110px;margin:0!important;padding:5px 8px;min-height:28px}

html:lang(en) .cloud-file-panel .control-card.search-card::before{content:"Search files"}

/* v1.86: only numeric quota values are shown in header, with no repeated label. */
header .header-quota .quota-brief-title{display:none!important}
/* v1.85: owner and NAS guests share one file row; keep size AND time
   beneath the filename on every provider, including narrow Android displays. */
:is(#fileList,#tgFiles,#gFiles)>.browser-file .browser-meta{
 display:block;white-space:normal;overflow-wrap:anywhere;overflow:visible;
 line-height:1.4;font-variant-numeric:tabular-nums;text-overflow:clip;
}
:is(#fileList,#tgFiles,#gFiles)>.browser-file>label .browser-label{min-width:0;flex:1 1 auto}

/* v2.05: consistent themed dialogs and OS-independent bilingual file inputs. */
.madrive-native-dialog{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(2,8,21,.78);backdrop-filter:blur(9px);overscroll-behavior:contain}
.madrive-native-dialog-card{box-sizing:border-box;width:min(100%,470px);max-height:calc(100dvh - 32px);overflow-y:auto;border:1px solid #52739e;border-radius:23px;padding:22px;background:radial-gradient(ellipse at 7% 0%,#27466f 0%,transparent 65%),linear-gradient(155deg,#162945,#0b172c);color:#ebf3ff;box-shadow:0 25px 85px #000b;font:inherit}
.madrive-native-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.madrive-native-dialog-head h2{font-size:19px;line-height:1.35;margin:0;font-weight:720}
.madrive-native-dialog-close{font:inherit;color:#d5e9ff;background:#233c5d;border:1px solid #466891;border-radius:11px;min-width:37px;min-height:37px;padding:4px 9px;font-size:20px}
.madrive-native-dialog-message{white-space:pre-line;overflow-wrap:anywhere;line-height:1.65;color:#bfd1e9;margin:17px 0;font-size:14px}
.madrive-native-dialog-form{display:flex;flex-direction:column;gap:15px}
.madrive-native-dialog-input{width:100%;min-height:46px;box-sizing:border-box;background:#0a192e;color:#f0f7ff;border:1px solid #476b99;border-radius:12px;padding:12px;font:inherit;outline-offset:2px}
.madrive-native-dialog-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:4px}.madrive-native-dialog-buttons button{min-height:45px;border-radius:12px;background:#213957;color:#e9f3ff;border:1px solid #44658e;font:inherit;font-weight:650}.madrive-native-dialog-buttons button:last-child:first-child{grid-column:1/-1}
.madrive-native-dialog-buttons .madrive-native-dialog-primary{background:linear-gradient(100deg,#347fe3,#335cc2);border-color:#528de7;color:#fff}.madrive-native-dialog-buttons .is-danger{background:#803648;border-color:#a95a6b}
.madrive-file-picker{display:flex;align-items:center;gap:9px;min-width:0;width:100%;flex:1 1 auto;border:1px solid #345177;border-radius:12px;background:#0a192e;padding:6px;min-height:46px;box-sizing:border-box}
.madrive-file-picker-button{white-space:nowrap;flex-shrink:0;min-height:34px!important;border-radius:9px!important;border:1px solid #416a9d!important;background:#233d5f!important;color:#e7f2ff!important;font-size:12px!important;padding:6px 10px!important}
.madrive-file-picker-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#b8cde6}
.madrive-file-input-native,.cloud-file-panel .upload-card .upload-row input[type=file].madrive-file-input-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;clip-path:inset(50%)!important;overflow:hidden!important;min-width:0!important;padding:0!important;border:0!important}
/* Make all HTML dialog cards use the same elegant backdrop; guest's inline CSS is overridden by the more specific selectors. */
body .modal-card,body .guest-modal-card,body .nas-edit-dialog,body .madrive-pwa-install-card{background:radial-gradient(ellipse at 7% 0%,#27466f 0%,transparent 65%),linear-gradient(155deg,#162945,#0b172c);border:1px solid #52739e;border-radius:22px;box-shadow:0 25px 85px #000b;color:#eef5ff}
body .modal-layer,body .guest-modal-root{backdrop-filter:blur(7px)}
@media(max-width:430px){.madrive-native-dialog-card{padding:18px 15px}.madrive-file-picker{gap:6px;padding:5px}.madrive-file-picker-button{padding:5px 8px!important}.madrive-file-picker-name{font-size:11px}}

/* v2.05: center the used / total capacity values in both app headers. */
header .head-actions .header-quota .quota-brief{justify-content:center!important;}
header .head-actions .header-quota .quota-brief-text{flex:1 1 auto!important;text-align:center!important;justify-content:center!important;}
#app>header .head-actions #quotaBrief{justify-content:center!important;}
#app>header .head-actions #quota{display:block;flex:1 1 auto;text-align:center!important;}
/* The owner NAS index now navigates inside the same file table, not a modal. */
:is(#fileList,#tgFiles,#gFiles)>.owner-nas-inline-row .browser-label{min-width:0;flex:1 1 auto;}
:is(#fileList,#tgFiles,#gFiles)>.owner-nas-inline-row .browser-meta{font-variant-numeric:tabular-nums;white-space:normal;}

/* v2.05: owner NAS personal-file view, using the existing dark dialog. */
.nas-owner-files-dialog{width:min(100%,760px)}
.nas-owner-files-list{display:grid;gap:9px;margin-top:10px}
.nas-owner-files-row{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1px solid #355475;border-radius:10px;padding:10px;background:#10253e}
.nas-owner-files-detail{flex:1 1 150px;min-width:0;display:grid;gap:4px;overflow-wrap:anywhere}
.nas-owner-files-detail strong{font-size:13px}.nas-owner-files-detail small{color:#9eb8d8;line-height:1.5}
.nas-owner-files-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;flex:0 1 290px}
.nas-owner-files-actions button{min-width:0;min-height:38px;padding:5px 3px;font-size:12px}
.nas-owner-files-pages{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px}
.nas-owner-files-pages button{min-height:39px}
@media(max-width:520px){.nas-owner-files-dialog{padding:15px 12px}.nas-owner-files-actions{flex:1 1 100%}}

/* Share result must be above the personal-files viewer when both are open. */
body:has(.nas-owner-files-layer) #madriveShareResult{z-index:2600}


/* v2.18: NAS user search, tidy account cards and compact, touch-friendly pagination. */
#nasLayer .nas-users-heading{margin-top:17px;margin-bottom:10px}
#nasLayer .nas-user-searchbar{background:rgba(11,25,47,.32);border:1px solid #344d71;border-radius:13px;padding:12px;margin-bottom:7px}
#nasLayer .nas-user-searchbar>label{display:block;font-weight:600;font-size:12px;color:#c1d6f4;margin:0 0 7px}
#nasLayer .nas-user-search-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-width:0}
#nasLayer #nasUserSearch{width:100%;min-width:0;height:42px;box-sizing:border-box;border-radius:10px;padding:0 12px;background:#0c182c;border:1px solid #3a5277;color:#f0f6ff;outline-offset:2px}
#nasLayer #nasUserSearch:focus-visible{outline:2px solid #71a9ff;border-color:#71a9ff}
#nasLayer #nasUserSearchClear{min-width:72px;height:42px;padding:0 14px;white-space:nowrap}
#nasLayer .nas-user-match-count{font-size:12px;min-height:19px;margin:7px 3px 9px;color:#aebfd9}
#nasLayer .nas-user-list{min-width:0;display:grid;gap:10px}
#nasLayer #nasPolicyUsers .browser-file.nas-user-row{border:1px solid #314e74!important;border-radius:13px;background:linear-gradient(140deg,rgba(42,72,113,.46),rgba(18,38,68,.78));padding:13px!important;box-sizing:border-box;margin:0;box-shadow:0 2px 8px rgba(0,0,0,.07)}
#nasLayer #nasPolicyUsers .nas-user-row>.browser-label{padding-bottom:4px;min-width:0;color:#ccdbef}
#nasLayer .nas-user-account{display:block;margin:0 0 5px;font-size:15px;color:#f0f6ff;font-weight:680;overflow-wrap:anywhere;line-height:1.35}
#nasLayer .nas-user-details{font-size:12px;line-height:1.55;color:#aebfd9;overflow-wrap:anywhere}
#nasLayer #nasPolicyUsers .nas-user-row>button{min-width:0!important;min-height:42px!important;white-space:normal!important;overflow-wrap:anywhere;text-overflow:unset!important;padding:6px 5px!important;font-size:clamp(11px,2.2vw,13px)!important;line-height:1.2}
#nasLayer .nas-user-empty{text-align:center;padding:26px 10px;color:#a8bcd6;border:1px dashed #355174;border-radius:12px;margin:0}
#nasLayer .nas-user-pagination{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:9px;margin-top:12px;padding:10px 5px 0;border-top:1px solid #2f486c}
#nasLayer .nas-user-pagination>button{min-width:0;max-width:160px;width:100%;height:40px;padding:6px 9px}
#nasLayer .nas-user-pagination>button:last-child{justify-self:end}
#nasLayer .nas-user-page-count{font-size:12px;white-space:nowrap;color:#bacce6;text-align:center;font-variant-numeric:tabular-nums}
#nasLayer .nas-user-pagination>button:disabled{opacity:.36;cursor:default}
@media(max-width:430px){#nasLayer .nas-user-searchbar{padding:9px}#nasLayer .nas-user-pagination{gap:5px}#nasLayer .nas-user-pagination>button{font-size:12px;padding:5px 4px}}
