#local-toast{position:fixed;right:24px;top:74px;max-width:min(560px,90vw);padding:14px 20px;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--primary);box-shadow:0 8px 28px #0002;border-radius:10px;z-index:99999;white-space:pre-wrap}#local-toast.error{border-color:var(--danger)}[hidden]{display:none!important}.local-advanced{margin-top:18px;border-top:1px dashed var(--border-light);padding-top:14px;color:var(--text-secondary);font-size:12px}.local-advanced summary{cursor:pointer;margin-bottom:12px}.local-advanced select{padding:10px;color:var(--text-primary);border:1px solid var(--border-light);background:var(--bg-input);border-radius:8px}.local-check{display:flex;gap:8px;align-items:center;margin:9px 0}.local-check input{width:16px;height:16px}.local-rename{margin-left:auto;padding:4px 8px;cursor:pointer}.local-letter-icon{display:grid;place-items:center;background:#7364ff12;color:var(--primary);border-radius:7px;font-size:21px}.part-item{gap:10px}.res-item p{padding:12px;color:var(--text-primary)}#personal-pan-qr img{background:white;max-width:100%}input:disabled{cursor:not-allowed;opacity:.5}

@media(min-width:769px) and (max-width:1200px){.dock-action-row{flex-wrap:wrap!important}.dock-action-row>input#dock-link-input{min-width:170px!important}.dock-action-row>button{flex-shrink:0}.dock-wrapper{max-width:calc(100vw - 280px)}.scroll-container{padding-bottom:220px!important}}

#personal-pan-list .personal-pan-row{display:block;width:100%;min-width:0;max-width:100%;text-align:left;white-space:normal;word-break:break-word;padding:14px 16px;line-height:1.6;font-size:14px;border:1px solid var(--border-light);border-radius:8px;background:var(--bg-card);color:var(--text-primary);margin:6px 0;cursor:pointer}#personal-pan-qr-btn:disabled{opacity:.45;cursor:not-allowed}

#local-login-method,#local-password-form input:not([type=checkbox]){width:100%;box-sizing:border-box;padding:10px;margin:6px 0;border:1px solid var(--border-light);border-radius:7px}#local-password-form{padding:8px 0}#local-password-form button{width:100%;padding:10px;border:0;border-radius:8px;background:var(--primary);color:white}#local-password-form button:disabled{opacity:.45}#local-password-form label{display:block;font-size:12px}#local-password-form .local-check{display:flex;font-size:11px}
#personal-pan-modal .personal-pan-head{flex-shrink:0;min-height:56px}#personal-pan-modal .personal-pan-body{min-height:0;overflow:hidden;flex:1}#personal-pan-modal .personal-pan-shell{height:100%;min-height:0}#personal-pan-modal .personal-pan-account-panel{min-height:0;overflow-y:auto}#personal-pan-modal .personal-pan-modal-box{max-height:90vh;overflow:hidden}

#local-sms-form{padding:8px 0;font-size:12px}#local-sms-form input:not([type=checkbox]){width:100%;box-sizing:border-box;padding:10px;margin:6px 0;border:1px solid var(--border-light);border-radius:7px}#local-sms-form button{width:100%;padding:10px;margin:6px 0;background:var(--primary);color:white;border:0;border-radius:8px}#local-sms-form button:disabled{opacity:.45}

.local-alist-entry{padding:10px 16px;border:1px solid #6366f1;border-radius:8px;color:#4f46e5;background:#eef2ff;cursor:pointer;margin:8px 0;font-weight:600}

/* Keep cloud controls usable when the modal is shorter than its contents. */
#personal-pan-modal .personal-pan-account-panel > *{flex-shrink:0}
#personal-pan-modal .personal-pan-select{box-sizing:border-box;display:block;width:100%;height:44px;min-height:44px;flex:0 0 auto;padding:0 12px;font-family:inherit;font-size:14px;line-height:normal}
#personal-pan-modal .personal-pan-select option{font-family:inherit;font-size:14px}
#personal-pan-modal .personal-pan-account-panel{overflow-y:auto;overscroll-behavior:contain}

/* One grid keeps expanded cloud icons in a continuous row-major order. */
#ecosystem-grid.nodes-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px;padding:10px 0}
#pan-drawer-container:not(.expanded) #ecosystem-grid>.node-item:nth-child(n+9){display:none}

.site-announcement{grid-column:1/-1;display:flex;gap:18px;padding:24px;border:1px solid #ddd9ff;border-radius:18px;background:linear-gradient(120deg,#f1edff,#fff 80%);box-shadow:0 12px 30px #6655aa12;margin-bottom:20px}.site-announcement[hidden]{display:none!important}.announcement-badge{height:32px;padding:4px 12px;border-radius:9px;background:#6953e9;color:white;font-weight:700;white-space:nowrap}.announcement-copy{min-width:0}.announcement-copy h3{margin:0 0 8px;color:#29284b;font-size:17px}.announcement-copy p{margin:0 0 10px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;color:#5e6079}.announcement-copy small{color:#9294aa}

#home-wallet{width:min(800px,94vw);max-height:85vh;overflow:auto;box-sizing:border-box;border:1px solid #e2def6;border-radius:20px;padding:26px;background:#fff;color:#30334c;box-shadow:0 30px 100px #16102b45}#home-wallet::backdrop{background:#17203d80;backdrop-filter:blur(3px)}.wallet-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.wallet-head h2{margin:0}.wallet-summary{display:grid;gap:6px;padding:24px;margin:20px 0;border-radius:14px;background:linear-gradient(125deg,#6150d3,#8c6de7);color:white}.wallet-summary strong{font-size:34px}.wallet-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.wallet-grid form{padding:20px;border:1px solid #e2e5f1;border-radius:12px;background:#fafaff}#home-wallet label{display:grid;gap:8px}#home-wallet input,#home-wallet select{box-sizing:border-box;width:100%;padding:10px;border:1px solid #cbd1e3;border-radius:7px;font:inherit}#home-wallet button{padding:10px 14px;background:#6651dc;color:white;border:0;border-radius:7px;cursor:pointer}#home-wallet button:disabled{opacity:.5}#home-wallet p{font-size:14px;line-height:1.7}#wallet-message{color:#a33517;background:#fff3de;border-radius:8px;padding:10px}#wallet-message:empty{display:none}#wallet-ledger{max-height:220px;overflow:auto}#wallet-ledger p{padding:8px;border-bottom:1px solid #eee}@media(max-width:600px){.wallet-grid{grid-template-columns:1fr}}

.partition-prompt{border:1px solid #ddd9f1;border-radius:16px;padding:24px;width:min(420px,90vw);box-shadow:0 20px 70px #20204040}.partition-prompt::backdrop{background:#18213b80}.partition-prompt input{width:100%;box-sizing:border-box;padding:12px;border:1px solid #cac7e0;border-radius:8px}.partition-prompt form>div{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.partition-prompt button{padding:10px 22px;background:#6551d8;color:white;border:0;border-radius:8px}.partition-prompt button:first-child{background:#efedf8;color:#655587}button[data-click="doRecharge()"]{background:#f39a00!important;color:white!important;border:0!important;font-weight:700}

/* Center native dialogs despite the original page reset. */
dialog.partition-prompt,dialog#home-wallet{position:fixed!important;inset:auto!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;margin:0!important;max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);overflow:auto;box-sizing:border-box}
#disp-exp{text-align:center!important;width:100%;color:var(--success,#059669)!important}#disp-exp.authorization-expired{color:#dc2626!important}
#local-toast{left:50%;top:50%;right:auto;transform:translate(-50%,-50%);box-sizing:border-box;text-align:center;max-height:80dvh;overflow:auto}

/* Toasts never intercept clicks on the underlying form. */
#local-toast{pointer-events:none;user-select:none}

.local-unified-preview{position:relative!important;width:100%!important;max-width:860px!important;height:auto!important;aspect-ratio:860/480!important;min-height:0!important;padding:0!important;border:1px solid #8b713b;border-radius:0!important;overflow:hidden;color:#e4c67e;background-position:center!important}.unified-piece{position:absolute;box-sizing:border-box;display:flex;align-items:center;font-size:clamp(9px,1.1vw,13px);font-family:"Microsoft YaHei",sans-serif}.unified-title{font-size:clamp(17px,2vw,24px);font-weight:700}.unified-button{justify-content:center;border:1px solid #dab96f;background:#181e27;color:#ffe29e}.unified-disabled{background:#2c313a;border-color:#6f7784;color:#cdd3dc}.unified-path{background:#13181f;border:1px solid #666;color:white;padding:0 6px}.unified-progress{background:#ddd}.local-resource-preview{width:min(100%,620px)!important;max-width:none!important;padding:16px}.local-resource-preview img{display:block}

.extra-backup-row{display:flex;gap:12px;margin:12px 0;align-items:center}.extra-backup-row .backup-url{flex:1;min-width:80px}.extra-backup-row .backup-password{width:130px}.extra-backup-row button{white-space:nowrap;padding:10px;color:#c33;background:#fff;border:1px solid #e5d4d4;border-radius:8px}

#extra-backup-links,.route-add{grid-column:1 / -1}.route-name{width:100px!important;flex:0 0 100px!important;min-width:70px!important}.extra-backup-row .btn{color:var(--text-primary);border-color:var(--border-color)}.extra-backup-row .backup-password{width:110px}.client-links-config{margin-top:18px}.downloader-link-row .route-name{align-self:stretch}@media(max-width:900px){.extra-backup-row{flex-wrap:wrap}.extra-backup-row .backup-url{flex-basis:45%}}

/* One grid for ALL routes, independent of the original two-column form. */
#cfg-single-links-group{display:flex!important;flex-direction:column!important;gap:14px!important;min-width:0}
#cfg-single-links-group .route-table{width:100%;min-width:0}
#cfg-single-links-group .route-head,#cfg-single-links-group .route-row{display:grid!important;grid-template-columns:112px 126px minmax(180px,1fr) 100px 64px;gap:12px;align-items:center;margin:0 0 12px}
#cfg-single-links-group .route-head{color:#64748b;font-size:12px;margin-bottom:8px}
#cfg-single-links-group .route-row>input,#cfg-single-links-group .route-row>button{box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:none!important;height:42px!important;min-height:42px!important;margin:0!important;padding:0 12px!important;font:inherit;font-size:13px;border-radius:8px;border:1px solid #dbe3ef;outline:none;background:#f8fafc;color:#183153;flex:initial!important}
#cfg-single-links-group .route-row>input:focus{border-color:#6554ee;box-shadow:0 0 0 3px #6554ee18}
#cfg-single-links-group .route-row>.route-login{background:white;color:#5141cf;border-color:#cbc5f7;white-space:nowrap;cursor:pointer}
#cfg-single-links-group .route-row>.route-remove{background:#fff;color:#c54545;border-color:#efd6d6;padding:0 6px!important;cursor:pointer}
#cfg-single-links-group .route-row>.route-remove:disabled{background:#f5f7fb;border-color:#e5eaf2;color:#94a3b8;cursor:default}
#cfg-single-links-group .route-add{align-self:flex-start;height:40px;padding:0 18px;border-radius:8px;background:#f5f3ff;color:#5945d6;border:1px dashed #aaa0ec;font-size:13px;cursor:pointer}
#cfg-single-links-group .route-hint{margin:0;color:#7b89a0;font-size:12px;line-height:1.6}
#extra-backup-links{min-width:0}.client-links-config{display:grid;grid-template-columns:1fr 1fr;gap:16px}.client-links-config>.form-col:first-child{grid-column:1/-1}
@media(max-width:1100px){#cfg-single-links-group .route-head,#cfg-single-links-group .route-row{grid-template-columns:96px 112px minmax(120px,1fr) 80px 56px;gap:8px}}
@media(max-width:700px){#cfg-single-links-group .route-head{display:none!important}#cfg-single-links-group .route-row{grid-template-columns:1fr 1fr 60px;padding:12px;background:#fafbff;border:1px solid #e5e9f4;border-radius:10px}#cfg-single-links-group .route-row>input:nth-child(3){grid-column:1/3;grid-row:2}#cfg-single-links-group .route-row>input:nth-child(4){grid-column:1/3;grid-row:3}#cfg-single-links-group .route-row>button:last-child{grid-column:3;grid-row:1}.client-links-config{grid-template-columns:1fr}}

#cfg-single-links-group .route-hint{text-align:left!important}

.client-links-config input{width:100%;box-sizing:border-box;height:42px;padding:0 12px;border:1px solid #dbe3ef;border-radius:8px;background:#f8fafc;color:#183153;font-size:13px}.music-preview-dialog{width:320px;border:1px solid #dbe3ef;border-radius:12px;padding:24px;color:#183153;position:fixed;inset:0;margin:auto}.music-preview-dialog input{width:100%;margin:18px 0}.music-preview-dialog::backdrop{background:#1118}

.preview-volume-popover{position:absolute;z-index:30;left:78.95%;top:10%;width:12.1%;height:47.1%;box-sizing:border-box;display:flex;align-items:center;flex-direction:column;gap:6px;padding:6px;background:#181e27;border:1px solid #8b713b;color:#fff;box-shadow:0 5px 14px #0004}.preview-volume-popover[hidden]{display:none!important}.preview-volume-popover output{font-size:12px;line-height:22px}.preview-volume-popover input[type=range]{writing-mode:vertical-lr;direction:rtl;appearance:auto;width:30px;height:55%;min-height:0;flex:1;margin:0;accent-color:#1c98e0}.preview-volume-popover button{width:100%;height:24px;flex-shrink:0;border:1px solid #8b713b;background:#181e27;color:#ffe29e;font-size:11px;padding:0}

.preview-volume-popover{position:fixed!important;z-index:2147483000!important;left:auto;top:auto;width:104px!important;height:196px!important;isolation:isolate}

/* SunnyUI client preview: geometry matches the 960 x 620 executable. */
.local-unified-preview{max-width:960px!important;aspect-ratio:960/620!important;border-color:#394862;color:#dae3f5}.unified-title{font-size:clamp(17px,2vw,26px)}.unified-subtitle{font-size:clamp(8px,.9vw,12px);color:#a8b8d4}.unified-button{background:#182233;border:1px solid #394862;border-radius:9px;color:#e1e8fa}.unified-card{background:#151e2e;border:1px solid #394862;border-radius:18px;box-shadow:0 10px 30px #0003}.unified-path{background:#0d1522;border:1px solid #394862;border-radius:7px;color:#e1e8fa;padding:0 14px}.unified-label{color:#acbbd4}.unified-badge{color:#81d7c1;font-size:11px}.unified-check{color:#dce5f7}.unified-progress{background:#2a3549;border-radius:6px}.unified-disabled{background:#202a3b;color:#8895ad}.unified-primary{background:#7882f6;border-color:#8590ff;color:#fff;font-weight:600}.preview-volume-popover{width:170px!important;height:224px!important;padding:16px!important;background:#161f30;border:1px solid #4a5a7d;border-radius:14px;gap:12px}.preview-volume-popover input[type=range]{accent-color:#8693ff}.preview-volume-popover button{height:36px;border:1px solid #394862;background:#182233;color:#e1e8fa;border-radius:9px}

/* Dedicated full-frame background, controls below rather than covering the media. */
.local-unified-preview{aspect-ratio:960/873!important}.unified-media{border:1px solid #313d54;box-sizing:border-box;overflow:hidden}

/* Compact client mirrors an 816 x 673 window. */
.local-unified-preview{aspect-ratio:960/792!important;max-width:816px!important;margin-inline:auto}

/* The modal must not flex-shrink a 673px preview into the old 450px area. */
#preview-modal .modal-box{width:min(860px,96vw)!important;height:auto!important;max-height:96vh!important;overflow:visible!important;flex-shrink:0}
#preview-modal .modal-box>div:first-child{width:100%!important;box-sizing:border-box;flex-shrink:0;height:44px!important;margin-bottom:10px!important}
#preview-window.local-unified-preview{width:min(816px,calc((96vh - 64px)*816/673))!important;max-width:100%!important;flex-shrink:0;transition:none!important;aspect-ratio:816/673!important}
.local-unified-preview .unified-button{cursor:pointer;line-height:1;overflow:hidden}.local-unified-preview .unified-button svg{display:block;flex:none;width:18px;height:18px}.local-unified-preview .unified-disabled{background:#2a354e;border-color:#506286;color:#cdd8ed;cursor:default}.preview-notice-mask{position:absolute;inset:0;background:#0005;display:flex;align-items:center;justify-content:center;z-index:20}.preview-notice{box-sizing:border-box;width:56.4%;height:49.5%;padding:22px;background:#141c2b;border:1px solid #4a5a7d;color:#ebf1fc;display:flex;flex-direction:column;text-align:left}.preview-notice h3{margin:0 0 18px;font-size:18px;color:#ebf1fc}.preview-notice-body{flex:1;min-height:0;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.preview-notice button{align-self:flex-end;margin-top:16px;padding:8px 22px;color:white;background:#707ef4;border:1px solid #707ef4;border-radius:8px;cursor:pointer}

/* Clearer headings and explicit download metrics. */
.local-unified-preview .unified-title{font-family:"DengXian","等线","Microsoft YaHei UI",sans-serif;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:clamp(18px,2vw,25px)}
.local-unified-preview .unified-subtitle{font-family:"Segoe UI","Microsoft YaHei UI",sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.local-unified-preview .unified-label{white-space:pre-line;line-height:1.45}.client-links-config>.form-col:nth-child(2){grid-column:1/-1}

@font-face{font-family:'Downloader Smiley Sans';src:url('/original-assets/SmileySans-Oblique.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
 .local-unified-preview .unified-title{font-family:'Downloader Smiley Sans','Microsoft YaHei UI',sans-serif;font-weight:400;font-style:normal;font-size:clamp(18px,2.1vw,26px)}
 .preview-metric-caption{font-size:clamp(8px,.85vw,11px);color:#91a5c2}
 .preview-metric-value{font-size:clamp(10px,1.1vw,14px);color:#e7effc;white-space:nowrap;overflow:hidden}
 .preview-metric-value.preview-speed{color:#81dbc3;font-weight:700}
 .preview-metric-divider{background:#2a384d}
 
#clientAdvancedOptions[hidden],#clientAdvancedOptions .form-col[hidden]{display:none!important;}

.music-upload-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}.music-upload-row input[type=file]{flex:1 1 240px;min-width:180px}.music-upload-row button{white-space:nowrap;flex:0 0 auto;padding:10px 16px;border:1px solid #dce3f1;border-radius:8px;background:#f7f9fd;color:#183352;cursor:pointer}#cfg-public-music{margin:6px 0;width:100%;min-height:40px}
