*{box-sizing:border-box;margin:0;padding:0}body{font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,sans-serif;background:#ffffff;color:#222;font-size:14px;-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}button{font-family:inherit;cursor:pointer;border:none;background:none}.header{height:56px;display:flex;align-items:center;padding:0 24px;border-bottom:1px solid #f0f0f0;justify-content:space-between;position:sticky;top:0;background:#fff;z-index:100}.logo{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:700;color:#222}.logo .header-logo-img{height:32px;width:auto;object-fit:contain;flex-shrink:0}.logo .header-logo-divider{width:1px;height:22px;background:#d8d8d8}.nav-icons{display:flex;gap:6px}.nav-icons button{width:40px;height:40px;border-radius:8px;display:grid;place-items:center;color:#555;transition:background .15s}.nav-icons button:hover{background:#f5f6f8}.nav-icons button.active{background:#eaf4ff;color:#2c87ff}.header-right{display:flex;align-items:center;gap:10px}.profile{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:20px;cursor:pointer}.profile:hover{background:#f5f6f8}.profile img{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#ffd1a3,#ffb37a);object-fit:cover}.profile-name{font-weight:500;font-size:14px}.profile-wrap{position:relative}.profile-menu{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border-radius:12px;box-shadow:0 12px 32px #0000002e;border:1px solid #ececec;min-width:280px;padding:16px 0 8px;z-index:300;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .15s,transform .15s}.profile-menu.show{opacity:1;transform:translateY(0);pointer-events:auto}.pm-header{display:flex;align-items:center;gap:12px;padding:0 20px 16px;border-bottom:1px solid #f0f0f0}.pm-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#ffd1a3,#ffb37a);flex-shrink:0}.pm-info{flex:1;min-width:0}.pm-name{font-size:15px;font-weight:700;color:#222;margin-bottom:2px}.pm-email{font-size:12.5px;color:#888;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pm-item{padding:10px 20px;font-size:13.5px;color:#333;cursor:pointer;display:flex;align-items:center;gap:10px;transition:background .12s}.pm-item:hover{background:#f5f6f8}.pm-item .ico{width:18px;height:18px;color:#777;flex-shrink:0}.pm-divider{height:1px;background:#f0f0f0;margin:6px 0}.pm-item.logout,.pm-item.logout .ico{color:#ef4444}.icon-btn{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;position:relative;color:#555}.icon-btn:hover{background:#f5f6f8}.badge{position:absolute;top:2px;right:2px;background:#ff4848;color:#fff;font-size:10px;min-width:18px;height:18px;border-radius:9px;display:grid;place-items:center;padding:0 4px;font-weight:700}.layout{display:grid;grid-template-columns:240px 1fr;min-height:calc(100vh - 56px)}.sidebar{border-right:1px solid #f0f0f0;padding:20px 12px 0;display:flex;flex-direction:column;position:sticky;top:56px;height:calc(100vh - 56px);overflow:hidden}.sidebar-menu{flex:1 1 auto;overflow-y:auto;min-height:0;padding-right:2px}.sidebar-menu::-webkit-scrollbar{width:6px}.sidebar-menu::-webkit-scrollbar-thumb{background:#d5d8dd;border-radius:3px}.sidebar-menu::-webkit-scrollbar-thumb:hover{background:#b8bcc3}.menu-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;color:#333;font-size:14.5px;cursor:pointer;transition:background .15s;-webkit-user-select:none;user-select:none}.menu-item:hover{background:#f5f6f8}.menu-item.active{color:#2c87ff;font-weight:700}.menu-item .caret{font-size:11px;width:14px;text-align:center;color:#888;flex-shrink:0}.menu-item.no-caret:not(.sub){padding-left:38px}.menu-item.sub{padding-left:38px;font-size:14px;color:#333;position:relative}.menu-item.sub.active{color:#2c87ff;font-weight:700;background:transparent}.menu-item.sub.active:before{content:"›";position:absolute;left:18px;color:#2c87ff;font-size:14px;font-weight:700}.menu-item.sub.active .ico{color:#2c87ff;fill:#cfe3ff;stroke:#2c87ff}.menu-item .ico{width:20px;height:20px;color:#5a6470;flex-shrink:0}.menu-item.active:not(.sub) .ico{color:#2c87ff}.menu-sub-group{overflow:hidden;transition:max-height .25s ease}.menu-item .count{margin-left:auto;font-size:12px;color:#999}.divider{height:1px;background:#f0f0f0;margin:12px 4px}.storage-box{flex-shrink:0;padding:16px 8px;border-top:1px solid #f0f0f0;background:#fff}.storage-bar{height:6px;background:#f0f0f0;border-radius:3px;margin:8px 6px 12px;overflow:hidden}.storage-bar>div{height:100%;background:#03c75a;border-radius:3px}.storage-box .footer-actions{margin-top:0;padding-top:0}.footer-actions{display:flex;justify-content:space-around;margin-top:12px;padding-top:8px}.footer-actions button{color:#555;font-size:12.5px;display:flex;align-items:center;gap:4px}.main{padding:24px 32px 60px}.main-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.page-title{display:flex;align-items:center;gap:14px;font-size:24px;font-weight:700}.page-title .title-logo{height:36px;width:auto;object-fit:contain;flex-shrink:0}.page-title .title-divider{width:1px;height:22px;background:#d8d8d8}.page-title .title-text{font-size:22px;font-weight:700;color:#222;letter-spacing:-.3px}.breadcrumb{display:none;align-items:center;gap:6px;font-size:15px;color:#555;margin-left:14px}.breadcrumb.show{display:inline-flex}.breadcrumb .back-btn{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#555;cursor:pointer;transition:background .12s}.breadcrumb .back-btn:hover{background:#f0f0f0;color:#2c87ff}.breadcrumb .crumb{cursor:pointer;padding:4px 8px;border-radius:6px;color:#2c87ff;transition:background .12s}.breadcrumb .crumb:hover{background:#eaf4ff}.breadcrumb .crumb.current{color:#222;font-weight:600;cursor:default}.breadcrumb .crumb.current:hover{background:transparent}.breadcrumb .sep{color:#b0b3b8}.file-icon{width:32px;height:32px;flex-shrink:0}.file-icon.grid-size{width:60px;height:60px}.file-icon svg{width:100%;height:100%}.empty-state{text-align:center;padding:80px 20px;color:#999}.empty-state .emoji{font-size:48px;margin-bottom:12px}.empty-state .text{font-size:15px}.empty-state .reset-btn{margin-top:16px;padding:8px 18px;border:1px solid #2c87ff;color:#2c87ff;background:#fff;border-radius:8px;font-size:13.5px;font-weight:500;cursor:pointer}.empty-state .reset-btn:hover{background:#eaf4ff}.filter-status{display:none;align-items:center;gap:10px;margin:-6px 0 18px;padding:10px 14px;background:#f0f7ff;border:1px solid #cfe3ff;border-radius:8px;font-size:13px;color:#2c87ff}.filter-status.show{display:inline-flex}.filter-status .fs-icon{width:16px;height:16px}.filter-status .fs-count{color:#555}.filter-status .fs-clear{margin-left:4px;padding:2px 8px;border-radius:12px;background:#fff;border:1px solid #cfe3ff;color:#2c87ff;cursor:pointer;font-size:12px;font-weight:500;transition:background .12s}.filter-status .fs-clear:hover{background:#eaf4ff}.detail-panel{position:fixed;top:56px;right:-380px;width:360px;height:calc(100vh - 56px);background:#fff;border-left:1px solid #ececec;box-shadow:-4px 0 16px #0000000a;z-index:90;transition:right .25s ease;display:flex;flex-direction:column;overflow:hidden}.detail-panel.show{right:0}.detail-panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px 22px 12px}.detail-panel-header .dp-name{font-size:17px;font-weight:700;color:#222;flex:1;margin-right:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-close{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#555;cursor:pointer;transition:background .12s;flex-shrink:0}.dp-close:hover{background:#f0f0f0}.dp-tabs{padding:0 22px;border-bottom:1px solid #f0f0f0}.dp-tab{display:inline-block;padding:12px 4px;font-size:14.5px;font-weight:500;color:#2c87ff;border-bottom:2px solid #2c87ff;cursor:pointer}.dp-body{flex:1;overflow-y:auto;padding:24px 22px;display:flex;flex-direction:column;min-height:0}.dp-preview{background:#f7f9fb;border-radius:12px;flex:0 0 180px;height:180px;min-height:180px;max-height:180px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;padding:16px;overflow:hidden;position:relative;isolation:isolate}.dp-preview>*{min-width:0;min-height:0;max-width:100%;max-height:100%}.dp-preview svg{width:100px;height:80px;flex-shrink:0}.dp-preview img,.dp-preview .dp-preview-thumb{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:8px}.dp-info{display:grid;grid-template-columns:80px 1fr;row-gap:16px;column-gap:12px;font-size:13.5px;flex-shrink:0;position:relative;z-index:1;background:#fff}.dp-info .dp-label{color:#888;font-weight:400}.dp-info .dp-value{color:#222;word-break:break-all}.dp-preview-folder,.dp-preview-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.dp-preview-folder svg{width:100px;height:80px}.dp-preview-icon .file-icon,.dp-preview-icon .file-icon.grid-size{width:72px;height:72px}.dp-permissions{margin-top:28px;padding-top:24px;border-top:1px solid #f0f0f0}.dp-perm-title{font-size:15px;font-weight:700;color:#222;margin:0 0 8px}.dp-perm-rule,.dp-perm-meta{font-size:13px;color:#666;line-height:1.5;margin:0 0 12px}.dp-perm-sub{font-size:13px;font-weight:600;color:#444;margin:16px 0 8px}.dp-perm-add{display:flex;gap:8px;margin-bottom:12px}.dp-perm-select{flex:1;min-width:0;padding:8px 10px;border:1px solid #e0e0e0;border-radius:8px;font-size:13px}.dp-perm-btn,.dp-perm-save{padding:8px 14px;border-radius:8px;font-size:13px;font-weight:500;border:1px solid #e0e0e0;background:#fff;color:#333;cursor:pointer}.dp-perm-btn:hover,.dp-perm-save:hover{border-color:#2c87ff;color:#2c87ff}.dp-perm-save{width:100%;margin-top:12px;background:#2c87ff;border-color:#2c87ff;color:#fff}.dp-perm-save:hover{background:#1f76eb;color:#fff}.dp-perm-save:disabled{opacity:.6;cursor:not-allowed}.dp-perm-list{list-style:none;margin:0;padding:0}.dp-perm-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 0;border-bottom:1px solid #f4f4f4;font-size:13px}.dp-perm-group{font-weight:600;color:#222;min-width:72px}.dp-perm-row label{display:inline-flex;align-items:center;gap:4px;color:#555;cursor:pointer}.dp-perm-remove{margin-left:auto;padding:4px 8px;font-size:12px;color:#e8423a;background:none;border:none;cursor:pointer}.dp-perm-remove:hover{text-decoration:underline}.dp-close{border:none;background:transparent}.folder.selected{background:#eaf4ff;border-color:#2c87ff;box-shadow:0 0 0 1px #2c87ff inset}.location-modal-content{background:#fff;border-radius:14px;width:560px;max-width:92vw;height:640px;max-height:88vh;display:flex;flex-direction:column;position:relative;box-shadow:0 20px 60px #00000040;transform:scale(.96);transition:transform .2s}.modal-overlay.show .location-modal-content{transform:scale(1)}.lm-header{display:flex;align-items:center;justify-content:space-between;padding:22px 24px 16px;flex-shrink:0}.lm-title{font-size:17px;font-weight:700;color:#222}.lm-tabs{display:flex;gap:18px;font-size:13.5px;color:#c8c8c8}.lm-tab{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .12s}.lm-tab:hover{color:#888}.lm-tab.active{color:#333;font-weight:600}.lm-tab.disabled{cursor:not-allowed;opacity:.5}.lm-body{flex:1;overflow-y:auto;padding:8px 16px;background:#fafbfc;margin:0 24px;border-radius:12px}.lm-root{display:flex;align-items:center;gap:10px;padding:14px 12px;font-size:15px;font-weight:600;color:#222;cursor:pointer;border-radius:8px;-webkit-user-select:none;user-select:none}.lm-root:hover{background:rgba(255,255,255,.6)}.lm-root.selected{background:#eaf4ff;color:#2c87ff}.lm-root-icon{width:26px;height:26px;display:grid;place-items:center;flex-shrink:0}.lm-tree{margin-left:0}.lm-folder{display:flex;align-items:center;gap:6px;padding:10px;cursor:pointer;border-radius:8px;-webkit-user-select:none;user-select:none;transition:background .1s}.lm-folder:hover{background:rgba(255,255,255,.7)}.lm-folder.selected{background:#eaf4ff}.lm-folder.selected .lm-folder-name{color:#2c87ff;font-weight:600}.lm-toggle{width:18px;height:18px;display:grid;place-items:center;color:#aaa;flex-shrink:0;font-size:12px;transition:transform .15s}.lm-toggle.expanded{transform:rotate(90deg)}.lm-toggle.hidden{visibility:hidden}.lm-folder-icon{width:22px;height:22px;flex-shrink:0;display:grid;place-items:center}.lm-folder-icon svg{width:100%;height:100%}.lm-folder-name{font-size:14px;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lm-subtree{margin-left:22px;display:none}.lm-subtree.expanded{display:block}.lm-empty-sub{padding:8px 14px;font-size:12.5px;color:#aaa}.lm-footer{padding:18px 24px 22px;display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}.lm-btn{padding:10px 30px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;background:#fff;border:1px solid #d0d0d0;color:#333;transition:background .12s}.lm-btn:hover:not(:disabled){background:#f5f6f8}.lm-btn.primary{border-color:#d0d0d0;color:#aaa;font-weight:500}.lm-btn.primary:not(:disabled){background:#2c87ff;border-color:#2c87ff;color:#fff;font-weight:600}.lm-btn.primary:not(:disabled):hover{background:#1f76eb}.lm-btn:disabled{opacity:.55;cursor:not-allowed}.delete-modal-content{background:#fff;border-radius:14px;width:460px;max-width:90vw;padding:56px 32px 24px;position:relative;box-shadow:0 20px 60px #00000040;transform:scale(.96);transition:transform .2s;text-align:center}.modal-overlay.show .delete-modal-content{transform:scale(1)}.dlm-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#555;cursor:pointer;background:transparent;border:none;transition:background .12s}.dlm-close:hover{background:#f0f0f0}.dlm-icon{width:46px;height:46px;border-radius:50%;background:#222;color:#fff;display:grid;place-items:center;margin:0 auto 22px;font-size:24px;font-weight:700}.dlm-title{font-size:17px;font-weight:700;color:#222;margin-bottom:16px;line-height:1.5;word-break:keep-all}.dlm-desc{font-size:13.5px;color:#888;line-height:1.6;margin-bottom:28px}.dlm-actions{display:flex;justify-content:center;gap:8px}.dlm-btn{padding:10px 28px;border-radius:8px;font-size:14px;cursor:pointer;font-family:inherit;background:#fff;border:1px solid #d0d0d0;color:#333;transition:all .12s;min-width:76px}.dlm-btn:hover{background:#f5f6f8}.dlm-btn.primary{border-color:#222;font-weight:600}.dlm-btn.primary:hover{background:#f5f6f8}.share-modal-content{background:#fff;border-radius:14px;width:540px;max-width:92vw;padding:28px 28px 22px;position:relative;box-shadow:0 20px 60px #00000040;transform:scale(.96);transition:transform .2s}.modal-overlay.show .share-modal-content{transform:scale(1)}.sh-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#555;cursor:pointer;background:transparent;border:none;transition:background .12s}.sh-close:hover{background:#f0f0f0}.sh-title{text-align:center;font-size:16px;font-weight:700;color:#222;margin:4px 30px 20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sh-section{background:#f7f9fb;border-radius:12px;padding:18px 20px;margin-bottom:16px}.sh-section-title{font-size:15px;font-weight:700;color:#222;margin-bottom:10px}.sh-link-perm-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#777;margin-bottom:10px}.sh-perm-select{color:#2c87ff;cursor:pointer;font-weight:500;text-decoration:underline;text-underline-offset:2px}.sh-link-delete{color:#888;cursor:pointer;font-size:12.5px;text-decoration:underline;text-underline-offset:2px}.sh-link-delete:hover{color:#ef4444}.sh-link-row{display:flex;gap:6px;align-items:center}.sh-link-input{flex:1;padding:9px 12px;border:1px solid #e5e5e8;border-radius:8px;background:#fff;font-size:13px;color:#333;font-family:inherit;outline:none}.sh-link-btn{padding:9px 14px;border-radius:8px;background:#fff;border:1px solid #e5e5e8;font-size:13px;color:#333;cursor:pointer;font-family:inherit;transition:background .12s;white-space:nowrap}.sh-link-btn:hover{background:#f5f6f8}.sh-link-btn.primary{color:#2c87ff;border-color:#b8d4ff;background:#eaf4ff;font-weight:600}.sh-link-btn.primary:hover{background:#d6e8ff}.sh-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;font-size:14px;color:#333}.sh-row+.sh-row{border-top:1px solid #ececec}.sh-row-label{flex:1;color:#333}.sh-row-value{color:#777;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:4px}.sh-row-value:hover{color:#2c87ff}.sh-footer-note{font-size:12.5px;color:#999;text-align:center;margin-top:12px;padding-top:8px}.sh-toggle{position:relative;width:40px;height:22px;background:#d0d0d0;border-radius:11px;cursor:pointer;transition:background .2s;flex-shrink:0}.sh-toggle.on{background:#2c87ff}.sh-toggle:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:left .2s;box-shadow:0 1px 3px #0000002e}.sh-toggle.on:after{left:20px}.sh-divider{height:1px;background:#ececec;margin:6px 0}.sh-section-subtitle{font-size:14px;font-weight:700;color:#222;margin:10px 0 4px}.sh-password-row{display:flex;align-items:center;gap:14px;padding:12px 0}.sh-password-row .sh-row-label{flex-shrink:0}.sh-password-input{flex:1;background:#f1f3f5;border:none;border-radius:8px;padding:9px 14px;font-size:13px;color:#333;font-family:inherit;outline:none;min-width:0;transition:background .12s}.sh-password-input:focus{background:#e8eef3}.sh-password-input::placeholder{color:#aaa}.sh-password-input:disabled{color:#aaa;cursor:not-allowed}.sh-row-value.open .arrow{transform:rotate(180deg)}.sh-row-value .arrow{display:inline-block;transition:transform .15s;font-size:11px}.sh-dropdown{position:absolute;background:#fff;border:1px solid #e8e8e8;border-radius:12px;box-shadow:0 10px 28px #0000001f;padding:6px;min-width:130px;z-index:300;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .12s ease,transform .12s ease}.sh-dropdown.show{opacity:1;transform:translateY(0);pointer-events:auto}.sh-dropdown-item{padding:9px 16px;border-radius:7px;cursor:pointer;font-size:13.5px;color:#333;-webkit-user-select:none;user-select:none;text-align:left}.sh-dropdown-item:hover{background:#f5f6f8}.sh-dropdown-item.selected{color:#2c87ff;font-weight:600}.new-folder-modal-content{background:#fff;border-radius:14px;width:460px;max-width:90vw;padding:32px 32px 24px;position:relative;box-shadow:0 20px 60px #00000040;transform:scale(.96);transition:transform .2s}.modal-overlay.show .new-folder-modal-content{transform:scale(1)}.nfm-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#555;cursor:pointer;background:transparent;border:none;transition:background .12s}.nfm-close:hover{background:#f0f0f0}.nfm-title{text-align:center;font-size:17px;font-weight:700;color:#222;margin-bottom:22px}.nfm-input{width:100%;padding:12px 16px;border:1.5px solid #2c87ff;border-radius:8px;font-size:14.5px;font-family:inherit;outline:none;color:#222;transition:border-color .12s;box-sizing:border-box}.nfm-input:focus{border-color:#1f76eb}.nfm-actions{display:flex;justify-content:center;gap:8px;margin-top:24px}.nfm-btn{padding:9px 26px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;background:#fff;border:1px solid #e0e0e0;color:#333;transition:background .12s}.nfm-btn:hover{background:#f5f6f8}.nfm-btn.primary{background:#fff;color:#333;border-color:#e0e0e0;font-weight:600}.nfm-btn.primary:hover{background:#eaf4ff;border-color:#2c87ff;color:#2c87ff}.toolbar-selection{display:none;align-items:center;gap:8px;margin-bottom:24px;flex-wrap:wrap}.toolbar-selection.show{display:flex}.toolbar.hidden-when-selecting{display:none}.sel-btn{background:#fff;border:1px solid #e5e5e8;color:#333;padding:8px 18px;border-radius:8px;font-weight:500;font-size:13.5px;cursor:pointer;font-family:inherit;transition:background .12s}.sel-btn:hover{background:#f5f6f8}.sel-btn.danger{color:#ef4444}.sel-btn.danger:hover{background:#fef2f2}.sel-more{width:40px;height:36px;border-radius:8px;background:#fff;border:1px solid #e5e5e8;display:grid;place-items:center;cursor:pointer;font-size:16px;color:#555;letter-spacing:1px;transition:background .12s}.sel-more:hover{background:#f5f6f8}.sel-count{margin-left:6px;font-size:14px;font-weight:600;color:#2c87ff}.sel-right-controls{margin-left:auto;display:flex;align-items:center;gap:8px}.sel-more-menu{position:absolute;top:calc(100% + 8px);left:0;background:#fff;border:1px solid #e8e8e8;border-radius:12px;box-shadow:0 12px 32px #00000024,0 4px 8px #0000000f;padding:6px;min-width:170px;z-index:200;opacity:0;transform:scale(.96);pointer-events:none;transition:opacity .12s ease,transform .12s ease}.sel-more-menu.show{opacity:1;transform:scale(1);pointer-events:auto}.sel-more-item{display:flex;align-items:center;padding:10px 14px;border-radius:6px;cursor:pointer;font-size:14px;color:#333;-webkit-user-select:none;user-select:none}.sel-more-item:hover{background:#f5f6f8}.sel-more-divider{height:1px;background:#f0f0f0;margin:5px 6px}.folder .card-check{position:absolute;top:10px;left:10px;width:22px;height:22px;border-radius:5px;background:#fff;border:1.5px solid #d0d0d0;display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .15s,background .12s,border-color .12s;z-index:3}.folder:hover .card-check{opacity:1}.folder.selected .card-check{opacity:1;background:#2c87ff;border-color:#2c87ff}.folder.selected .card-check:after{content:"";width:14px;height:14px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12l5 5L20 7'/></svg>");background-size:contain;background-repeat:no-repeat}.folder .card-star{position:absolute;top:10px;right:10px;width:22px;height:22px;display:grid;place-items:center;cursor:pointer;color:#c5c8cc;opacity:0;transition:opacity .15s,color .12s;z-index:3}.folder:hover .card-star{opacity:.7}.folder .card-star:hover{opacity:1;color:#888}.folder.selected .card-star{opacity:1}.folder .card-star.active{opacity:1;color:#ffb800}.list-row.selected{background:#eaf4ff}.list-row.selected .star-btn{opacity:1}.folder.dragging,.list-row.dragging{opacity:.4}.folder.drop-target{background:#e0f0ff!important;border-color:#2c87ff!important;box-shadow:0 0 0 2px #2c87ff inset,0 8px 24px #2c87ff33!important;transform:scale(1.03)}.list-row.drop-target{background:#e0f0ff!important;box-shadow:0 0 0 2px #2c87ff inset}.crumb.drop-target{background:#2c87ff!important;color:#fff!important;transform:scale(1.05)}.folder.ext-drop-target{background:#e0f0ff!important;border-color:#2c87ff!important;box-shadow:0 0 0 2px #2c87ff inset,0 12px 32px #2c87ff40!important;transform:scale(1.05)}.folder.ext-drop-target:after{content:"📥";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:40px;pointer-events:none;z-index:5;animation:bounceDown .6s infinite alternate}.folder{position:relative}@keyframes bounceDown{0%{transform:translate(-50%,-55%)}to{transform:translate(-50%,-45%)}}.list-row.ext-drop-target{background:#e0f0ff!important;box-shadow:0 0 0 2px #2c87ff inset}.drag-overlay{position:fixed;top:56px;left:240px;right:0;bottom:0;background:rgba(44,135,255,.08);border:3px dashed #2c87ff;border-radius:16px;margin:16px;z-index:1000;display:none;align-items:center;justify-content:center;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.drag-overlay.show{display:flex}.drag-overlay .drag-overlay-inner{background:#fff;padding:28px 40px;border-radius:16px;box-shadow:0 12px 40px #2c87ff33;text-align:center}.drag-overlay .icon{font-size:56px;margin-bottom:8px}.drag-overlay .title{font-size:20px;font-weight:700;color:#2c87ff;margin-bottom:4px}.drag-overlay .desc{font-size:13.5px;color:#777}.toast-container{position:fixed;bottom:32px;left:50%;transform:translate(-50%);z-index:2000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:#2b2f36;color:#fff;padding:12px 20px;border-radius:10px;font-size:13.5px;box-shadow:0 8px 24px #0000002e;display:flex;align-items:center;gap:10px;opacity:0;transform:translateY(20px);transition:opacity .25s,transform .25s;max-width:480px;pointer-events:auto}.toast.show{opacity:1;transform:translateY(0)}.toast .toast-icon{width:20px;height:20px;flex-shrink:0}.toast.success .toast-icon{color:#4ade80}.toast.error .toast-icon{color:#f87171}.toast.info .toast-icon{color:#60a5fa}.image-preview-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.88);z-index:2000;display:none;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.image-preview-modal.show{display:flex;opacity:1}.ipm-image{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px #00000080;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transition:opacity .2s}.ipm-image.loading{opacity:.4}.ipm-close{position:fixed;top:24px;right:24px;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;cursor:pointer;border:none;transition:background .12s}.ipm-close:hover{background:rgba(255,255,255,.25)}.ipm-nav{position:fixed;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;cursor:pointer;border:none;transition:background .12s;font-size:28px;font-family:serif;line-height:1}.ipm-nav:hover{background:rgba(255,255,255,.25)}.ipm-nav:disabled{opacity:.3;cursor:not-allowed}.ipm-prev{left:24px}.ipm-next{right:24px}.ipm-info{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:rgba(0,0,0,.65);color:#fff;padding:10px 18px;border-radius:22px;font-size:13px;max-width:80vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ipm-info .ipm-counter{margin-left:10px;opacity:.7;font-size:12px}.ipm-toolbar{position:fixed;top:24px;left:24px;display:flex;gap:8px}.ipm-toolbar button{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;cursor:pointer;border:none;transition:background .12s}.ipm-toolbar button:hover{background:rgba(255,255,255,.25)}.upload-popup{position:fixed;right:24px;bottom:24px;width:380px;background:#fff;border:1px solid #e8e8e8;border-radius:14px;box-shadow:0 16px 40px #0000001f,0 4px 12px #0000000f;z-index:1500;overflow:hidden;transform:translateY(20px);opacity:0;pointer-events:none;transition:all .25s ease;display:flex;flex-direction:column;max-height:70vh}.upload-popup.show{transform:translateY(0);opacity:1;pointer-events:auto}.upload-popup.minimized{max-height:56px}.upload-popup.minimized .up-body,.upload-popup.minimized .up-actions,.upload-popup.minimized .up-options,.upload-popup.minimized .up-progress-bar{display:none}.up-header{display:flex;justify-content:space-between;align-items:center;padding:18px 18px 8px;flex-shrink:0}.up-title{font-size:16px;font-weight:700;color:#222}.up-title .up-current{color:#2c87ff}.up-controls{display:flex;gap:4px}.up-controls button{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#666;background:transparent;border:none;cursor:pointer;font-size:18px;transition:background .12s}.up-controls button:hover{background:#f0f0f0}.up-options{padding:0 18px 12px;flex-shrink:0}.up-options label{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:#555;cursor:pointer;-webkit-user-select:none;user-select:none}.up-options input[type=checkbox]{width:16px;height:16px;accent-color:#2c87ff;cursor:pointer}.up-progress-bar{height:3px;background:#eef2f6;margin:0 18px;border-radius:2px;overflow:hidden;flex-shrink:0}.up-progress-fill{height:100%;background:#2c87ff;width:0%;transition:width .3s ease;border-radius:2px}.up-body{flex:1;overflow-y:auto;padding:12px 18px;min-height:80px}.up-file-item{display:flex;align-items:center;gap:12px;padding:10px 0}.up-file-item+.up-file-item{border-top:1px solid #f4f4f4}.up-file-icon{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center}.up-file-icon svg{width:100%;height:100%}.up-file-info{flex:1;min-width:0}.up-file-name{font-size:13.5px;color:#222;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px}.up-file-meta{font-size:12px;color:#999;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.up-file-status{flex-shrink:0;width:24px;height:24px;display:grid;place-items:center}.up-file-status.pending{color:#ccc}.up-file-status.uploading{color:#2c87ff}.up-file-status.uploading svg{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.up-file-status.done{background:#22c55e;border-radius:50%}.up-file-status.done svg{color:#fff}.up-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid #f0f0f0;flex-shrink:0}.up-actions button{padding:8px 16px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;font-size:13.5px;color:#555;cursor:pointer;font-family:inherit;transition:all .12s}.up-actions button:hover{background:#f5f6f8}.up-actions button.primary{background:#2c87ff;color:#fff;border-color:#2c87ff}.up-actions button.primary:hover{background:#1f76eb}.context-menu{position:fixed;background:#fff;border:1px solid #e8e8e8;border-radius:12px;box-shadow:0 12px 32px #00000024,0 4px 8px #0000000f;padding:6px;min-width:180px;z-index:300;font-size:14px;opacity:0;transform:scale(.96);transform-origin:top left;pointer-events:none;transition:opacity .12s ease,transform .12s ease}.context-menu.show{opacity:1;transform:scale(1);pointer-events:auto}.cm-item{display:flex;align-items:center;padding:9px 14px;border-radius:6px;cursor:pointer;color:#222;-webkit-user-select:none;user-select:none;transition:background .1s;font-size:14px}.cm-item:hover{background:#f5f6f8}.cm-item.danger{color:#ef4444}.cm-item.danger:hover{background:#fef2f2}.cm-item.disabled{color:#ccc;cursor:not-allowed;pointer-events:none}.cm-item .arrow{margin-left:auto;color:#aaa;font-size:14px}.cm-multi-header{padding:8px 14px 4px;font-size:12px;font-weight:600;color:#2c87ff;-webkit-user-select:none;user-select:none}.cm-divider{height:1px;background:#f0f0f0;margin:5px 6px}.cm-submenu{position:relative}.cm-submenu-content{position:absolute;left:calc(100% + 6px);top:-6px;background:#fff;border:1px solid #e8e8e8;border-radius:12px;box-shadow:0 12px 32px #00000024;padding:6px;min-width:140px;display:none}.cm-submenu:hover .cm-submenu-content,.cm-submenu:focus-within .cm-submenu-content{display:block}.cm-submenu-content .cm-item{white-space:nowrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.4);z-index:500;display:none;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.modal-overlay.show{display:flex;opacity:1}.modal{background:#fff;border-radius:16px;width:420px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040;transform:scale(.96);transition:transform .2s}.modal-overlay.show .modal{transform:scale(1)}.modal-header{padding:20px 24px 14px;font-size:17px;font-weight:700;color:#222}.modal-body{padding:4px 16px;flex:1;overflow-y:auto;min-height:100px}.modal-folder-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;cursor:pointer;font-size:14px;color:#333;transition:background .1s}.modal-folder-item:hover{background:#f5f6f8}.modal-folder-item.selected{background:#eaf4ff;color:#2c87ff;font-weight:600}.modal-folder-item .mfi-icon{width:24px;height:20px;flex-shrink:0}.modal-footer{padding:14px 24px 20px;display:flex;justify-content:flex-end;gap:8px}.modal-btn{padding:9px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;transition:background .12s}.modal-btn.primary{background:#2c87ff;color:#fff;border:none}.modal-btn.primary:hover:not(:disabled){background:#1f76eb}.modal-btn.primary:disabled{background:#cfe3ff;cursor:not-allowed}.modal-btn.secondary{background:#fff;color:#555;border:1px solid #e0e0e0}.modal-btn.secondary:hover{background:#f5f6f8}.folder{transition:all .15s ease,background .1s,border-color .1s}.folder:active{transform:scale(.98)}.search-wrap{position:relative}.search-bar .detail{cursor:pointer;padding:2px 4px;border-radius:4px;transition:background .1s}.search-bar .detail:hover{background:rgba(44,135,255,.1);color:#2c87ff}.search-bar .detail.active{color:#2c87ff;font-weight:500}.search-bar .detail.active .detail-caret{transform:rotate(180deg);display:inline-block}.search-detail-panel{position:absolute;top:calc(100% + 8px);right:0;width:540px;background:#fff;border:1px solid #e8e8e8;border-radius:14px;box-shadow:0 16px 40px #0000001a,0 4px 12px #0000000a;padding:28px 28px 24px;z-index:100;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .18s ease,transform .18s ease}.search-detail-panel.show{opacity:1;transform:translateY(0);pointer-events:auto}.sdp-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 28px;margin-bottom:24px}.sdp-field label{display:block;font-size:13.5px;color:#333;margin-bottom:8px;font-weight:500}.sdp-field label .sdp-hint{color:#999;font-size:12px;font-weight:400;margin-left:4px}.sdp-select-wrap{position:relative;border:1px solid #e0e0e0;border-radius:8px;background:#fff;transition:border-color .12s;overflow:hidden}.sdp-select-wrap:hover{border-color:#b8d4ff}.sdp-select-wrap:focus-within{border-color:#2c87ff}.sdp-select-wrap select{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;background:transparent;width:100%;padding:10px 32px 10px 14px;font-size:14px;font-family:inherit;outline:none;cursor:pointer;color:#222}.sdp-caret{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#888;font-size:11px;pointer-events:none}.sdp-toggle-group{display:flex;gap:8px}.sdp-toggle-btn{flex:1;padding:10px 14px;border:1px solid #e0e0e0;border-radius:8px;background:#fff;cursor:pointer;font-size:14px;color:#555;font-family:inherit;transition:all .12s}.sdp-toggle-btn:hover{border-color:#b8d4ff}.sdp-toggle-btn.active{background:#eaf4ff;border-color:#2c87ff;color:#2c87ff;font-weight:600}.sdp-period{display:grid;grid-template-columns:90px 1fr 12px 1fr;align-items:center;gap:6px}.sdp-period-select{width:90px}.sdp-period-select select{padding:10px 24px 10px 12px;font-size:13.5px}.sdp-date-input{padding:10px;border:1px solid #e0e0e0;border-radius:8px;font-size:13px;font-family:inherit;outline:none;background:#f5f6f8;color:#333;transition:all .12s;width:100%;min-width:0}.sdp-date-input:focus{border-color:#2c87ff;background:#fff}.sdp-date-input:disabled{color:#bbb;cursor:not-allowed}.sdp-tilde{color:#999;text-align:center;font-size:14px}.sdp-actions{display:flex;justify-content:center}.sdp-search-btn{padding:11px 56px;background:#2c87ff;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;font-family:inherit;transition:background .12s}.sdp-search-btn:hover{background:#1f76eb}.sdp-search-btn:active{transform:scale(.98)}.sdp-folder-picker{margin-top:18px;padding-top:18px;border-top:1px solid #f0f0f0;display:none}.sdp-folder-picker.show{display:block}.sdp-folder-picker-title{font-size:13.5px;font-weight:500;color:#333;margin-bottom:10px}.sdp-folder-picker-title span{color:#2c87ff;margin-left:4px}.sdp-folder-picker-list{max-height:200px;overflow-y:auto;border:1px solid #f0f0f0;border-radius:8px;padding:6px;margin-bottom:12px}.sdp-folder-pick-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:13.5px;-webkit-user-select:none;user-select:none}.sdp-folder-pick-item:hover{background:#f5f6f8}.sdp-folder-pick-item .pick-cb{width:18px;height:18px;border:1.5px solid #d0d0d0;border-radius:4px;display:grid;place-items:center;flex-shrink:0}.sdp-folder-pick-item.checked .pick-cb{background:#2c87ff;border-color:#2c87ff}.sdp-folder-pick-item.checked .pick-cb:after{content:"✓";color:#fff;font-size:12px;font-weight:700}.sdp-folder-pick-item .pick-icon{width:22px;height:18px}.sdp-folder-picker-actions{display:flex;justify-content:flex-end;gap:8px}.settings-view{display:none;padding:0}.settings-view.show{display:block}.settings-item{padding:26px 6px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background .12s}.settings-item:hover{background:#fafbfc}.settings-item-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.settings-item-info{flex:1;min-width:0}.settings-item-title{font-size:16.5px;font-weight:700;margin-bottom:8px;color:#222;display:flex;align-items:center;gap:8px}.settings-item-desc{font-size:13.5px;color:#777;line-height:1.6}.settings-item-arrow{color:#aaa;font-size:18px;flex-shrink:0;margin-top:4px;transition:transform .2s}.settings-item.expanded .settings-item-arrow{transform:rotate(90deg);color:#2c87ff}.settings-item-detail{margin-top:20px;padding:20px 22px;background:#f7f9fb;border-radius:12px;display:none}.settings-item.expanded .settings-item-detail{display:block}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:16px}.settings-row+.settings-row{border-top:1px solid #ececec}.settings-row-label{font-size:14px;color:#333;flex:1}.settings-row-label .sub{display:block;font-size:12.5px;color:#888;margin-top:3px}.settings-row-control{flex-shrink:0}.settings-input{border:1px solid #e0e0e0;border-radius:8px;padding:8px 14px;font-size:14px;width:220px;font-family:inherit;outline:none;background:#fff}.settings-input:focus{border-color:#2c87ff}.settings-select-wrap{position:relative;border:1px solid #e0e0e0;border-radius:8px;background:#fff;overflow:hidden}.settings-select-wrap select{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;background:transparent;padding:8px 32px 8px 14px;font-size:14px;font-family:inherit;outline:none;cursor:pointer;min-width:140px}.settings-select-wrap:after{content:"▾";position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#888;font-size:11px;pointer-events:none}.toggle-switch{position:relative;width:44px;height:24px;background:#d0d0d0;border-radius:12px;cursor:pointer;transition:background .2s;flex-shrink:0}.toggle-switch.on{background:#2c87ff}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:left .2s;box-shadow:0 1px 3px #0000002e}.toggle-switch.on:after{left:22px}.radio-group{display:flex;gap:8px}.radio-pill{padding:8px 16px;border:1px solid #e0e0e0;border-radius:8px;background:#fff;cursor:pointer;font-size:14px;color:#555;font-family:inherit;transition:all .12s}.radio-pill:hover{border-color:#b8d4ff}.radio-pill.active{background:#eaf4ff;border-color:#2c87ff;color:#2c87ff;font-weight:600}.settings-actions{margin-top:16px;display:flex;justify-content:flex-end;gap:8px}.footer-actions button.active-action{color:#2c87ff;font-weight:600}.search-bar{display:flex;align-items:center;background:#f5f6f8;border-radius:8px;padding:8px 14px;width:360px;gap:8px}.search-bar input{border:none;background:transparent;outline:none;flex:1;font-size:13.5px;font-family:inherit}.search-bar input::placeholder{color:#999}.search-bar .detail{color:#555;font-size:12.5px;cursor:pointer}.toolbar{display:flex;align-items:center;gap:8px;margin-bottom:24px;flex-wrap:wrap}.checkbox{width:18px;height:18px;border:1.5px solid #d0d0d0;border-radius:4px;margin-right:4px;cursor:pointer;display:grid;place-items:center;background:#fff;transition:all .12s;flex-shrink:0}.checkbox:hover{border-color:#2c87ff}.checkbox.checked{background:#2c87ff;border-color:#2c87ff}.checkbox.checked:after{content:"";width:12px;height:12px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12l5 5L20 7'/></svg>");background-size:contain;background-repeat:no-repeat}.checkbox.indeterminate{background:#2c87ff;border-color:#2c87ff}.checkbox.indeterminate:after{content:"";width:10px;height:2px;background:#fff;border-radius:1px}.btn-primary{background:#2c87ff;color:#fff;padding:8px 18px;border-radius:8px;font-weight:500;font-size:13.5px;display:inline-flex;align-items:center;gap:6px;transition:background .15s}.btn-primary:hover{background:#1f76eb}.btn-secondary{background:#fff;border:1px solid #e5e5e8;color:#333;padding:8px 16px;border-radius:8px;font-weight:500;font-size:13.5px;display:inline-flex;align-items:center;gap:6px;transition:background .15s}.btn-secondary:hover{background:#f8f9fa}.btn-primary .ico,.btn-secondary .ico{width:16px;height:16px}.toolbar-right{margin-left:auto;display:flex;align-items:center;gap:14px;color:#555;font-size:13px}.toolbar-right .sort{cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;-webkit-user-select:none;user-select:none;transition:background .12s}.toolbar-right .sort:hover{background:#f5f6f8}.toolbar-right .sort.active{background:#eaf4ff;color:#2c87ff}.sort-arrow{width:14px;height:14px;flex-shrink:0}.view-toggle{display:flex;gap:2px;background:#f5f6f8;padding:3px;border-radius:6px}.view-toggle button{width:28px;height:28px;border-radius:4px;display:grid;place-items:center;color:#888}.view-toggle button.active{background:#fff;color:#2c87ff;box-shadow:0 1px 2px #0000000f}.folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:18px}.folder-grid.hidden{display:none}.folder-list{display:flex;flex-direction:column}.folder-list.hidden{display:none}.list-header,.list-row{display:grid;align-items:center;gap:8px;padding:0 16px;min-height:48px}.list-row,.list-header{grid-template-columns:var(--list-cols, 40px 40px 60px 1fr 120px 180px 40px)}.list-header{border-bottom:1px solid #ececec;color:#888;font-size:12.5px;font-weight:500;position:sticky;top:56px;background:#fff;z-index:5}.list-header .list-cell{cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 6px;border-radius:4px;transition:background .1s}.list-header .list-cell:hover{background:#f5f6f8}.list-header .list-cell.sortable.active{color:#2c87ff;font-weight:600}.list-header .list-cell.sortable.active .header-icon{color:#2c87ff;stroke:#2c87ff}.list-header .sort-arrow-mini{margin-left:3px;font-size:10px;display:inline-block}.col-menu{position:absolute;background:#fff;border:1px solid #e8e8e8;border-radius:12px;box-shadow:0 12px 32px #00000024,0 4px 8px #0000000f;padding:8px;min-width:200px;z-index:200;opacity:0;transform:scale(.96);pointer-events:none;transition:opacity .12s ease,transform .12s ease}.col-menu.show{opacity:1;transform:scale(1);pointer-events:auto}.col-menu-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;cursor:pointer;font-size:14px;color:#333;-webkit-user-select:none;user-select:none;transition:background .1s}.col-menu-item:hover{background:#f5f6f8}.col-menu-item .col-cb{width:22px;height:22px;border-radius:5px;border:1.5px solid #d0d0d0;background:#fff;display:grid;place-items:center;flex-shrink:0;transition:all .12s}.col-menu-item.checked .col-cb{background:#2c87ff;border-color:#2c87ff}.col-menu-item.checked .col-cb:after{content:"✓";color:#fff;font-size:13px;font-weight:700}.col-menu-divider{height:1px;background:#f0f0f0;margin:5px 6px}.list-row{border-bottom:1px solid #f4f4f4;cursor:default;transition:background .12s;min-height:56px}.list-row:hover{background:#f8faff}.list-row:hover .star-btn{opacity:1}.list-cell{display:flex;align-items:center;min-width:0}.list-cell.center{justify-content:center}.list-cell.right{justify-content:flex-end;color:#888;font-size:13px}.list-cell .row-checkbox{width:18px;height:18px;border:1.5px solid #d0d0d0;border-radius:4px;cursor:pointer;display:grid;place-items:center;background:#fff;flex-shrink:0}.list-cell .row-checkbox.checked{background:#2c87ff;border-color:#2c87ff}.list-cell .row-checkbox.checked:after{content:"";width:12px;height:12px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12l5 5L20 7'/></svg>");background-size:contain;background-repeat:no-repeat}.star-btn{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#c5c8cc;opacity:.35;transition:opacity .15s,background .15s,color .15s}.star-btn:hover{background:#f0f0f0;color:#888}.star-btn.active{color:#ffb800;opacity:1}.list-folder-icon{width:32px;height:26px}.list-folder-icon svg{width:100%;height:100%}.list-name{color:#222;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;padding:2px 4px;border-radius:3px;transition:color .12s}.list-name:hover{text-decoration:underline;color:#2c87ff}.folder-name{cursor:pointer;transition:color .12s}.folder:hover .folder-name{text-decoration:underline;color:#2c87ff}.list-row:hover{background:#f0f7ff}.drag-select-box{position:fixed;background:rgba(44,135,255,.15);border:1px solid #2c87ff;pointer-events:none;z-index:50;border-radius:2px}body.drag-selecting{user-select:none;-webkit-user-select:none}body.drag-selecting .list-name,body.drag-selecting .folder-name{cursor:default}.folder-name[draggable=true],.list-name[draggable=true]{cursor:grab}.folder-name[draggable=true]:active,.list-name[draggable=true]:active{cursor:grabbing}.header-icon{width:18px;height:18px;color:#b0b3b8}.add-col-btn{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#888}.add-col-btn:hover{background:#f0f0f0;color:#2c87ff}.folder{border:1px solid #f0f0f0;border-radius:12px;padding:28px 20px 18px;background:#fff;cursor:default;transition:all .18s;display:flex;flex-direction:column;align-items:center;text-align:center}.folder:hover{border-color:#cfe3ff;box-shadow:0 4px 16px #2c87ff14;transform:translateY(-2px)}.folder-icon{width:86px;height:70px;margin-bottom:14px;position:relative}.folder-icon svg{width:100%;height:100%}.folder-icon--thumb{overflow:hidden;border-radius:10px;background:#f0f2f5;border:1px solid #e8eaed}.file-thumb--grid{width:100%;height:100%;object-fit:cover;display:block}.list-thumb-wrap{width:40px;height:40px;border-radius:6px;overflow:hidden;background:#f0f2f5;border:1px solid #e8eaed;display:flex;align-items:center;justify-content:center}.file-thumb--list{width:100%;height:100%;object-fit:cover;display:block}.folder-name{font-size:14px;color:#222;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:500}.folder-meta{font-size:11.5px;color:#999;margin-top:4px;cursor:default}.folder-icon,.file-icon,.list-folder-icon{cursor:pointer}.list-row .list-cell{cursor:default}.list-row .list-cell .list-name{cursor:pointer}.pagination{display:flex;justify-content:center;align-items:center;gap:4px;margin-top:40px;color:#555}.pagination button{width:32px;height:32px;border-radius:6px;display:grid;place-items:center;color:#555;font-size:13px}.pagination button:hover{background:#f5f6f8}.pagination button.active{background:#2c87ff;color:#fff;font-weight:700}.ico{width:20px;height:20px;stroke-width:1.8}.filetype-wrap{position:relative;display:inline-block}.filetype-wrap .btn-secondary.active{background:#eaf4ff;border-color:#cfe3ff;color:#2c87ff}.filetype-menu{position:absolute;top:calc(100% + 8px);left:0;background:#fff;border:1px solid #e8e8e8;border-radius:12px;box-shadow:0 8px 28px #0000001a,0 2px 6px #0000000a;padding:8px;min-width:200px;z-index:50;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .15s ease,transform .15s ease}.filetype-menu.show{opacity:1;transform:translateY(0);pointer-events:auto}.filetype-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;cursor:pointer;font-size:14px;color:#333;transition:background .12s;-webkit-user-select:none;user-select:none}.filetype-item:hover{background:#f5f6f8}.filetype-item.selected{color:#2c87ff;font-weight:700}.filetype-item .ft-icon{width:22px;height:22px;display:grid;place-items:center;flex-shrink:0}.filetype-item .ft-icon svg{width:100%;height:100%}.filetype-item .check{margin-left:auto;color:#2c87ff;font-weight:700;opacity:0}.filetype-item.selected .check{opacity:1}.filetype-item.no-icon{padding:11px 16px}.filetype-divider{height:1px;background:#f0f0f0;margin:6px 4px}.filetype-wrap .btn-primary.active{background:#1f76eb;box-shadow:0 0 0 3px #2c87ff33}.filetype-menu.compact{min-width:160px}.filetype-menu.align-right{left:auto;right:0}[data-tip]{position:relative}[data-tip]:before,[data-tip]:after{position:absolute;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;z-index:200}[data-tip]:before{content:attr(data-tip);top:calc(100% + 10px);left:50%;transform:translate(-50%) translateY(-4px);background:#2b2f36;color:#fff;padding:6px 10px;border-radius:6px;font-size:12.5px;font-weight:500;white-space:nowrap;letter-spacing:-.2px;box-shadow:0 4px 12px #00000026}[data-tip]:after{content:"";top:calc(100% + 4px);left:50%;transform:translate(-50%) translateY(-4px);border:5px solid transparent;border-bottom-color:#2b2f36}[data-tip]:hover:before,[data-tip]:hover:after{opacity:1;transform:translate(-50%) translateY(0);transition-delay:.25s}[data-tip-pos=right]:before,[data-tip-pos=right]:after{left:auto;right:0;transform:translateY(-4px)}[data-tip-pos=right]:after{right:8px}[data-tip-pos=right]:hover:before,[data-tip-pos=right]:hover:after{transform:translateY(0)}.doc-preview-modal .doc-preview-frame{width:min(92vw,1100px);height:min(88vh,900px);border:none;border-radius:8px;background:#fff;box-shadow:0 20px 60px #00000080}.doc-preview-loading,.doc-preview-error{color:#fff;font-size:15px;padding:24px 32px;border-radius:8px;background:rgba(0,0,0,.45)}.doc-preview-error{color:#fecaca}.account-main{display:flex;justify-content:center;align-items:flex-start}.account-page{width:100%;max-width:640px;padding-bottom:48px}.account-page-header{margin-bottom:24px}.account-back{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:#555;margin-bottom:12px;padding:4px 8px 4px 0;border-radius:6px;transition:color .15s,background .15s}.account-back:hover{color:#2c87ff;background:#f5f8ff}.account-page-title{font-size:22px;font-weight:700;color:#222;line-height:1.3;margin-bottom:6px}.account-page-desc{font-size:14px;color:#777;line-height:1.55}.account-loading,.account-error{font-size:14px;color:#777;padding:24px 0}.account-error{color:#d93025}.account-card{background:#fff;border:1px solid #ececec;border-radius:12px;padding:24px;margin-bottom:16px;box-shadow:0 1px 2px #0000000a}.account-card.muted{background:#f9fafb;border-color:#f0f0f0;box-shadow:none}.account-card-title{font-size:16px;font-weight:700;color:#222;margin-bottom:8px}.account-card-desc{font-size:13.5px;color:#777;line-height:1.55;margin-bottom:16px}.account-card.settings-section .account-card-desc{margin-bottom:12px}.profile-hero{display:flex;align-items:center;gap:20px;padding:28px 24px}.profile-hero-avatar{width:72px;height:72px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-size:28px;font-weight:700;color:#5a3d1e;background:linear-gradient(135deg,#ffd1a3,#ffb37a)}.profile-hero-name{font-size:20px;font-weight:700;color:#222;margin-bottom:4px}.profile-hero-email{font-size:14px;color:#666;margin-bottom:10px}.profile-hero-badges{display:flex;flex-wrap:wrap;gap:8px}.profile-badge{font-size:12px;font-weight:600;padding:4px 10px;border-radius:20px}.profile-badge.role{background:#eaf4ff;color:#2c87ff}.profile-badge.group{background:#f0f0f0;color:#555}.account-form{display:flex;flex-direction:column;gap:18px}.account-label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600;color:#444}.account-input{font-size:14px;font-weight:400;padding:10px 14px;border:1px solid #e0e0e0;border-radius:8px;background:#fff;color:#222;font-family:inherit;outline:none;transition:border-color .15s}.account-input:focus{border-color:#2c87ff;box-shadow:0 0 0 3px #2c87ff1f}.account-input:disabled{background:#f7f8fa;color:#666;cursor:not-allowed}.account-hint{font-size:12px;font-weight:400;color:#999;line-height:1.45}.account-actions{margin-top:24px;padding-top:20px;border-top:1px solid #f0f0f0;display:flex;justify-content:flex-end;gap:10px}.settings-link-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid #ececec;border-radius:10px;background:#fafbfc;transition:background .12s,border-color .12s}.settings-link-row:hover{background:#f0f6ff;border-color:#cfe3ff}.settings-link-row strong{display:block;font-size:15px;font-weight:600;color:#222;margin-bottom:4px}.settings-link-row small{font-size:13px;color:#777}.settings-link-arrow{font-size:22px;color:#aaa;flex-shrink:0}.account-page .settings-row-static{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #f0f0f0}.account-page .settings-row-static:last-of-type{border-bottom:none}.account-page .settings-row-label{font-size:14px;color:#555;flex-shrink:0}.account-page .settings-row-value{font-size:14px;color:#222;text-align:right;word-break:break-all}.account-page .settings-row-value.mono{font-family:ui-monospace,Cascadia Code,monospace;font-size:12px;color:#666}.account-page .settings-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #f0f0f0}.account-page .settings-toggle-row:last-child{border-bottom:none;padding-bottom:0}.account-page .settings-toggle-title{font-size:14px;font-weight:600;color:#333;margin-bottom:4px}.account-page .settings-toggle-desc{font-size:12.5px;color:#888}.auth-loading{min-height:calc(100vh - 56px);display:grid;place-items:center;color:#777;font-size:14px}@media (max-width: 900px){.layout{grid-template-columns:1fr}.sidebar{display:none}.search-bar{width:200px}.main{padding:16px}.profile-hero{flex-direction:column;text-align:center}.profile-hero-badges{justify-content:center}.account-page .settings-row-static{flex-direction:column;align-items:flex-start}.account-page .settings-row-value{text-align:left}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#f0f7ff 0%,#ffffff 45%,#f8fafc 100%);padding:24px}.login-card{width:100%;max-width:400px;background:#fff;border:1px solid #ececec;border-radius:16px;box-shadow:0 12px 40px #00000014;padding:40px 36px 32px}.login-brand{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:32px}.login-brand img{height:40px;width:auto;object-fit:contain}.login-brand h1{font-size:22px;font-weight:700;color:#222;letter-spacing:-.3px}.login-brand p{font-size:14px;color:#888;margin-top:-4px}.login-form{display:flex;flex-direction:column;gap:16px}.login-field label{display:block;font-size:13px;font-weight:500;color:#555;margin-bottom:6px}.login-field input{width:100%;height:44px;padding:0 14px;border:1px solid #e0e0e0;border-radius:8px;font-size:14px;font-family:inherit;transition:border-color .15s,box-shadow .15s}.login-field input:focus{outline:none;border-color:#2c87ff;box-shadow:0 0 0 3px #2c87ff26}.login-error{padding:10px 12px;background:#fff5f5;border:1px solid #ffc9c9;border-radius:8px;color:#e8423a;font-size:13px;line-height:1.4}.login-success{padding:10px 12px;background:#f0faf4;border:1px solid #b8e6c8;border-radius:8px;color:#1a7f4b;font-size:13px;line-height:1.4}.login-submit{height:46px;margin-top:4px;border:none;border-radius:8px;background:#2c87ff;color:#fff;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s}.login-submit:hover:not(:disabled){background:#1a6fe0}.login-submit:disabled{opacity:.65;cursor:not-allowed}.login-footer{margin-top:20px;text-align:center;font-size:13.5px;color:#666}.login-footer button{color:#2c87ff;font-weight:600;padding:0;border:none;background:none;cursor:pointer;font-family:inherit}.login-footer button:hover{text-decoration:underline}.auth-loading{min-height:100vh;display:grid;place-items:center;color:#888;font-size:14px}
