:root{color:#172033;font-synthesis:none;background:#f5f7fb;font-family:Inter,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}.shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}aside{background:#fff;border-right:1px solid #e2e7f0;flex-direction:column;height:100vh;padding:24px 14px;display:flex;position:sticky;top:0;overflow:hidden}.brand-mark{color:#14213d;align-items:center;gap:10px;padding:0 8px 24px;font-size:21px;font-weight:750;display:flex}.brand-mark svg{color:#1565f5;width:27px;height:27px}nav{gap:8px;display:grid}nav button{color:#515d72;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;padding:12px 14px;display:flex}nav button svg{width:19px}nav button.active{color:#075ce5;background:#edf4ff;font-weight:650}.folder-navigation{border-top:1px solid #edf0f5;flex-direction:column;min-height:0;margin-top:24px;padding-top:18px;display:flex}.folder-navigation-title{color:#7c8799;letter-spacing:.08em;justify-content:space-between;align-items:center;padding:0 8px 9px 12px;font-size:11px;font-weight:700;display:flex}.folder-navigation-title>div{gap:2px;display:flex}.folder-navigation-title button{color:#6b778b;background:0 0;border:0;border-radius:5px;place-items:center;width:28px;height:28px;display:grid}.folder-navigation-title button:hover{color:#1465f4;background:#f0f4fa}.folder-navigation-title svg{width:15px}.folder-list{min-height:0;overflow:auto}.folder-entry{color:#58657a;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:9px;width:100%;min-height:38px;padding:8px 10px 8px 14px;display:flex}.folder-entry:hover{background:#f5f7fb}.folder-entry.active{color:#075ce5;background:#edf4ff;font-weight:650}.folder-entry svg{flex:none;width:16px}.folder-entry span{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:12px;overflow:hidden}.folder-entry em{color:#9aa4b3;font-size:10px;font-style:normal}.workspace{min-width:0}.workspace>header{background:#fff;border-bottom:1px solid #e2e7f0;justify-content:space-between;align-items:center;height:74px;padding:0 32px;display:flex}.workspace header h1{margin:0 0 3px;font-size:21px}.workspace header p{color:#7b879a;margin:0;font-size:12px}.header-actions{align-items:center;gap:20px;display:flex}.connection{align-items:center;gap:8px;font-size:13px;display:flex}.connection i{border-radius:50%;width:8px;height:8px}.connection.online i{background:#18a765}.connection.offline i{background:#e7a11a}.ghost{color:#48546a;background:0 0;border:0;align-items:center;gap:8px;display:flex}.ghost svg{width:18px}.content{max-width:1500px;margin:auto;padding:20px 32px 40px}.upload-grid{grid-template-columns:1.05fr 1fr;gap:16px;display:grid}.drop-zone,.upload-queue{background:#fff;border:1px solid #dce3ed;border-radius:9px;height:270px}.drop-zone{border:1.5px dashed #7ba6f8;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.drop-zone.dragging{background:#edf5ff;border-color:#1465f4}.drop-zone>svg{color:#1768f5;width:43px;height:43px}.drop-zone strong{font-size:16px}.drop-zone span{color:#778397;font-size:12px}.upload-destination{gap:8px;width:min(430px,100% - 32px);display:flex}.upload-target{color:#647086;background:#fff;border:1px solid #d9e1ed;border-radius:6px;flex:1;align-items:center;gap:8px;min-width:0;height:38px;padding:0 10px;display:flex}.upload-target svg{flex:none;width:17px}.upload-target select{color:#344157;background:0 0;border:0;outline:0;width:100%;min-width:0;font-size:12px}.upload-destination>.icon{flex:none;height:38px}.primary{color:#fff;background:#1465f4;border:0;border-radius:6px;justify-content:center;align-items:center;gap:7px;padding:10px 22px;font-weight:650;display:inline-flex}.primary:disabled{opacity:.45;cursor:not-allowed}.primary svg{width:16px}.upload-queue{overflow:auto}.upload-queue.empty{color:#8490a3;flex-direction:column;justify-content:center;align-items:center;display:flex}.upload-queue.empty p{font-size:12px}.queue-title{border-bottom:1px solid #e8ecf3;justify-content:space-between;align-items:center;height:46px;padding:0 18px;font-size:13px;display:flex}.queue-title span{color:#7a8597}.queue-row{border-bottom:1px solid #edf0f5;align-items:center;gap:13px;height:88px;padding:12px 18px;display:flex}.queue-row>svg{color:#1465f4;width:25px}.queue-meta{flex:1;min-width:0}.queue-meta strong,.queue-meta span{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.queue-meta strong{font-size:13px}.queue-meta span{color:#748096;margin-top:4px;font-size:11px}.progress{background:#edf0f5;border-radius:4px;height:4px;margin-top:8px}.progress i{background:#1465f4;border-radius:4px;height:100%;display:block}.success{color:#18a765}.warning,.message{border-radius:7px;justify-content:space-between;align-items:center;min-height:48px;margin-top:16px;padding:10px 16px;font-size:13px;display:flex}.warning{color:#855a08;background:#fff9ec;border:1px solid #efbd55}.warning button{color:#855a08;background:#fff;border:1px solid #e7a832;border-radius:5px;padding:6px 12px}.message{color:#234c8f;background:#eef5ff;border:1px solid #9bbcf6}.message button{color:inherit;background:0 0;border:0}.message svg{width:17px}.toolbar{align-items:center;gap:14px;margin:20px 0 16px;display:flex}.selection{color:#59657a;align-items:center;gap:12px;font-size:12px;display:flex}.check{display:inline-flex}.check input{opacity:0;pointer-events:none;position:absolute}.check span{background:#fff;border:1px solid #c7cfdd;border-radius:4px;width:17px;height:17px;display:block}.check input:checked+span{background:#1465f4;border-color:#1465f4;box-shadow:inset 0 0 0 4px #1465f4}.check input:checked+span:after{content:"";border-bottom:2px solid #fff;border-left:2px solid #fff;width:8px;height:4px;margin:4px 3px;display:block;transform:rotate(-45deg)}.compact{padding:8px 13px;font-size:12px}.search{background:#fff;border:1px solid #d9e0ea;border-radius:6px;align-items:center;gap:8px;width:min(330px,35vw);height:37px;margin-left:auto;padding:0 11px;display:flex}.search svg{color:#778398;width:17px}.search input{border:0;outline:0;width:100%;font-size:12px}.icon{color:#4d596e;background:#fff;border:1px solid #d9e0ea;border-radius:6px;justify-content:center;align-items:center;width:35px;height:35px;display:inline-flex}.icon svg{width:17px}.icon.danger-icon{color:#c73b47}.icon.danger-icon:hover{background:#fff5f5;border-color:#e3a7ad}.icon.plain{border:0}.file-grid{grid-template-columns:repeat(3,minmax(260px,1fr));gap:15px;display:grid}.file-card{background:#fff;border:1px solid #dfe5ee;border-radius:8px;min-width:0;padding:16px;transition:all .18s;position:relative}.file-card:hover{border-color:#aebbd0;box-shadow:0 6px 18px #28395412}.file-card.selected{border-color:#1465f4;box-shadow:0 0 0 2px #1465f414}.card-top{justify-content:space-between;display:flex}.card-operations{gap:7px;display:flex}.card-operation{color:#40506a;background:#fff;border:1px solid #dfe5ee;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.card-operation:hover{background:#f7f9fc;border-color:#9eb0c9}.card-operation.danger{color:#c73b47}.card-operation.danger:hover{background:#fff5f5;border-color:#e3a7ad}.card-operation:disabled{opacity:.5;cursor:not-allowed}.card-operation svg{width:16px}.file-heading{align-items:center;gap:12px;margin-top:2px;display:flex}.file-type-icon{color:#1465f4;flex:none;width:35px;height:35px}.file-heading div{min-width:0}.file-heading h3{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:14px;overflow:hidden}.file-heading p{color:#929bad;white-space:nowrap;text-overflow:ellipsis;margin:5px 0 0;font-size:10px;overflow:hidden}.file-properties{margin:17px 0 15px;position:relative}.file-meta{color:#697589;min-width:0;margin:0;font-size:12px}.file-meta div{grid-template-columns:68px 1fr;margin:7px 0;display:grid}.file-meta div:nth-child(-n+2){padding-right:72px}.file-meta dt:after{content:"："}.file-meta dd{color:#3f4b61;white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.file-meta .file-hash dd{white-space:normal;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;line-height:1.45}.file-extension{text-align:center;background:#f7faff;border:1px solid #dbe4f2;border-radius:8px;min-width:58px;padding:9px 10px;position:absolute;top:5px;right:0;box-shadow:0 5px 14px #2d466e14}.file-extension strong{color:#1465f4;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;font-weight:750;display:block}.file-actions{display:flex}.link-field{color:#657188;white-space:nowrap;text-overflow:ellipsis;border:1px solid #dfe5ee;border-right:0;border-radius:6px 0 0 6px;flex:1;min-width:0;height:35px;padding:0 9px;font-size:10px;line-height:33px;overflow:hidden}.file-actions .icon{border-radius:0}.file-actions .icon:last-child{border-radius:0 6px 6px 0}.empty-state{color:#8490a3;background:#fff;border:1px dashed #dce3ed;border-radius:8px;place-items:center;height:260px;display:grid}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-page{background:#f3f6fb;place-items:center;min-height:100vh;display:grid}.login-panel{background:#fff;border:1px solid #dde4ed;border-radius:10px;width:min(390px,100vw - 32px);padding:34px;box-shadow:0 18px 45px #1f314f17}.login-panel .brand-mark{padding:0 0 30px}.login-panel h1{margin:0 0 7px;font-size:24px}.login-panel>p{color:#788499;margin:0 0 28px;font-size:13px}.login-panel label{color:#4c586d;margin-top:16px;font-size:12px;display:block}.login-panel input{border:1px solid #d4dce8;border-radius:6px;outline:0;width:100%;height:42px;margin-top:7px;padding:0 11px}.login-panel input:focus{border-color:#1465f4;box-shadow:0 0 0 3px #e8f0ff}.wide{width:100%;margin-top:22px}.form-error{color:#bd2731;background:#fff0f1;border-radius:5px;margin-top:14px;padding:9px 10px;font-size:12px}.message.error{color:#a72a35;background:#fff1f2;border-color:#efb5ba}.success-message{color:#167744;background:#edf9f2;border-color:#9bd4b2}.modal-backdrop{z-index:50;background:#121b2b75;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-dialog{background:#fff;border-radius:11px;width:min(430px,100%);padding:28px;box-shadow:0 24px 70px #0f192840}.qr-dialog{text-align:center;background:#fff;border-radius:14px;width:min(390px,100%);padding:28px;position:relative;box-shadow:0 24px 70px #0f192840}.qr-close{color:#59657a;background:#f2f5f9;border:0;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:14px;right:14px}.qr-close:hover{background:#e8edf5}.qr-close svg{width:17px}.qr-dialog-icon{color:#1465f4;background:#edf4ff;border-radius:50%;place-items:center;width:46px;height:46px;margin:0 auto;display:grid}.qr-dialog-icon svg{width:22px}.qr-dialog h2{margin:14px 0 5px;font-size:20px}.qr-file-name{color:#667287;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;overflow:hidden}.qr-code-frame{background:#fff;border:1px solid #e1e7f0;border-radius:12px;place-items:center;width:252px;height:252px;margin:20px auto 14px;display:grid}.qr-code-frame svg{width:220px;height:220px}.qr-download-url{color:#7a8598;overflow-wrap:anywhere;margin:0;font-size:11px;line-height:1.6}.qr-dialog .wide{margin-top:20px}.dialog-icon{color:#c43643;background:#fff0f1;border-radius:50%;place-items:center;width:46px;height:46px;display:grid}.dialog-icon svg{width:21px}.confirm-dialog h2{margin:18px 0 8px;font-size:20px}.confirm-dialog p{color:#657086;margin:0;font-size:13px;line-height:1.7}.confirm-dialog p strong{color:#263248;word-break:break-all}.folder-dialog label{color:#4c586d;margin-top:18px;font-size:12px;display:block}.folder-dialog input{border:1px solid #d4dce8;border-radius:6px;outline:0;width:100%;height:42px;margin-top:7px;padding:0 11px}.folder-dialog input:focus{border-color:#1465f4;box-shadow:0 0 0 3px #e8f0ff}.dialog-icon.folder-icon{color:#1465f4;background:#edf4ff}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.secondary,.danger-button{border-radius:6px;padding:9px 16px;font-weight:650}.secondary{color:#435066;background:#fff;border:1px solid #d5dce7}.danger-button{color:#fff;background:#c93743;border:0;align-items:center;gap:7px;display:flex}.danger-button svg{width:16px}@media (width<=1050px){.file-grid{grid-template-columns:repeat(2,minmax(260px,1fr))}.upload-grid{grid-template-columns:1fr}.upload-queue{height:auto;min-height:120px}.drop-zone{height:250px}}@media (width<=720px){.shell{grid-template-columns:1fr}aside{display:none}.workspace>header{padding:0 18px}.content{padding:16px}.header-actions .connection{display:none}.toolbar{flex-wrap:wrap}.selection{width:100%}.search{flex:1;width:auto;margin-left:0}.file-grid{grid-template-columns:1fr}.upload-grid{gap:12px}.drop-zone{text-align:center;height:200px;padding:16px}.qr-dialog{padding:24px 20px}.qr-code-frame{aspect-ratio:1;width:min(252px,100%);height:auto}}
