.toast-container{position:fixed;bottom:var(--spacing-xl);right:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:2000}.toast{display:flex;align-items:center;gap:var(--spacing-md);padding:16px 20px;background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:toastEnter var(--duration-spring, .5s) var(--spring, cubic-bezier(.175, .885, .32, 1.275));min-width:320px;max-width:420px}.toast.leaving{animation:toastLeave var(--duration-normal, .25s) var(--ease-out-expo, ease) forwards}@keyframes toastEnter{0%{opacity:0;transform:translate(100%) scale(.9)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes toastLeave{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(100%) scale(.9)}}.toast-icon{flex-shrink:0;width:24px;height:24px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}.toast-success .toast-icon{background:var(--color-success-light);color:var(--color-success)}.toast-error .toast-icon{background:var(--color-error-light);color:var(--color-error)}.toast-info .toast-icon{background:var(--color-primary-light);color:var(--color-primary)}.toast-warning .toast-icon{background:var(--color-warning-light);color:var(--color-warning)}.toast-message{flex:1;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);line-height:var(--line-height-snug, 1.35)}.toast-close{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-tertiary);transition:all var(--transition-fast)}.toast-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.toast-close:active{transform:scale(.95)}@media (max-width: 480px){.toast-container{bottom:var(--spacing-md);right:var(--spacing-md);left:var(--spacing-md)}.toast{min-width:auto;max-width:none;width:100%}}.search-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);display:flex;align-items:flex-start;justify-content:center;padding-top:80px;z-index:1000;animation:fadeIn .15s ease-out}.search-modal{width:100%;max-width:680px;max-height:calc(100vh - 160px);background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.search-modal-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-light)}.search-modal-input-wrapper{flex:1;display:flex;align-items:center;gap:var(--spacing-sm);background:var(--bg-secondary);border-radius:var(--radius-md);padding:0 var(--spacing-md)}.search-modal-icon{color:var(--text-tertiary);flex-shrink:0}.search-modal-input{flex:1;height:44px;border:none;background:transparent;font-size:16px;color:var(--text-primary)}.search-modal-input::placeholder{color:var(--text-tertiary)}.search-modal-input:focus{outline:none}.search-modal-clear{padding:4px;color:var(--text-tertiary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.search-modal-clear:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.search-modal-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.search-modal-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.search-modal-tabs{display:flex;gap:4px;padding:var(--spacing-sm) var(--spacing-lg);border-bottom:1px solid var(--border-light);background:var(--bg-secondary)}.search-modal-tab{display:flex;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;color:var(--text-secondary);border-radius:var(--radius-md);transition:all var(--transition-fast)}.search-modal-tab:hover{background:var(--bg-tertiary);color:var(--text-primary)}.search-modal-tab.active{background:var(--color-primary);color:#fff}.tab-count{font-size:12px;font-weight:600;background:#fff3;padding:2px 6px;border-radius:10px}.search-modal-results{flex:1;overflow-y:auto;min-height:200px;max-height:500px}.search-modal-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:60px 20px;color:var(--text-tertiary)}.search-modal-empty svg{opacity:.5}.search-modal-empty p{font-size:14px}.search-modal-item{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid var(--border-light)}.search-modal-item:hover{background:var(--bg-secondary)}.search-modal-item:last-child{border-bottom:none}.search-item-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:var(--radius-md);color:var(--text-tertiary)}.search-item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.search-item-name-row{display:flex;align-items:center;gap:8px}.search-item-name{font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-item-badge{font-size:10px;font-weight:500;padding:2px 8px;border-radius:10px;white-space:nowrap}.search-item-badge.tag{background:var(--color-info-light);color:var(--color-info-dark)}.search-item-badge.description{background:var(--color-warning-lighter);color:var(--color-warning-dark)}.search-item-badge.trash{background:var(--color-error-light);color:var(--color-error)}.search-item-path{font-size:12px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-item-description{font-size:12px;color:var(--text-secondary);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-item-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.search-item-tag{font-size:11px;color:var(--color-info-dark);background:var(--color-info-light);padding:2px 6px;border-radius:4px}.search-item-deleted-at{font-size:11px;color:var(--color-error);margin-top:2px}.search-item-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.search-item-size{font-size:12px;color:var(--text-secondary);font-weight:500}.search-item-date{font-size:11px;color:var(--text-tertiary)}.search-modal-loading{display:flex;justify-content:center;padding:var(--spacing-lg)}.search-modal-loading-initial{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:12px;color:var(--text-secondary)}.search-modal-loading-initial p{font-size:14px}.search-modal-spinner{width:24px;height:24px;border:2px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.search-modal-end{text-align:center;padding:var(--spacing-md);font-size:12px;color:var(--text-tertiary);border-top:1px solid var(--border-light)}@media (max-width: 768px){.search-modal-overlay{padding:0;align-items:flex-end}.search-modal{max-width:100%;max-height:90vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;animation:slideInUp .3s var(--ease-out-expo)}.search-modal-header{padding:var(--spacing-md);padding-top:var(--spacing-sm)}.search-modal:before{content:"";display:block;width:36px;height:4px;background:var(--border-default);border-radius:2px;margin:var(--spacing-sm) auto 0}.search-input-wrapper{height:48px}.search-input-wrapper input{font-size:16px}.search-modal-results{max-height:calc(90vh - 160px);padding-bottom:env(safe-area-inset-bottom)}.search-modal-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0 var(--spacing-md);gap:var(--spacing-xs)}.search-tab-btn{padding:10px 16px;font-size:14px;white-space:nowrap;flex-shrink:0}.search-result-item{padding:14px var(--spacing-md)}.search-result-item:active{background:var(--bg-tertiary)}.search-close-btn{width:40px;height:40px}}@keyframes slideInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.notification-bell{position:relative}.notification-bell__button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:8px;transition:all .2s;position:relative}.notification-bell__button:hover{background:var(--hover-bg);color:var(--text-primary)}.notification-bell__badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:600;color:#fff;background:var(--color-error);border-radius:9px;display:flex;align-items:center;justify-content:center}.notification-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-height:480px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:12px;box-shadow:0 4px 24px #0003;z-index:2000;display:flex;flex-direction:column;overflow:hidden}[data-theme=light] .notification-dropdown{background:var(--bg-primary);border-color:var(--border-light)}[data-theme=dark] .notification-dropdown{background:var(--bg-dark-card);border-color:var(--border-dark)}.notification-dropdown__header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border-color)}.notification-dropdown__header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.notification-dropdown__actions{display:flex;gap:4px}.notification-dropdown__actions button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:6px;transition:all .2s}.notification-dropdown__actions button:hover:not(:disabled){background:var(--hover-bg);color:var(--text-primary)}.notification-dropdown__actions button:disabled{opacity:.5;cursor:not-allowed}.notification-dropdown__content{flex:1;overflow-y:auto;max-height:400px}.notification-dropdown__empty{padding:32px 16px;text-align:center;color:var(--text-tertiary);font-size:14px}.notification-list{list-style:none;margin:0;padding:0}.notification-item{display:flex;align-items:flex-start;border-bottom:1px solid var(--border-light);background:var(--bg-primary);transition:background .2s}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:var(--bg-hover)}[data-theme=light] .notification-item{background:var(--bg-primary);border-color:var(--border-light)}[data-theme=light] .notification-item:hover{background:var(--bg-hover)}[data-theme=dark] .notification-item{background:var(--bg-dark-card);border-color:var(--border-dark)}[data-theme=dark] .notification-item:hover{background:var(--bg-dark-hover)}.notification-item--read{opacity:.7}.notification-item--read .notification-item__title{font-weight:400}.notification-item__content{flex:1;display:flex;align-items:flex-start;gap:12px;padding:12px 16px;cursor:pointer;min-width:0}.notification-item__icon{font-size:20px;flex-shrink:0;line-height:1}.notification-item__text{flex:1;min-width:0}.notification-item__title{font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:4px;line-height:1.4}.notification-item__message{font-size:13px;color:var(--text-secondary);margin-bottom:6px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.notification-item__meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-tertiary)}.notification-item__time{white-space:nowrap}.notification-item__actor{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-item__actor:before{content:"·";margin-right:8px}.notification-item__link-icon{flex-shrink:0;color:var(--text-tertiary);margin-top:4px}.notification-item__delete{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;opacity:0;transition:all .2s;margin:8px 8px 8px 0;border-radius:6px;flex-shrink:0}.notification-item:hover .notification-item__delete{opacity:1}.notification-item__delete:hover{background:var(--error-bg);color:var(--error-color)}.notification-dropdown__footer{padding:12px 16px;border-top:1px solid var(--border-light);background:var(--bg-primary)}[data-theme=light] .notification-dropdown__footer{background:var(--bg-secondary);border-color:var(--border-light)}[data-theme=dark] .notification-dropdown__footer{background:var(--bg-dark-tertiary);border-color:var(--border-dark)}.notification-dropdown__view-all{width:100%;padding:8px 16px;border:none;background:var(--color-primary);color:#fff;font-size:14px;font-weight:500;border-radius:8px;cursor:pointer;transition:background .2s}.notification-dropdown__view-all:hover{background:var(--color-primary-hover)}.notification-dropdown__content::-webkit-scrollbar{width:6px}.notification-dropdown__content::-webkit-scrollbar-track{background:transparent}.notification-dropdown__content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.notification-dropdown__content::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}@media (max-width: 480px){.notification-dropdown{position:fixed;top:60px;right:8px;left:8px;width:auto;max-height:calc(100vh - 80px)}}.header{position:fixed;top:0;left:0;right:0;height:64px;background:#fffc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:none;box-shadow:0 1px 0 var(--border-light);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-lg);z-index:1100}[data-theme=dark] .header{background:#1c1c1ecc}.header-left{display:flex;align-items:center}.hamburger-btn{display:none;width:40px;height:40px;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-primary);margin-right:var(--spacing-sm);transition:background var(--transition-fast)}.hamburger-btn:hover{background:var(--bg-secondary)}@media (max-width: 768px){.hamburger-btn{display:flex}}.logo{display:flex;align-items:center;gap:var(--spacing-sm)}.logo-text{font-size:18px;font-weight:700;color:var(--text-primary)}.header-center{flex:1;max-width:480px;margin:0 var(--spacing-xl)}.search-box{position:relative;width:100%}.search-box .search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-tertiary)}.search-input{width:100%;height:42px;padding:0 16px 0 44px;border:none;border-radius:var(--radius-md);background:var(--bg-secondary);font-size:var(--font-size-sm);color:var(--text-primary);transition:all var(--duration-fast, .15s) var(--ease-out-expo, ease)}.search-input::placeholder{color:var(--text-tertiary)}.search-input:focus{outline:none;background:var(--bg-tertiary);box-shadow:0 0 0 4px var(--color-primary-light)}.search-expand-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.search-expand-btn:hover{background:var(--bg-tertiary);color:var(--color-primary)}.header-right{display:flex;align-items:center;gap:var(--spacing-sm)}.header-right .theme-toggle-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-secondary);background:transparent;border:none;cursor:pointer;transition:all var(--duration-fast) var(--ease-out-expo)}.header-right .theme-toggle-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.header-right .theme-toggle-btn:active{transform:scale(.95)}[data-theme=dark] .header-right .theme-toggle-btn:hover{background:var(--bg-tertiary)}.icon-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-secondary);transition:all var(--duration-fast, .15s) var(--ease-out-expo, ease)}.icon-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.icon-btn:active{transform:scale(.95)}.avatar-btn{background:none;border:none;padding:0;cursor:pointer;margin-left:var(--spacing-sm);transition:all var(--duration-fast, .15s) var(--ease-out-expo, ease)}.avatar-btn:hover .avatar{transform:scale(1.05);box-shadow:var(--shadow-primary)}.avatar{width:36px;height:36px;transition:all var(--duration-fast, .15s) var(--ease-out-expo, ease);border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;transition:transform .15s,box-shadow .15s}.avatar-btn:hover .avatar{transform:scale(1.05);box-shadow:0 2px 8px #3182f64d}.login-btn{background:var(--color-primary);color:#fff;border:none;padding:8px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;margin-left:var(--spacing-sm);transition:background .15s}.login-btn:hover{background:var(--color-primary-hover)}.header-center{position:relative}.search-spinner{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;border:2px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.search-results{position:absolute;top:100%;left:0;right:0;margin-top:8px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:400px;overflow-y:auto;z-index:1000}.search-result-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:10px 14px;cursor:pointer;transition:background var(--transition-fast)}.search-result-item:hover{background:var(--bg-secondary)}.result-icon{flex-shrink:0}.result-icon.folder{color:var(--color-primary)}.result-icon.file{color:var(--text-tertiary)}.result-info{flex:1;min-width:0;display:flex;flex-direction:column}.result-name{font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-path{font-size:12px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-name-row{display:flex;align-items:center;gap:6px}.match-badge{font-size:10px;font-weight:500;padding:2px 6px;border-radius:4px;white-space:nowrap}.match-badge.tag{background:var(--color-primary-light);color:var(--color-primary)}.match-badge.description{background:var(--color-warning-light);color:var(--color-warning)}.result-description{font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;font-style:italic}.result-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.result-size{font-size:12px;color:var(--text-secondary);font-weight:500}.result-date{font-size:11px;color:var(--text-tertiary)}.search-no-results{padding:20px;text-align:center;color:var(--text-secondary);font-size:14px}.header-breadcrumb{display:flex;align-items:center;margin-left:var(--spacing-md);font-size:14px}.breadcrumb-item-wrapper{display:flex;align-items:center}.breadcrumb-separator{color:var(--text-tertiary);margin:0 6px;font-weight:400}.breadcrumb-link{color:var(--text-secondary);font-weight:500;padding:4px 8px;border-radius:var(--radius-sm);transition:all var(--transition-fast);white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}.breadcrumb-link:hover{color:var(--color-primary);background:var(--bg-secondary)}.breadcrumb-link.current{color:var(--text-primary);font-weight:600}.breadcrumb-link.current:hover{color:var(--color-primary)}@media (max-width: 768px){.header{height:56px;padding:0 var(--spacing-sm)}.header-breadcrumb,.logo-text{display:none}.logo svg{width:28px;height:28px}.header-center{margin:0 var(--spacing-sm);max-width:none;flex:1}.search-input{height:38px;font-size:14px;padding:0 12px 0 38px}.search-box .search-icon{left:10px;width:16px;height:16px}.header-right{gap:4px}.header-right .theme-toggle-btn{width:36px;height:36px}.header-right .theme-toggle-btn svg{width:18px;height:18px}.avatar-btn{margin-left:4px}.avatar{width:32px;height:32px;font-size:13px}.search-results{left:calc(-1 * var(--spacing-sm));right:calc(-1 * var(--spacing-sm));max-height:60vh}.search-result-item{padding:12px var(--spacing-sm)}.result-name{font-size:13px}.result-path{font-size:11px}}.sidebar{width:280px;min-width:280px;background:var(--bg-primary);border-right:none;box-shadow:1px 0 0 var(--border-light);padding:var(--spacing-lg) var(--spacing-md);display:flex;flex-direction:column;height:calc(100vh - var(--header-height));position:fixed;top:var(--header-height);left:0;z-index:100;overflow-y:auto;transition:transform var(--duration-normal, .25s) var(--ease-out-expo, ease)}@media (max-width: 768px){.sidebar{transform:translate(-100%);z-index:1200;box-shadow:none}.sidebar.mobile-open{transform:translate(0);box-shadow:var(--shadow-xl)}}.sidebar-overlay{display:none}@media (max-width: 768px){.sidebar-overlay{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);z-index:1150;opacity:0;visibility:hidden;transition:opacity var(--transition-normal),visibility var(--transition-normal)}.sidebar-overlay.visible{opacity:1;visibility:visible}}.sidebar-actions{display:flex;gap:var(--spacing-sm)}.upload-btn{display:flex;align-items:center;justify-content:center;gap:10px;flex:1;height:52px;background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-normal, -.01em);transition:all var(--duration-fast, .15s) var(--ease-out-expo, ease);box-shadow:var(--shadow-primary)}.upload-btn:hover{background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-primary-lg)}.upload-btn:active{transform:translateY(0) scale(.98)}.new-folder-btn{width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);color:var(--text-secondary);border-radius:var(--radius-md);transition:all var(--duration-fast, .15s) var(--ease-out-expo, ease)}.new-folder-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.new-folder-btn:active{transform:scale(.95)}.nav-menu{margin-top:var(--spacing-xl);display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--duration-fast, .15s) var(--ease-out-expo, ease)}.nav-item svg{width:20px;height:20px;flex-shrink:0}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:var(--color-primary-light);color:var(--color-primary);font-weight:var(--font-weight-semibold)}.nav-item.active svg{color:var(--color-primary)}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:var(--spacing-md)}.transfer-btn{display:flex;align-items:center;gap:var(--spacing-md);padding:12px 14px;border-radius:var(--radius-md);color:var(--text-secondary);font-size:14px;font-weight:500;transition:all var(--transition-fast);background:var(--bg-secondary)}.transfer-btn:hover{background:var(--border-light);color:var(--text-primary)}.transfer-btn.active{background:#3182f61a;color:var(--color-primary)}.transfer-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center}.transfer-spinner{width:18px;height:18px;border:2px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.transfer-badge{margin-left:auto;background:var(--color-primary);color:#fff;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;min-width:20px;text-align:center}.admin-btn{display:flex;align-items:center;gap:var(--spacing-md);padding:12px 14px;border-radius:var(--radius-md);color:var(--text-secondary);font-size:14px;font-weight:500;transition:all var(--transition-fast);background:linear-gradient(135deg,#8b5cf61a,#7c3aed1a);border:1px solid rgba(139,92,246,.2)}.admin-btn:hover{background:linear-gradient(135deg,#8b5cf633,#7c3aed33);color:var(--color-admin-purple);border-color:#8b5cf666}.admin-btn svg{color:var(--color-admin-purple)}.transfer-section{background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-light);overflow:hidden}.transfer-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:10px 12px;cursor:pointer;transition:background var(--transition-fast)}.transfer-header:hover{background:var(--bg-tertiary)}.transfer-icon{color:var(--text-tertiary);flex-shrink:0}.transfer-title{font-size:13px;font-weight:600;color:var(--text-primary);flex:1}.transfer-badge{font-size:10px;font-weight:600;padding:2px 6px;border-radius:8px;min-width:16px;text-align:center}.transfer-badge.active{background:var(--color-primary);color:#fff;animation:pulse-badge 2s infinite}.transfer-badge.completed{background:var(--color-success);color:#fff}@keyframes pulse-badge{0%,to{opacity:1}50%{opacity:.7}}.transfer-idle{padding:8px 12px;border-top:1px solid var(--border-light);cursor:pointer}.transfer-idle span{font-size:12px;color:var(--text-tertiary)}.transfer-idle:hover{background:var(--bg-tertiary)}.transfer-chevron{margin-left:auto;color:var(--text-tertiary);transition:transform var(--transition-fast)}.transfer-chevron.open{transform:rotate(180deg)}.transfer-mini{padding:8px 12px;border-top:1px solid var(--border-light);display:flex;flex-direction:column;gap:8px}.transfer-mini-item{display:flex;align-items:center;gap:8px}.transfer-mini-icon{width:20px;height:20px;border-radius:4px;display:flex;align-items:center;justify-content:center}.transfer-mini-icon.upload{background:#3182f626;color:var(--color-primary)}.transfer-mini-icon.download{background:#10b98126;color:var(--color-success)}.transfer-mini-info{flex:1;min-width:0}.transfer-mini-label{display:block;font-size:11px;color:var(--text-secondary);margin-bottom:3px}.transfer-mini-bar{height:4px;background:var(--border-light);border-radius:2px;overflow:hidden}.transfer-mini-fill{height:100%;background:var(--color-primary);border-radius:2px;transition:width .2s ease}.transfer-mini-fill.download{background:var(--color-success)}.transfer-mini-fill.move-copy{background:var(--color-warning)}.transfer-mini-icon.move-copy{color:var(--color-warning)}.transfer-mini-percent{font-size:11px;font-weight:600;color:var(--text-secondary);min-width:32px;text-align:right}.transfer-completed{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid var(--border-light);font-size:12px;color:var(--text-secondary)}.clear-btn{font-size:11px;color:var(--color-primary);padding:2px 8px;border-radius:4px;transition:background var(--transition-fast)}.clear-btn:hover{background:#3182f61a}.storage-info{padding:18px;background:var(--bg-secondary);border-radius:var(--radius-md)}.storage-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.storage-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.storage-value{font-size:var(--font-size-xs);color:var(--text-secondary)}.storage-bar{height:4px;background:var(--border-light);border-radius:2px;overflow:hidden}.storage-bar-fill{height:100%;background:var(--color-primary);border-radius:2px;transition:width var(--duration-slow, .35s) var(--ease-out-expo, ease)}.storage-detail{margin-top:6px}.storage-detail-text{font-size:var(--font-size-xs);color:var(--text-tertiary)}.admin-header{padding:var(--spacing-md);margin-bottom:var(--spacing-md);border-bottom:1px solid var(--border-light)}.admin-title{display:flex;align-items:center;gap:var(--spacing-sm);font-size:16px;font-weight:600;color:var(--color-admin-purple)}.admin-title svg{color:var(--color-admin-purple)}.admin-btn.exit-admin{background:var(--bg-secondary);border:1px solid var(--border-light);color:var(--text-secondary)}.admin-btn.exit-admin:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-light)}.admin-btn.exit-admin svg{color:var(--text-secondary)}.admin-btn.exit-admin:hover svg{color:var(--text-primary)}.shared-section{margin-top:var(--spacing-md)}.shared-header{display:flex;align-items:center;gap:var(--spacing-md);padding:12px 14px;border-radius:var(--radius-md);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.shared-header:hover{background:var(--bg-secondary);color:var(--text-primary)}.shared-header .chevron{margin-left:auto;transition:transform var(--transition-fast)}.shared-header .chevron.expanded{transform:rotate(180deg)}.shared-list{margin-left:var(--spacing-md);margin-top:2px;padding-left:var(--spacing-md);border-left:1px solid var(--border-light)}.shared-drive-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:8px 12px;font-size:13px}.shared-drive-item .drive-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.permission-badge{font-size:10px;font-weight:700;padding:2px 5px;border-radius:3px;letter-spacing:.5px}.permission-badge.r{background:#10b98126;color:var(--color-success)}.permission-badge.rw{background:#3182f626;color:var(--color-primary)}.recent-section{margin-top:var(--spacing-sm);margin-left:var(--spacing-md)}.recent-header{display:flex;align-items:center;gap:var(--spacing-md);padding:10px 14px;border-radius:var(--radius-md);color:var(--text-tertiary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.recent-header:hover{background:var(--bg-secondary);color:var(--text-secondary)}.recent-header svg{width:18px;height:18px;opacity:.7}.recent-header .chevron{margin-left:auto;transition:transform var(--transition-fast);width:14px;height:14px}.recent-header .chevron.expanded{transform:rotate(180deg)}.recent-list{margin-left:var(--spacing-sm);padding-left:var(--spacing-md);border-left:1px solid var(--border-light);max-height:200px;overflow-y:auto}.recent-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:6px 10px;border-radius:var(--radius-sm);color:var(--text-tertiary);font-size:12px;transition:all var(--transition-fast);text-decoration:none}.recent-item:hover{background:var(--bg-secondary);color:var(--text-primary)}.recent-item svg{flex-shrink:0;opacity:.6}.recent-item:hover svg{opacity:1}.recent-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.sidebar-version{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;margin-top:var(--spacing-sm);border-top:1px solid var(--border-light)}.version-text{font-size:11px;color:var(--text-tertiary);font-family:var(--font-mono, monospace)}.github-link{display:flex;align-items:center;justify-content:center;padding:6px;border-radius:var(--radius-sm);color:var(--text-tertiary);transition:all var(--transition-fast)}.github-link:hover{background:var(--bg-secondary);color:var(--text-primary)}.github-link svg{width:16px;height:16px}.upload-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s var(--ease-out-expo, ease)}.upload-modal{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal, var(--shadow-xl));max-width:560px;width:90%;max-height:85vh;display:flex;flex-direction:column;animation:modalSlideIn var(--duration-spring, .5s) var(--spring, cubic-bezier(.175, .885, .32, 1.275))}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.upload-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--card-padding, var(--spacing-lg)) var(--content-padding, var(--spacing-lg));padding-bottom:var(--spacing-md)}.upload-modal .modal-header h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary);letter-spacing:var(--letter-spacing-tight, -.02em)}.upload-modal .close-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-tertiary);background:var(--bg-secondary);transition:all var(--transition-fast)}.upload-modal .close-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);transform:rotate(90deg)}.drop-zone{margin:var(--spacing-md) var(--content-padding, var(--spacing-lg));padding:var(--spacing-3xl, 48px) var(--spacing-2xl);border:2px dashed var(--border-medium);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);cursor:pointer;transition:all var(--duration-normal, .25s) var(--ease-out-expo, ease);background:var(--bg-secondary)}.drop-zone:hover,.drop-zone.dragging{border-color:var(--color-primary);background:var(--color-primary-light);transform:scale(1.02)}.drop-zone svg{color:var(--text-tertiary);transition:all var(--duration-normal, .25s) var(--ease-out-expo, ease)}.drop-zone.dragging svg,.drop-zone:hover svg{color:var(--color-primary)}.drop-text{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-primary)}.drop-hint{font-size:var(--font-size-sm);color:var(--text-secondary)}.upload-buttons{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.upload-select-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:10px 16px;background:var(--bg-primary);border:1px solid var(--border-medium);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}.upload-select-btn:hover{background:var(--bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.upload-select-btn svg{color:var(--text-tertiary);transition:color var(--transition-fast)}.upload-select-btn:hover svg{color:var(--color-primary)}.upload-stats{display:flex;gap:var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm);color:var(--text-secondary)}.upload-stats span{display:flex;align-items:center;gap:var(--spacing-xs)}.file-list{flex:1;overflow-y:auto;padding:var(--spacing-md) var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:300px}.file-item{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);position:relative;transition:all var(--transition-fast);border:1px solid transparent}.file-item:hover{background:var(--bg-tertiary);border-color:var(--border-light)}.file-item.uploading{border-color:var(--color-primary-light);background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--color-primary-light) 100%)}.file-item.completed{background:var(--color-success-light);border-color:var(--color-success)}.file-item.error{background:var(--color-error-light);border-color:var(--color-error)}.file-info{display:flex;justify-content:space-between;align-items:center}.file-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.file-size{font-size:var(--font-size-xs);color:var(--text-secondary)}.file-progress{display:flex;align-items:center;gap:var(--spacing-sm)}.progress-bar{flex:1;height:6px;background:var(--border-light);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;background:var(--color-primary-gradient);border-radius:var(--radius-full);transition:width .3s cubic-bezier(.4,0,.2,1)}.file-item.completed .progress-fill{background:var(--color-success)}.file-item.error .progress-fill{background:var(--color-error)}.progress-text{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--text-secondary);min-width:40px;text-align:right}.file-error{font-size:var(--font-size-xs);color:var(--color-error);margin:0}.remove-btn{position:absolute;top:8px;right:8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-tertiary);opacity:0;transition:all var(--transition-fast)}.file-item:hover .remove-btn{opacity:1}.remove-btn:hover{background:var(--color-error-light);color:var(--color-error)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--border-light)}.btn-primary,.btn-secondary,.btn-danger{padding:14px 28px;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-normal, -.01em);transition:all var(--duration-fast, .15s) var(--ease-out-expo, ease);cursor:pointer;border:none}.btn-primary{background:var(--color-primary);color:var(--text-on-primary);box-shadow:var(--shadow-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-primary-lg)}.btn-primary:active:not(:disabled){transform:translateY(0) scale(.98)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:none}.btn-secondary:hover{background:var(--bg-tertiary)}.btn-secondary:active{transform:scale(.98)}.btn-danger{background:var(--color-error);color:var(--text-on-primary);box-shadow:0 4px 14px #ff3b3033}.btn-danger:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 6px 20px #ff3b304d}.btn-danger:active{transform:translateY(0) scale(.98)}.btn-danger-outline{padding:14px 28px;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-normal, -.01em);transition:all var(--duration-fast, .15s) var(--ease-out-expo, ease);cursor:pointer;background:transparent;color:var(--color-error);border:1.5px solid var(--color-error)}.btn-danger-outline:hover{background:var(--color-error-light);transform:translateY(-1px)}.btn-danger-outline:active{transform:translateY(0) scale(.98)}.confirm-modal{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:420px;width:90%;padding:var(--spacing-xl);text-align:center;animation:modalSlideIn .3s cubic-bezier(.175,.885,.32,1.275)}.confirm-icon{width:64px;height:64px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;margin:0 auto var(--spacing-lg)}.confirm-icon.warning{background:var(--color-warning-light, #FFF3E0);color:var(--color-warning, #FF9800)}.confirm-icon.danger{background:var(--color-error-light);color:var(--color-error)}.confirm-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--spacing-sm)}.confirm-message{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;margin:0 0 var(--spacing-xl)}.confirm-message strong{color:var(--text-primary);font-weight:var(--font-weight-medium)}.confirm-actions{display:flex;justify-content:center;gap:var(--spacing-sm)}.confirm-actions.duplicate-actions{flex-wrap:wrap}.confirm-actions.duplicate-actions button{flex:1;min-width:100px}.upload-error-state{margin:var(--spacing-lg);padding:var(--spacing-2xl);border:2px dashed var(--border-medium);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);text-align:center;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%)}.upload-error-state svg{color:var(--text-tertiary)}.upload-error-state .error-title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-primary);margin:0}.upload-error-state .error-hint{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0;max-width:300px}.create-folder-form{padding:var(--spacing-lg)}.create-folder-form .form-group{margin-bottom:var(--spacing-md)}.create-folder-form .form-label{display:block;margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.create-folder-form .form-input{width:100%;padding:12px 16px;border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--bg-primary);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.create-folder-form .form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.create-folder-form .form-input::placeholder{color:var(--text-tertiary)}.create-folder-form .form-error{color:var(--color-error);font-size:var(--font-size-xs);margin:0 0 var(--spacing-md)}.create-folder-form .modal-actions{padding:0;border:none}@media (max-width: 768px){.upload-modal{width:95%;max-height:90vh}.drop-zone{margin:var(--spacing-md);padding:var(--spacing-xl)}.file-list{max-height:250px}.file-name{max-width:180px}.modal-actions{flex-direction:column-reverse;gap:var(--spacing-sm)}.modal-actions button{width:100%}}@media (max-width: 480px){.upload-modal-overlay{align-items:flex-end}.upload-modal{width:100%;max-height:90vh;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;animation:modalSlideUp var(--duration-spring, .5s) var(--ease-out-expo, ease-out);position:relative}.upload-modal:before{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:36px;height:4px;background:var(--border-medium);border-radius:2px;z-index:1}.upload-modal .modal-header{padding-top:var(--spacing-xl)}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.upload-buttons{flex-direction:column}.upload-select-btn{justify-content:center}.confirm-modal{width:100%;max-width:none;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;position:relative}.confirm-modal:before{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:36px;height:4px;background:var(--border-medium);border-radius:2px}.confirm-actions{flex-direction:column-reverse;gap:var(--spacing-sm)}.confirm-actions button{width:100%}}.text-editor-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg)}.text-editor-container{width:100%;height:100%;max-width:1400px;max-height:90vh;background:var(--bg-primary);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 25px 50px -12px #00000080}.text-editor-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-light)}.text-editor-title{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--text-primary);font-weight:500}.text-editor-title svg{color:var(--text-secondary)}.file-name{font-size:14px}.dirty-indicator{color:var(--color-warning);font-size:18px;font-weight:700;margin-left:4px}.text-editor-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.editor-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:8px 12px;border-radius:var(--radius-md);font-size:13px;font-weight:500;transition:all var(--transition-fast)}.theme-btn{background:var(--bg-tertiary);color:var(--text-secondary)}.theme-btn:hover{background:var(--bg-primary);color:var(--text-primary)}.save-btn{background:var(--color-primary);color:#fff}.save-btn:hover:not(:disabled){background:var(--color-primary-dark)}.save-btn:disabled{opacity:.5;cursor:not-allowed}.saving-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.close-btn{background:var(--bg-tertiary);color:var(--text-secondary);padding:8px}.text-editor-content{flex:1;overflow:hidden}.editor-loading,.editor-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);height:100%;color:var(--text-secondary)}.editor-loading .spinner{width:40px;height:40px;border:3px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.editor-error svg{color:var(--color-error)}.editor-error p{font-size:14px}.editor-error button{padding:8px 16px;background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-size:13px}.editor-error button:hover{background:var(--color-primary-dark)}.text-editor-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-secondary);border-top:1px solid var(--border-light)}.footer-left,.footer-right{display:flex;align-items:center;gap:var(--spacing-md)}.language-badge{padding:2px 8px;background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-size:10px;font-weight:600}.shortcut-hint{font-size:12px;color:var(--text-tertiary)}.monaco-editor{padding-top:var(--spacing-sm)}:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors: active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--total-scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--total-scale-factor));width:100%;min-width:calc(180px * var(--total-scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--total-scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));padding:calc(6px * var(--total-scale-factor));margin-left:calc(5px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--total-scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors: active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;top:100%;right:0;bottom:0;left:0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}.file-viewer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg)}.file-viewer-container{width:100%;height:100%;max-width:1400px;max-height:95vh;background:var(--bg-primary);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 25px 50px -12px #00000080}.file-viewer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-light);flex-shrink:0}.file-viewer-title{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--text-primary);font-weight:500;font-size:14px}.file-viewer-title svg{color:var(--text-secondary)}.file-viewer-actions{display:flex;align-items:center;gap:var(--spacing-md)}.zoom-controls,.page-controls{display:flex;align-items:center;gap:var(--spacing-xs);padding:4px;background:var(--bg-tertiary);border-radius:var(--radius-md)}.zoom-controls button,.page-controls button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition-fast)}.zoom-controls button:hover:not(:disabled),.page-controls button:hover:not(:disabled){background:var(--bg-secondary);color:var(--text-primary)}.zoom-controls button:disabled,.page-controls button:disabled{opacity:.3;cursor:not-allowed}.zoom-level,.page-info{min-width:60px;text-align:center;font-size:13px;font-weight:500;color:var(--text-secondary)}.close-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast)}.close-btn:hover{background:#f4433626;color:var(--color-error)}.file-viewer-content{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);position:relative}.file-counter{padding:2px 8px;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:12px;color:var(--text-secondary);margin-left:var(--spacing-sm)}.nav-arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;background:var(--bg-overlay);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:all var(--transition-fast);z-index:10;border:2px solid rgba(255,255,255,.2)}.nav-arrow:hover:not(:disabled){background:#000000b3;border-color:#fff6;transform:translateY(-50%) scale(1.1)}.nav-arrow:disabled,.nav-arrow.disabled{opacity:.3;cursor:not-allowed}.nav-prev{left:var(--spacing-lg)}.nav-next{right:var(--spacing-lg)}.viewer-loading,.viewer-error,.viewer-unsupported{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);color:var(--text-secondary);padding:var(--spacing-xl)}.viewer-loading .spinner{width:40px;height:40px;border:3px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.viewer-error svg,.viewer-unsupported svg{color:var(--text-tertiary)}.viewer-error p,.viewer-unsupported p{font-size:14px}.image-container{display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);transition:transform .2s ease;transform-origin:center center}.image-container img{max-width:100%;max-height:calc(95vh - 80px);object-fit:contain;border-radius:var(--radius-md);box-shadow:0 4px 20px #0000004d}.pdf-container{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-lg);overflow:auto;width:100%}.pdf-container .react-pdf__Document{display:flex;flex-direction:column;align-items:center}.pdf-container .react-pdf__Page{box-shadow:0 4px 20px #0000004d;border-radius:var(--radius-sm);overflow:hidden}.pdf-container .react-pdf__Page canvas{display:block}.video-container{display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);width:100%;height:100%}.video-container video{max-width:100%;max-height:calc(95vh - 100px);border-radius:var(--radius-md);box-shadow:0 4px 20px #0000004d}.unsupported-video-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-md);text-align:center}.unsupported-video-icon{width:100px;height:100px;background:linear-gradient(135deg,#6b7280,#4b5563);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.unsupported-video-title{font-size:16px;font-weight:600;color:var(--text-primary);margin:0;word-break:break-word;max-width:400px}.unsupported-video-message{font-size:14px;color:var(--text-secondary);margin:0}.unsupported-video-hint{font-size:12px;color:var(--text-tertiary);margin:0;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-sm)}.download-video-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s;margin-top:var(--spacing-md)}.download-video-btn:hover{background:var(--color-primary-dark)}.audio-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-lg)}.audio-icon{width:120px;height:120px;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.audio-filename{font-size:16px;font-weight:500;color:var(--text-primary)}.audio-container audio{width:100%;max-width:400px}.zip-viewer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg)}.zip-viewer-container{width:100%;max-width:700px;max-height:80vh;background:var(--bg-primary);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 25px 50px -12px #00000080}.zip-viewer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-light);flex-shrink:0}.zip-viewer-title{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--text-primary);font-weight:500;font-size:14px}.zip-viewer-title svg{color:var(--color-primary)}.zip-viewer-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.extract-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}.extract-btn:hover:not(:disabled){background:var(--color-primary-dark)}.extract-btn:disabled{opacity:.6;cursor:not-allowed}.close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s}.close-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.zip-viewer-info{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-tertiary);font-size:12px;color:var(--text-secondary)}.zip-viewer-info .separator{color:var(--border-light)}.zip-viewer-toolbar{display:flex;align-items:center;justify-content:flex-end;padding:var(--spacing-xs) var(--spacing-lg);border-bottom:1px solid var(--border-light)}.sort-options{display:flex;gap:var(--spacing-xs)}.sort-options button{padding:var(--spacing-xs) var(--spacing-sm);background:none;border:1px solid transparent;border-radius:var(--radius-sm);font-size:12px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.sort-options button:hover{background:var(--bg-tertiary)}.sort-options button.active{background:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}.zip-viewer-content{flex:1;overflow-y:auto;min-height:200px}.zip-loading,.zip-error,.zip-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-md);color:var(--text-secondary)}.zip-error svg{color:var(--color-danger)}.zip-file-list{padding:var(--spacing-sm) 0}.zip-entry{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-md);font-size:13px;color:var(--text-primary);cursor:default;transition:background .1s}.zip-entry:hover{background:var(--bg-hover)}.zip-entry.dir{cursor:pointer}.expand-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;transition:transform .15s}.expand-icon.expanded{transform:rotate(90deg)}.expand-placeholder{width:16px}.zip-entry-icon{display:flex;align-items:center;color:var(--text-secondary)}.zip-entry.dir .zip-entry-icon{color:var(--color-warning)}.zip-entry-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zip-entry-size{color:var(--text-tertiary);font-size:12px;flex-shrink:0}.zip-children{border-left:1px dashed var(--border-light);margin-left:18px}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.spinner.large{width:32px;height:32px;border-width:3px;border-color:var(--border-light);border-top-color:var(--color-primary)}.onlyoffice-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.onlyoffice-container{width:95vw;height:95vh;background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;overflow:hidden;animation:modalSlideIn .3s cubic-bezier(.175,.885,.32,1.275)}.onlyoffice-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-light);background:var(--bg-secondary);flex-shrink:0}.onlyoffice-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.onlyoffice-close-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-tertiary);background:transparent;border:none;cursor:pointer;transition:all var(--transition-fast)}.onlyoffice-close-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.onlyoffice-editor-wrapper{flex:1;position:relative;overflow:hidden}#onlyoffice-editor{width:100%;height:100%}#onlyoffice-editor iframe{width:100%;height:100%;border:none}.onlyoffice-loading{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);background:var(--bg-primary)}.onlyoffice-spinner{width:40px;height:40px;border:3px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.onlyoffice-loading p{color:var(--text-secondary);font-size:var(--font-size-sm)}.onlyoffice-error{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-lg);background:var(--bg-primary);text-align:center;padding:var(--spacing-xl)}.onlyoffice-error svg{color:var(--color-warning)}.onlyoffice-error p{color:var(--text-secondary);font-size:var(--font-size-sm);max-width:400px;line-height:1.6}@media (max-width: 768px){.onlyoffice-container{width:100vw;height:100vh;border-radius:0}}.share-modal{background:var(--bg-primary);border-radius:var(--radius-xl);width:90%;max-width:520px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;animation:modalSlideUp .3s ease-out}.share-modal-content{padding:28px;overflow-y:auto;flex:1}.share-modal-content h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 8px;text-align:center}.share-target{font-size:var(--font-size-sm);color:var(--text-secondary);text-align:center;margin-bottom:24px;display:flex;align-items:center;justify-content:center;gap:6px}.share-target svg{width:16px;height:16px;color:var(--text-tertiary)}.share-section{margin-bottom:28px}.share-section:last-child{margin-bottom:0}.share-section h3{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 16px;display:flex;align-items:center;gap:8px}.section-badge{background:var(--bg-tertiary);color:var(--text-secondary);font-size:var(--font-size-xs);padding:2px 8px;border-radius:10px;font-weight:var(--font-weight-medium)}.user-search-container{position:relative;margin-bottom:16px}.search-input-wrapper{position:relative}.search-input-wrapper svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--text-tertiary);pointer-events:none}.share-modal .search-input{width:100%;padding:10px 14px;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:var(--font-size-sm);outline:none;transition:all var(--transition-fast);background:var(--bg-primary);color:var(--text-primary);font-weight:var(--font-weight-medium);box-sizing:border-box}.share-modal .search-input::placeholder{color:var(--text-tertiary);font-weight:var(--font-weight-regular)}.share-modal .search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.search-loading{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;border:2px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:translateY(-50%) rotate(360deg)}}.share-modal .search-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;max-height:220px;overflow-y:auto;animation:dropdownFade .2s ease-out}@keyframes dropdownFade{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.share-search-item{display:flex;align-items:center;gap:8px;padding:6px 10px;margin:0;cursor:pointer;transition:background-color var(--transition-fast);box-sizing:border-box}.share-search-item:first-child{border-radius:8px 8px 0 0}.share-search-item:last-child{border-radius:0 0 8px 8px}.share-search-item:only-child{border-radius:8px}.share-search-item:hover{background:var(--bg-secondary)}.share-modal .search-dropdown .no-results{padding:12px 10px;text-align:center;color:var(--text-tertiary);font-size:var(--font-size-sm)}.share-search-item__avatar{width:24px;height:24px;min-width:24px;min-height:24px;border-radius:50%;background:var(--btn-primary-gradient);color:var(--text-on-primary);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);font-size:11px;flex-shrink:0}.share-search-item__info{display:flex;flex-direction:row;align-items:center;min-width:0;gap:6px}.share-search-item__name{font-weight:var(--font-weight-medium);color:var(--text-primary);font-size:var(--font-size-sm);line-height:1.2}.share-search-item__email{font-size:var(--font-size-xs);line-height:1.2;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-modal .user-avatar{width:32px;height:32px;border-radius:50%;background:var(--btn-primary-gradient);color:var(--text-on-primary);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);flex-shrink:0;box-shadow:var(--shadow-primary)}.share-modal .user-avatar.small{width:28px;height:28px;font-size:11px;box-shadow:none}.share-modal .user-info{display:flex;flex-direction:column;min-width:0;gap:1px}.share-modal .user-name{font-weight:var(--font-weight-semibold);color:var(--text-primary);font-size:var(--font-size-sm)}.share-modal .user-email{font-size:var(--font-size-xs);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-user{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;background:var(--color-primary-light);border-radius:var(--radius-lg);margin-bottom:16px;animation:selectedUserFade .2s ease-out}@keyframes selectedUserFade{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.user-badge{display:flex;align-items:center;gap:10px;background:var(--bg-primary);padding:8px 14px;border-radius:var(--radius-md);border:none;box-shadow:var(--shadow-sm)}.user-badge span{font-weight:var(--font-weight-semibold);color:var(--text-primary);font-size:var(--font-size-sm)}.remove-user-btn{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:18px;line-height:1;padding:4px;border-radius:50%;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.remove-user-btn:hover{color:var(--color-error);background:var(--color-error-light)}.permission-select{display:flex;align-items:center;gap:10px}.permission-select label{font-size:var(--font-size-sm);color:var(--color-primary);font-weight:var(--font-weight-medium)}.permission-select select{padding:10px 14px;border:none;border-radius:var(--radius-md);background:var(--bg-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;color:var(--text-primary);box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.permission-select select:focus{outline:none;box-shadow:0 0 0 3px var(--color-primary-light)}.message-input{margin-bottom:16px}.message-input label{display:block;font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:8px;font-weight:var(--font-weight-medium)}.message-input textarea{width:100%;padding:14px 16px;border:2px solid var(--border-light);border-radius:var(--radius-lg);font-size:var(--font-size-sm);resize:vertical;min-height:80px;background:var(--bg-primary);color:var(--text-primary);transition:all var(--transition-fast);font-family:inherit}.message-input textarea::placeholder{color:var(--text-tertiary)}.message-input textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-light)}.error-message{color:var(--color-error);font-size:var(--font-size-sm);text-align:center;margin:12px 0;padding:12px;background:var(--color-error-light);border-radius:var(--radius-md)}.success-message{color:var(--color-success);font-size:var(--font-size-sm);text-align:center;margin:12px 0;padding:12px;background:var(--color-success-light);border-radius:var(--radius-md)}.loading-text,.empty-text{font-size:var(--font-size-sm);color:var(--text-tertiary);text-align:center;padding:24px 16px}.share-btn{width:100%;padding:16px;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-on-primary);background:var(--btn-primary-gradient);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);margin-top:8px}.share-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-primary-lg)}.share-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.existing-shares-section{border-top:1px solid var(--border-light);padding-top:24px;margin-top:8px}.shares-list{display:flex;flex-direction:column;gap:12px}.share-item{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--bg-secondary);border-radius:var(--radius-lg);transition:all var(--transition-fast)}.share-item:hover{background:var(--bg-tertiary)}.share-user{display:flex;align-items:center;gap:12px}.share-actions{display:flex;align-items:center;gap:10px}.permission-select-inline{padding:8px 12px;border:2px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;color:var(--text-primary);transition:all var(--transition-fast)}.permission-select-inline:focus{outline:none;border-color:var(--color-primary)}.remove-share-btn{background:var(--color-error-light);border:none;color:var(--color-error);cursor:pointer;padding:8px 12px;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.remove-share-btn:hover{color:var(--text-on-primary);background:var(--color-error)}.remove-share-btn:disabled{opacity:.5;cursor:not-allowed}.permission-badge{font-size:11px;padding:4px 10px;border-radius:var(--radius-sm);font-weight:var(--font-weight-semibold)}.permission-badge.read-only{background:var(--color-primary-light);color:var(--color-primary)}.permission-badge.read-write{background:var(--color-success-light);color:var(--color-success)}.modal-footer{padding:16px 28px;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;background:var(--bg-secondary)}.modal-footer .btn-cancel{padding:12px 24px;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-secondary);background:var(--bg-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.modal-footer .btn-cancel:hover{background:var(--bg-tertiary);color:var(--text-primary)}@media (max-width: 768px){.share-modal{width:95%;max-height:90vh}}@media (max-width: 480px){.share-modal{width:100%;border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:85vh;animation:modalSlideUp .3s ease-out}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.share-modal-content{padding:24px 20px}.selected-user{flex-direction:column;align-items:stretch;gap:12px}.user-badge,.permission-select{justify-content:center}.share-item{flex-direction:column;align-items:stretch;gap:12px}.share-user,.share-actions{justify-content:center}.modal-footer{padding:16px 20px}}.link-share-modal{background:var(--bg-primary);border-radius:20px;width:90%;max-width:480px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;animation:modalSlideUp .3s ease-out}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.link-share-modal-content{padding:28px;overflow-y:auto;flex:1}.link-share-modal-content h2{font-size:22px;font-weight:700;color:var(--text-primary);margin:0 0 8px;text-align:center}.link-share-target{font-size:14px;color:var(--text-secondary);text-align:center;margin-bottom:24px;display:flex;align-items:center;justify-content:center;gap:6px}.link-share-target svg{width:16px;height:16px;color:var(--text-tertiary)}.created-link-section{background:var(--gradient-info-light);padding:20px;border-radius:16px;margin-bottom:24px}.created-link-section label{display:block;font-size:12px;font-weight:600;color:var(--color-primary-dark);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.link-display{display:flex;gap:10px}.link-input{flex:1;padding:14px 16px;border:none;border-radius:12px;font-size:14px;background:#fff;color:var(--text-primary);font-weight:500}.copy-btn{padding:14px 20px;font-size:14px;font-weight:600;color:#fff;background:var(--btn-primary-gradient);border:none;border-radius:12px;cursor:pointer;transition:all .2s ease;white-space:nowrap}.copy-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-primary)}.copy-btn.copied{background:var(--gradient-success)}.link-options h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 16px}.option-row{display:flex;align-items:center;padding:14px 0;border-bottom:1px solid var(--border-light)}.option-row:last-of-type{border-bottom:none}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;flex:1}.checkbox-label input[type=checkbox]{width:20px;height:20px;min-width:20px;min-height:20px;border-radius:5px;border:2px solid var(--text-tertiary);cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--bg-primary);transition:all .15s ease;position:relative;display:flex;align-items:center;justify-content:center}.checkbox-label input[type=checkbox]:hover{border-color:var(--color-primary)}.checkbox-label input[type=checkbox]:checked{background:var(--color-primary);border-color:var(--color-primary)}.checkbox-label input[type=checkbox]:checked:after{content:"";display:block;width:5px;height:9px;border:solid white;border-width:0 2.5px 2.5px 0;transform:rotate(45deg);margin-top:-2px}.checkbox-label span{font-size:14px;color:var(--text-primary);font-weight:500;line-height:1.4}.option-input{padding:10px 14px;border:2px solid var(--border-light);border-radius:10px;font-size:14px;background:var(--bg-primary);color:var(--text-primary);transition:all .2s ease;font-weight:500}.option-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.option-input.small{width:80px;text-align:center}.password-input-wrapper{flex:1;margin-left:12px}.password-input-wrapper .option-input{width:100%}.expiry-select-wrapper{margin-left:auto}.expiry-select-wrapper .option-input{min-width:100px}.option-hint{font-size:12px;color:var(--text-tertiary);margin-left:auto;padding:4px 10px;background:var(--bg-secondary);border-radius:6px}.error-message{color:var(--color-error);font-size:14px;text-align:center;margin:12px 0;padding:12px;background:var(--color-error-lighter);border-radius:10px}.success-message{color:var(--color-success);font-size:14px;text-align:center;margin:12px 0;padding:12px;background:var(--color-success-lighter);border-radius:10px}.create-link-btn{width:100%;padding:16px;font-size:16px;font-weight:600;color:#fff;background:var(--btn-primary-gradient);border:none;border-radius:14px;cursor:pointer;transition:all .2s ease;margin-top:20px}.create-link-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #228be64d}.create-link-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.existing-links-section{border-top:1px solid var(--border-light);padding-top:24px;margin-top:8px}.existing-links-section h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 16px;display:flex;align-items:center;gap:8px}.link-count-badge{background:var(--bg-tertiary);color:var(--text-secondary);font-size:12px;padding:2px 8px;border-radius:10px;font-weight:500}.loading-text,.empty-text{color:var(--text-tertiary);font-size:14px;text-align:center;padding:20px}.existing-links-list{display:flex;flex-direction:column;gap:12px}.link-item{background:var(--bg-secondary);border-radius:14px;padding:16px;transition:all .2s ease}.link-item:hover{background:var(--bg-tertiary)}.link-item-header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.link-url-display{flex:1;display:flex;gap:6px;min-width:0}.link-url-input{flex:1;min-width:0;padding:8px 12px;font-size:13px;font-family:SF Mono,Monaco,Inconsolata,monospace;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-light);border-radius:8px;outline:none}.link-url-input:focus{border-color:var(--color-primary)}.link-copy-btn{padding:8px 12px;font-size:12px;font-weight:600;color:#fff;background:var(--color-primary);border:none;border-radius:8px;cursor:pointer;white-space:nowrap;transition:all .2s ease}.link-copy-btn:hover{background:var(--color-primary-hover)}.link-token{font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:13px;color:var(--color-primary);background:#228be61a;padding:4px 10px;border-radius:6px;font-weight:500}.link-delete-btn{padding:6px 12px;font-size:12px;font-weight:600;color:var(--color-error);background:#fa52521a;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.link-delete-btn:hover:not(:disabled){background:var(--color-error);color:#fff}.link-delete-btn:disabled{opacity:.5;cursor:not-allowed}.link-item-meta{display:flex;flex-wrap:wrap;gap:8px}.link-meta-badge{font-size:11px;padding:4px 8px;border-radius:6px;font-weight:500;display:flex;align-items:center;gap:4px}.link-meta-badge svg{width:12px;height:12px}.link-meta-badge.password{background:#fab0051a;color:var(--color-warning)}.link-meta-badge.expiry{background:#228be61a;color:var(--color-primary)}.link-meta-badge.access{background:#40c0571a;color:var(--color-success)}.link-meta-badge.login{background:#9969e51a;color:var(--color-admin-purple)}.link-meta-badge.inactive{background:#adb5bd1a;color:var(--text-tertiary)}.modal-close-btn{position:absolute;top:16px;right:16px;width:32px;height:32px;border:none;background:var(--bg-secondary);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:var(--text-secondary)}.modal-close-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-close-btn svg{width:16px;height:16px}.share-type-toggle{display:flex;gap:8px;margin-bottom:20px;background:var(--bg-secondary);padding:4px;border-radius:12px}.share-type-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;font-size:14px;font-weight:600;color:var(--text-secondary);background:transparent;border:none;border-radius:10px;cursor:pointer;transition:all .2s ease}.share-type-btn svg{width:18px;height:18px}.share-type-btn:hover{color:var(--text-primary);background:var(--bg-tertiary)}.share-type-btn.active{color:#fff;background:var(--btn-primary-gradient);box-shadow:0 2px 8px #228be64d}.upload-options-divider{display:flex;align-items:center;margin:16px 0;gap:12px}.upload-options-divider:before,.upload-options-divider:after{content:"";flex:1;height:1px;background:var(--border-light)}.upload-options-divider span{font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.link-meta-badge.upload{background:#228be61a;color:var(--color-primary)}.link-item.upload-link{border-left:3px solid var(--color-primary)}@media (max-width: 480px){.link-share-modal{border-radius:20px 20px 0 0;max-height:90vh}.link-share-modal-content{padding:24px 20px}.link-display{flex-direction:column}.copy-btn{width:100%}.option-row{flex-wrap:wrap;gap:12px}.password-input-wrapper{width:100%;margin-left:0;margin-top:8px}.expiry-select-wrapper{margin-left:0}.option-hint{width:100%;text-align:center;margin-top:4px}}.folder-select-modal{background:var(--bg-primary);border-radius:var(--radius-lg);width:500px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl)}.folder-select-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-light)}.folder-select-modal .modal-header h2{font-size:16px;font-weight:600;margin:0;color:var(--text-primary)}.folder-select-modal .close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition-fast)}.folder-select-modal .close-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.folder-tree{flex:1;overflow-y:auto;padding:var(--spacing-sm) 0;min-height:300px;max-height:50vh}.tree-section{margin-bottom:var(--spacing-xs)}.section-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;font-weight:600;color:var(--text-primary);transition:background var(--transition-fast)}.section-header:hover{background:var(--bg-secondary)}.section-header svg{color:var(--text-secondary)}.section-content{margin-left:var(--spacing-md)}.empty-message{padding:var(--spacing-md);color:var(--text-tertiary);font-size:13px;text-align:center}.folder-node{-webkit-user-select:none;user-select:none}.folder-item{display:flex;align-items:center;gap:var(--spacing-xs);padding:6px 8px;cursor:pointer;border-radius:var(--radius-sm);margin:1px var(--spacing-sm);transition:all var(--transition-fast)}.folder-item:hover{background:var(--bg-secondary)}.folder-item.selected{background:var(--color-primary-light);color:var(--color-primary)}.folder-item.selected .folder-icon{color:var(--color-primary)}.folder-item.excluded{opacity:.5;cursor:not-allowed}.folder-item.excluded:hover{background:transparent}.expand-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-xs);color:var(--text-tertiary);flex-shrink:0}.expand-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.folder-icon{color:var(--color-primary);flex-shrink:0}.folder-name{font-size:13px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.excluded-badge{font-size:10px;padding:2px 6px;background:var(--bg-tertiary);color:var(--text-tertiary);border-radius:var(--radius-xs);flex-shrink:0}.folder-children{margin-left:10px;border-left:1px solid var(--border-light)}.spinner{animation:spin 1s linear infinite}.folder-select-modal .modal-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-light);gap:var(--spacing-md)}.selected-path{flex:1;min-width:0;display:flex;align-items:center;gap:var(--spacing-xs);font-size:13px}.selected-path .label{color:var(--text-tertiary);flex-shrink:0}.selected-path .path{color:var(--text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-path .placeholder{color:var(--text-tertiary);font-style:italic}.modal-actions{display:flex;gap:var(--spacing-sm);flex-shrink:0}.cancel-btn{padding:8px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:var(--text-secondary);background:var(--bg-secondary);transition:all var(--transition-fast)}.cancel-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.confirm-btn{padding:8px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:#fff;background:var(--color-primary);transition:all var(--transition-fast)}.confirm-btn:hover:not(:disabled){background:#1d6ce0}.confirm-btn:disabled{opacity:.5;cursor:not-allowed}.mobile-fab-container{display:none}@media (max-width: 768px){.mobile-fab-container{display:block;position:fixed;right:16px;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:1000}.mobile-fab-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;z-index:-1;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mobile-fab-actions{position:absolute;right:0;bottom:64px;display:flex;flex-direction:column;align-items:flex-end;gap:12px;opacity:0;visibility:hidden;transform:translateY(10px);transition:all .2s ease}.mobile-fab-container.open .mobile-fab-actions{opacity:1;visibility:visible;transform:translateY(0)}.mobile-fab-action{display:flex;align-items:center;gap:12px;padding:0;border:none;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}.mobile-fab-action-label{padding:8px 14px;background:var(--bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap}.mobile-fab-action-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--bg-primary);border-radius:var(--radius-full);box-shadow:var(--shadow-md);color:var(--color-primary);transition:all var(--transition-fast)}.mobile-fab-action-icon.upload{background:var(--color-primary);color:#fff}.mobile-fab-action:active .mobile-fab-action-icon{transform:scale(.95)}.mobile-fab-action:active .mobile-fab-action-label{background:var(--bg-secondary)}.mobile-fab-main{display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--color-primary);border:none;border-radius:var(--radius-full);box-shadow:var(--shadow-lg);color:#fff;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.mobile-fab-main:active{transform:scale(.95)}.mobile-fab-main svg{transition:transform .2s ease}.mobile-fab-container.open .mobile-fab-main{background:var(--text-secondary)}.mobile-fab-container.open .mobile-fab-main svg{transform:rotate(45deg)}.file-list-container:has(.multi-select-bar)~.mobile-fab-container,.file-list-container:has(.file-details-panel:not(.empty))~.mobile-fab-container{display:none}}.file-list-wrapper{display:flex;height:100%;min-height:calc(100vh - 108px);gap:0;align-items:flex-start;padding-right:320px}.mobile-panel-overlay{display:none}.file-list-container{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-card, var(--shadow-sm));min-height:calc(100vh - 112px);height:100%;display:flex;flex-direction:column;position:relative;flex:1;min-width:0}.file-list-container.marquee-selecting{-webkit-user-select:none;user-select:none}.marquee-selection-box{position:absolute;border:1px solid var(--color-primary);background:#228be61a;pointer-events:none;z-index:100}.file-list-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-light)}.breadcrumb{display:flex;align-items:center;gap:var(--spacing-sm)}.back-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition-fast)}.back-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.current-path{font-size:18px;font-weight:600;color:var(--text-primary)}.view-options{display:flex;gap:var(--spacing-xs)}.view-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-tertiary);transition:all var(--transition-fast)}.view-btn:hover{background:var(--bg-secondary);color:var(--text-secondary)}.view-btn.active{background:var(--bg-secondary);color:var(--text-primary)}.refresh-btn:hover{background:var(--bg-secondary);color:var(--color-primary)}.refresh-btn:active svg{animation:spin-once .5s ease}@keyframes spin-once{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.local-search-container{display:flex;align-items:center;gap:var(--spacing-xs)}.local-search-container.active{flex:1;max-width:300px}.local-search-input-wrapper{display:flex;align-items:center;gap:8px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:0 12px;height:36px;flex:1;transition:all var(--transition-fast)}.local-search-input-wrapper:focus-within{border-color:var(--color-primary);background:var(--bg-primary);box-shadow:0 0 0 3px #3b82f61a}.local-search-input-wrapper .search-icon{position:static;transform:none;color:var(--text-tertiary);flex-shrink:0;display:block;width:16px;height:16px}.local-search-input{flex:1;background:none;border:none;font-size:13px;color:var(--text-primary);outline:none;min-width:0}.local-search-input::placeholder{color:var(--text-tertiary)}.clear-search-btn{padding:4px;border-radius:var(--radius-sm);color:var(--text-tertiary);transition:all var(--transition-fast);flex-shrink:0}.clear-search-btn:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.search-toggle-btn.active{background:var(--color-primary);color:#fff}.search-toggle-btn.active:hover{background:var(--color-primary-dark);color:#fff}.search-spinner{width:14px;height:14px;border:2px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.file-table{width:100%;flex:1;display:flex;flex-direction:column}.file-count{font-size:13px;color:var(--text-secondary);font-weight:400;margin-left:var(--spacing-md)}.file-table-header{display:grid;grid-template-columns:1fr 100px 120px 50px;padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-secondary);font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.file-table-header .sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.file-table-header .sortable:hover{color:var(--text-primary)}.context-menu{position:fixed;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--spacing-xs);min-width:160px;z-index:1000;animation:fadeIn .15s ease}.context-menu-item{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:10px 12px;font-size:14px;color:var(--text-primary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.context-menu-item:hover{background:var(--bg-secondary)}.context-menu-item.danger{color:var(--color-error)}.context-menu-item.danger:hover{background:#f443361a}.context-menu-item.has-submenu{position:relative;justify-content:space-between}.context-menu-item .submenu-arrow{margin-left:auto;opacity:.5}.context-submenu{position:absolute;left:100%;top:0;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--spacing-xs);min-width:180px;z-index:1001;animation:fadeIn .15s ease}.context-submenu .context-menu-item{white-space:nowrap}.input-label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:var(--spacing-xs)}.input-hint{font-size:12px;color:var(--text-tertiary);margin-top:var(--spacing-sm)}.new-file-modal .modal-body,.compress-modal .modal-body{padding:var(--spacing-lg)}.compress-input-wrapper{display:flex;align-items:center;gap:0}.compress-input-wrapper .rename-input{flex:1;border-top-right-radius:0;border-bottom-right-radius:0}.compress-extension{display:flex;align-items:center;padding:0 var(--spacing-md);height:36px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-left:none;border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-secondary);font-size:14px;font-family:var(--font-mono)}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.file-table-body{display:flex;flex-direction:column;flex:1}.file-table-body-virtual{display:block;flex:1;min-height:0;overflow:auto;height:0}.file-row{display:grid;grid-template-columns:1fr 100px 120px 50px;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-light);cursor:pointer;transition:all var(--transition-fast)}.file-row:hover{background:var(--bg-tertiary)}.file-row.selected{background:var(--color-primary-light);border-left:3px solid var(--color-primary)}.file-row:last-child{border-bottom:none}.col-name{display:flex;align-items:center;gap:var(--spacing-md)}.file-icon{color:var(--text-tertiary);flex-shrink:0}.file-icon.folder{color:var(--color-primary)}.file-name{font-size:14px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.star-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);color:var(--text-tertiary);background:transparent;border:none;cursor:pointer;opacity:0;transition:all var(--transition-fast);flex-shrink:0;margin-left:auto}.file-row:hover .star-btn,.file-card:hover .star-btn,.star-btn.starred{opacity:1}.star-btn:hover{background:var(--bg-secondary);color:var(--color-warning)}.star-btn.starred{color:var(--color-warning)}.lock-indicator{display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);flex-shrink:0;margin-left:var(--spacing-xs)}.lock-indicator svg{width:14px;height:14px}.col-size,.col-date{display:flex;align-items:center;font-size:13px;color:var(--text-secondary)}.col-actions{display:flex;align-items:center;justify-content:center}.file-table.share-view .file-table-header,.file-table.share-view .file-row{grid-template-columns:1fr 180px 80px 100px 70px 40px}.col-share-info{display:flex;flex-direction:column;gap:4px;justify-content:center;min-width:0}.col-share-info .shared-with-user{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-share-info .shared-with-user svg{flex-shrink:0;color:var(--text-tertiary)}.col-share-info .permission-tag{display:inline-flex;align-items:center;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600;width:fit-content}.col-share-info .permission-tag.r{background:#6366f11a;color:var(--color-indigo)}.col-share-info .permission-tag.rw{background:#10b9811a;color:var(--color-2fa-green)}.col-share-options{display:flex;align-items:center;min-width:0}.share-options-list{display:flex;flex-wrap:wrap;gap:6px}.share-option{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:500;white-space:nowrap}.share-option svg{flex-shrink:0}.share-option.password{background:#ef44441a;color:var(--color-error)}.share-option.login{background:#3b82f61a;color:var(--color-primary)}.share-option.expiry{background:#f59e0b1a;color:var(--color-warning)}.share-option.access{background:#10b9811a;color:var(--color-2fa-green)}.share-option.public{background:#6b72801a;color:var(--text-tertiary)}.col-unshare{display:flex;align-items:center;justify-content:center;gap:4px}.unshare-btn,.copy-link-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-tertiary);transition:all var(--transition-fast);opacity:0}.file-row:hover .unshare-btn,.file-row:hover .copy-link-btn{opacity:1}.copy-link-btn:hover{background:#3b82f61a;color:#3b82f6}.unshare-btn:hover{background:#ef44441a;color:#ef4444}.action-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-tertiary);opacity:0;transition:all var(--transition-fast)}.file-row:hover .action-btn{opacity:1}.action-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.loading-state,.error-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-xl);flex:1;min-height:300px;color:var(--text-secondary)}.spinner{width:32px;height:32px;border:3px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.loading-state p,.error-state p{font-size:14px}.empty-state svg{color:var(--text-tertiary)}.empty-state h3{font-size:16px;font-weight:600;color:var(--text-primary)}.empty-state p{font-size:14px;color:var(--text-secondary)}.file-details-panel{width:320px;min-width:320px;height:calc(100vh - 60px);background:var(--bg-primary);border-left:1px solid var(--border-light);border-radius:0;display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;position:fixed;top:60px;right:0;z-index:100;animation:slideInRight .2s ease}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.file-details-panel.empty{animation:none;justify-content:center;align-items:center}.details-empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);color:var(--text-tertiary);text-align:center;padding:var(--spacing-xl)}.details-empty-state svg{opacity:.5}.details-empty-state p{font-size:13px;line-height:1.5;margin:0}.details-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-light)}.details-header h3{font-size:16px;font-weight:600;color:var(--text-primary)}.close-details-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-tertiary);transition:all var(--transition-fast)}.close-details-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.details-icon{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl)}.details-icon svg{width:64px;height:64px}.details-thumbnail{display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);cursor:pointer;position:relative}.details-thumbnail img{max-width:100%;max-height:180px;object-fit:contain;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.details-thumbnail:hover img{transform:scale(1.02)}.thumbnail-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;background:var(--bg-overlay);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;opacity:0;transition:opacity var(--transition-fast)}.details-thumbnail:hover .thumbnail-overlay{opacity:1}.details-name{font-size:16px;font-weight:600;color:var(--text-primary);text-align:center;padding:0 var(--spacing-lg);word-break:break-all}.details-list{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md);flex:1}.details-item{display:flex;flex-direction:column;gap:var(--spacing-xs)}.details-label{font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.details-value{font-size:14px;color:var(--text-primary)}.details-value.path{font-size:13px;color:var(--text-secondary);word-break:break-all;font-family:monospace}.details-actions{padding:var(--spacing-lg);border-top:1px solid var(--border-light);display:flex;flex-direction:column;gap:var(--spacing-sm)}.btn-detail-action{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:12px;border-radius:var(--radius-md);font-size:14px;font-weight:500;background:var(--bg-secondary);color:var(--text-primary);transition:all var(--transition-fast)}.btn-detail-action:hover{background:var(--bg-tertiary)}.btn-detail-action.danger{background:var(--color-error-light);color:var(--color-error)}.btn-detail-action.danger:hover{background:var(--color-error);color:#fff}.context-menu-divider{height:1px;background:var(--border-light);margin:4px 8px}.multi-select-bar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--spacing-md);padding:12px 20px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:200;animation:slideUp .2s ease}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.select-count{font-size:14px;font-weight:600;color:var(--text-primary)}.multi-action-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:8px 16px;border-radius:var(--radius-md);font-size:14px;font-weight:500;background:var(--bg-secondary);color:var(--text-primary);transition:all var(--transition-fast)}.multi-action-btn:hover{background:var(--bg-tertiary)}.multi-action-btn.danger{background:var(--color-error-light);color:var(--color-error)}.multi-action-btn.danger:hover{background:var(--color-error);color:#fff}.rename-modal{width:400px}.rename-input{width:100%;padding:12px;font-size:14px;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);transition:border-color var(--transition-fast)}.rename-input:focus{outline:none;border-color:var(--color-primary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;user-select:none;-webkit-user-select:none}.modal{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-light)}.modal-header h3{font-size:18px;font-weight:600;color:var(--text-primary)}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-tertiary);transition:all var(--transition-fast)}.modal-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.modal-body{padding:var(--spacing-lg)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--border-light)}.btn-cancel{padding:10px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:500;background:var(--bg-secondary);color:var(--text-primary);transition:all var(--transition-fast)}.btn-confirm{padding:10px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:500;background:var(--color-primary);color:#fff;transition:all var(--transition-fast)}.btn-confirm:hover{background:var(--color-primary-dark)}.btn-confirm:disabled{opacity:.5;cursor:not-allowed}.file-list-container{position:relative}.file-list-container.dragging-files{outline:2px dashed var(--color-primary);outline-offset:-4px;background:#3182f605}.drag-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#3182f614;display:flex;align-items:center;justify-content:center;z-index:10;pointer-events:none}.drag-overlay-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl);background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--color-primary);pointer-events:none}.drag-overlay-content svg{color:var(--color-primary)}.drag-overlay-content p{font-size:16px;font-weight:500;color:var(--text-primary);margin:0}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--spacing-md);padding:var(--spacing-lg);flex:1;align-content:flex-start}.file-grid-virtual{display:block;overflow-y:auto;padding:var(--spacing-lg) 0}.file-grid-virtual-row{box-sizing:border-box}.file-card{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:2px solid transparent}.file-card:hover{background:var(--bg-tertiary)}.file-card.selected{background:var(--color-primary-light);border-color:var(--color-primary)}.file-card.focused{outline:2px solid var(--color-primary);outline-offset:2px}.file-card-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;margin-bottom:var(--spacing-sm)}.file-card-icon svg{width:48px;height:48px}.file-thumbnail-wrapper{width:64px;height:64px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:8px;background:var(--bg-secondary)}.thumbnail-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.file-thumbnail{width:100%;height:100%;object-fit:cover;border-radius:8px;transition:opacity .2s ease}.file-thumbnail.loading{opacity:0}.file-card.has-thumbnail .file-card-icon{background:var(--bg-secondary);border-radius:8px;overflow:hidden}.row-thumbnail-wrapper{width:24px;height:24px;min-width:24px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:4px;background:var(--bg-secondary);margin-right:var(--spacing-sm)}.row-thumbnail{width:100%;height:100%;object-fit:cover;border-radius:4px}.file-card-name{font-size:13px;font-weight:500;color:var(--text-primary);text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.file-card-meta{font-size:11px;color:var(--text-tertiary);margin-top:4px}.file-row.focused{outline:2px solid var(--color-primary);outline-offset:-2px}.file-row.dragging,.file-card.dragging{opacity:.5}.file-row.drop-target,.file-card.drop-target{background:var(--color-primary-light)!important;outline:2px dashed var(--color-primary);outline-offset:-2px}.file-row.cut,.file-card.cut{opacity:.5}.file-row.cut .file-name,.file-card.cut .file-card-name{font-style:italic}.empty-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-lg)}.empty-action-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:12px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:500;background:var(--bg-secondary);color:var(--text-primary);transition:all var(--transition-fast)}.empty-action-btn:hover{background:var(--bg-tertiary)}.empty-action-btn.primary{background:var(--color-primary);color:#fff}.empty-action-btn.primary:hover{background:var(--color-primary-dark)}@media (max-width: 768px){.file-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:var(--spacing-sm);padding:var(--spacing-md)}.file-card-icon{width:48px;height:48px}.file-card-icon svg{width:36px;height:36px}.file-card-name{font-size:12px}.empty-actions{flex-direction:column}}.details-metadata{padding:var(--spacing-sm) var(--spacing-lg);border-top:1px solid var(--border-light)}.metadata-row{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:8px 0;border-bottom:1px solid var(--border-light)}.metadata-row:last-child{border-bottom:none}.metadata-label{flex-shrink:0;width:40px;font-size:11px;font-weight:500;color:var(--text-tertiary);padding-top:2px}.metadata-value{flex:1;font-size:12px;color:var(--text-primary);line-height:1.4;word-break:break-word}.metadata-value.clickable{min-height:20px}.metadata-value.editable{cursor:pointer;border-radius:var(--radius-sm);padding:2px 4px;margin:-2px -4px;transition:background var(--transition-fast)}.metadata-value.editable:hover{background:var(--bg-tertiary)}.metadata-value .placeholder{color:var(--text-tertiary);font-style:italic;font-size:11px}.metadata-edit-inline{flex:1}.description-input{width:100%;padding:6px 8px;border:1px solid var(--color-primary);border-radius:var(--radius-sm);font-size:12px;font-family:inherit;background:var(--bg-primary);color:var(--text-primary);resize:none;line-height:1.4}.description-input:focus{outline:none;box-shadow:0 0 0 2px var(--color-primary-alpha)}.tags-inline{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:4px}.tag-chip{display:inline-flex;align-items:center;gap:2px;padding:2px 6px;background:var(--color-primary-light);color:var(--color-primary);border-radius:10px;font-size:11px;font-weight:500}.tag-remove-btn{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;margin-left:2px;font-size:11px;line-height:1;color:var(--color-primary);opacity:.7;transition:opacity var(--transition-fast)}.tag-remove-btn:hover{opacity:1}.tag-add-inline{position:relative}.tag-add-input{width:60px;padding:2px 6px;border:1px dashed var(--border-default);border-radius:10px;font-size:11px;background:transparent;color:var(--text-tertiary);transition:all var(--transition-fast)}.tag-add-input:focus{width:100px;border-style:solid;border-color:var(--color-primary);outline:none;color:var(--text-primary)}.tag-add-input::placeholder{color:var(--text-tertiary)}.tag-dropdown{position:absolute;top:100%;left:0;min-width:100px;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:20;margin-top:2px;overflow:hidden}.tag-dropdown button{display:block;width:100%;padding:6px 8px;text-align:left;font-size:11px;color:var(--text-primary);background:transparent;border:none;cursor:pointer}.tag-dropdown button:hover{background:var(--bg-secondary)}.share-badges{display:inline-flex;align-items:center;gap:6px;margin-left:8px}.share-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:500;background:var(--bg-tertiary);color:var(--text-secondary);cursor:help}.share-badge svg{width:12px;height:12px}.share-badge.password{background:#ef444426;color:#ef4444}.share-badge.login{background:#3b82f626;color:#3b82f6}.share-badge.expiry{background:#f59e0b26;color:var(--color-warning)}.share-badge.access{background:#10b98126;color:var(--color-2fa-green)}.download-options-modal{max-width:450px}.download-info{text-align:center;color:var(--text-secondary);margin-bottom:var(--spacing-lg)}.download-options{display:flex;flex-direction:column;gap:var(--spacing-md)}.download-option-btn{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-tertiary);border:2px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s;text-align:left}.download-option-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--color-primary)}.download-option-btn:disabled{opacity:.6;cursor:not-allowed}.download-option-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--bg-secondary);border-radius:var(--radius-md);color:var(--color-primary);flex-shrink:0}.download-option-text{display:flex;flex-direction:column;gap:4px;flex:1}.download-option-text strong{color:var(--text-primary);font-size:14px}.download-option-text span{color:var(--text-tertiary);font-size:12px}.spinner.small{width:20px;height:20px;border-width:2px;flex-shrink:0}@media (max-width: 768px){.file-list-wrapper{padding-right:0;min-height:calc(100vh - 88px)}.file-list-container{padding:0;min-height:calc(100vh - 88px);border-radius:0;box-shadow:none}.file-list-header{padding:var(--spacing-sm) var(--spacing-md);flex-wrap:wrap;gap:var(--spacing-sm)}.breadcrumb{gap:var(--spacing-xs)}.back-btn{width:32px;height:32px}.current-path{font-size:16px}.file-count{font-size:12px;margin-left:var(--spacing-sm)}.view-options{gap:2px}.view-btn{width:32px;height:32px}.local-search-container.active{max-width:none;width:100%;order:3;flex-basis:100%}.local-search-input-wrapper{height:40px}.file-details-panel.empty{display:none}.file-details-panel:not(.empty){position:fixed;left:0;right:0;bottom:0;top:auto;width:100%;min-width:100%;max-height:55vh;height:auto;z-index:1200;border-left:none;border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:0 -4px 20px #00000026;animation:slideInUp .3s var(--ease-out-expo);overflow-y:auto;overscroll-behavior:contain}.file-details-panel:not(.empty):before{content:"";position:sticky;top:0;left:50%;transform:translate(-50%);display:block;width:36px;height:4px;background:var(--border-default);border-radius:2px;margin:8px auto 0}.mobile-panel-overlay{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;z-index:1100;cursor:pointer;-webkit-tap-highlight-color:transparent}@keyframes slideInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.details-header{padding:var(--spacing-sm) var(--spacing-md);position:sticky;top:0;background:var(--bg-primary);z-index:10;border-bottom:1px solid var(--border-light)}.details-header h3{font-size:14px}.file-details-panel:not(.empty) .close-details-btn{width:32px;height:32px;background:var(--bg-secondary);border-radius:var(--radius-full)}.details-icon{padding:var(--spacing-sm);display:none}.details-thumbnail{padding:var(--spacing-sm)}.details-thumbnail img{max-height:100px}.details-name{font-size:14px;font-weight:600;padding:var(--spacing-xs) var(--spacing-md)}.details-list{padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-xs);display:grid;grid-template-columns:repeat(2,1fr)}.details-item{gap:2px}.details-label{font-size:10px}.details-value{font-size:12px}.details-value.path{font-size:11px;grid-column:1 / -1}.details-metadata{display:none}.details-actions{padding:var(--spacing-sm) var(--spacing-md);padding-bottom:calc(var(--spacing-sm) + env(safe-area-inset-bottom));flex-direction:row;flex-wrap:wrap;gap:var(--spacing-xs);border-top:1px solid var(--border-light)}.btn-detail-action{flex:1;min-width:calc(50% - var(--spacing-xs));padding:10px 12px;font-size:13px;min-height:40px}.btn-detail-action svg{width:14px;height:14px}.file-table-header{grid-template-columns:1fr 40px;padding:var(--spacing-sm) var(--spacing-md)}.file-table-header .col-size,.file-table-header .col-date{display:none}.file-row{grid-template-columns:1fr 40px;padding:12px var(--spacing-md);gap:var(--spacing-sm)}.col-name{gap:var(--spacing-sm)}.file-icon{flex-shrink:0}.file-icon svg{width:20px;height:20px}.file-name{font-size:14px}.file-row .col-size,.file-row .col-date{display:none}.col-actions{display:flex}.action-btn{opacity:1}.multi-select-bar{left:var(--spacing-md);right:var(--spacing-md);bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom));transform:none;padding:10px var(--spacing-md);border-radius:var(--radius-lg);flex-wrap:wrap;gap:var(--spacing-sm);justify-content:center}.multi-action-btn{padding:10px 14px;font-size:13px;min-height:44px}.select-count{width:100%;text-align:center;font-size:13px}.breadcrumb{padding:var(--spacing-sm) var(--spacing-md);overflow-x:auto;-webkit-overflow-scrolling:touch}.breadcrumb-item{font-size:13px;white-space:nowrap}.file-toolbar{padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-sm);flex-wrap:wrap}.toolbar-btn{padding:8px 12px;font-size:13px;min-height:40px}.empty-state{padding:var(--spacing-xl) var(--spacing-md)}.empty-icon svg{width:48px;height:48px}.empty-title{font-size:16px}.empty-description{font-size:13px}.empty-action-btn{padding:12px 20px;font-size:14px;min-height:44px}.details-metadata{padding:var(--spacing-sm) var(--spacing-md)}.metadata-label{font-size:10px;width:36px}.metadata-value{font-size:13px}.tag-chip{font-size:12px;padding:4px 8px}.context-menu{position:fixed;left:0!important;right:0!important;bottom:0!important;top:auto!important;max-height:70vh;width:100%;min-width:100%;border-radius:var(--radius-xl) var(--radius-xl) 0 0;border:none;border-top:1px solid var(--border-light);padding:var(--spacing-sm);padding-bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;animation:slideInUp .25s var(--ease-out-expo)}.context-menu:before{content:"";display:block;width:36px;height:4px;background:var(--border-default);border-radius:2px;margin:0 auto var(--spacing-sm)}.context-menu-item{padding:14px 16px;font-size:15px;min-height:48px;border-radius:var(--radius-md)}.context-menu-item svg{width:20px;height:20px}.context-menu-item.has-submenu{flex-direction:column;align-items:stretch}.context-menu-item.has-submenu>svg:first-child,.context-menu-item.has-submenu>span:first-of-type{display:none}.submenu-arrow{display:none}.context-submenu{position:static;border:none;box-shadow:none;padding:0;margin-top:var(--spacing-xs);min-width:100%}.context-submenu .context-menu-item{padding-left:24px;background:var(--bg-secondary)}.context-menu-divider{margin:var(--spacing-xs) 0}}@media (max-width: 375px){.file-details-panel .details-actions{flex-direction:column}.multi-select-bar{left:var(--spacing-sm);right:var(--spacing-sm)}.multi-action-btn{flex:1;min-width:calc(50% - var(--spacing-sm))}}.trash-container{flex:1;display:flex;flex-direction:column;padding:var(--spacing-lg);overflow:hidden}.trash-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-light)}.trash-title{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--text-primary)}.trash-title h2{margin:0;font-size:20px;font-weight:600}.trash-info{display:flex;align-items:center;gap:var(--spacing-md);margin-left:auto;color:var(--text-secondary);font-size:14px}.trash-count,.trash-size{padding:4px 10px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.empty-trash-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:8px 16px;background:var(--color-error);color:#fff;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.empty-trash-btn:hover:not(:disabled){background:var(--color-error-dark)}.empty-trash-btn:disabled{opacity:.6;cursor:not-allowed}.trash-loading,.trash-error{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-secondary);font-size:16px}.trash-error{color:var(--color-error)}.trash-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:var(--text-tertiary);gap:var(--spacing-md)}.trash-empty p{font-size:16px;margin:0}.trash-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--spacing-xs)}.trash-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.trash-item:hover{background:var(--bg-secondary);border-color:var(--border-color)}.trash-item.selected{background:#3182f61a;border-color:var(--color-primary)}.trash-item-icon{flex-shrink:0}.trash-item-icon .folder-icon{color:var(--color-primary)}.trash-item-icon .file-icon{color:var(--text-tertiary)}.trash-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.trash-item-name{font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trash-item-meta{display:flex;align-items:center;gap:var(--spacing-md);font-size:12px;color:var(--text-tertiary)}.trash-item-path{max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trash-item-date{display:flex;align-items:center;gap:4px;flex-shrink:0}.trash-item-size{display:flex;align-items:center;gap:4px;flex-shrink:0;font-size:13px;color:var(--text-secondary);min-width:80px;justify-content:flex-end}.trash-item-actions{display:flex;align-items:center;gap:var(--spacing-xs);opacity:0;transition:opacity var(--transition-fast)}.trash-item:hover .trash-item-actions{opacity:1}.restore-btn,.delete-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.restore-btn{background:var(--color-primary);color:#fff}.restore-btn:hover:not(:disabled){background:var(--color-primary-hover)}.delete-btn{background:var(--color-error);color:#fff}.delete-btn:hover:not(:disabled){background:var(--color-error-dark)}.restore-btn:disabled,.delete-btn:disabled{opacity:.6;cursor:not-allowed}.trash-container .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.trash-container .modal-content{background:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-width:400px;width:90%;text-align:center;box-shadow:var(--shadow-xl)}.trash-container .modal-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--spacing-md)}.trash-container .modal-icon.warning{background:#e74c3c1a;color:var(--color-error)}.trash-container .modal-content h3{margin:0 0 var(--spacing-sm);font-size:18px;font-weight:600;color:var(--text-primary)}.trash-container .modal-content p{margin:0 0 var(--spacing-lg);font-size:14px;color:var(--text-secondary);line-height:1.5}.trash-container .modal-actions{display:flex;gap:var(--spacing-sm);justify-content:center}.btn-cancel{padding:10px 20px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-cancel:hover{background:var(--bg-tertiary)}.btn-danger{padding:10px 20px;background:var(--color-error);color:#fff;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.btn-danger:hover:not(:disabled){background:var(--color-error-dark)}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.trash-toolbar{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md)}.trash-search{display:flex;align-items:center;flex:1;min-width:200px;max-width:400px;position:relative}.trash-search .search-icon{position:absolute;left:12px;color:var(--text-tertiary);pointer-events:none}.trash-search-input{width:100%;padding:8px 36px;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:14px;background:var(--bg-primary);color:var(--text-primary);transition:border-color var(--transition-fast)}.trash-search-input:focus{outline:none;border-color:var(--color-primary)}.trash-search-input::placeholder{color:var(--text-tertiary)}.trash-search .search-clear{position:absolute;right:8px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:var(--bg-tertiary);border-radius:50%;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.trash-search .search-clear:hover{background:var(--border-color);color:var(--text-primary)}.trash-filters{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.trash-filter-select{padding:8px 28px 8px 12px;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:13px;background:var(--bg-primary);color:var(--text-primary);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;transition:border-color var(--transition-fast)}.trash-filter-select:focus{outline:none;border-color:var(--color-primary)}.trash-filter-select:hover{border-color:var(--border-color)}.filter-reset-btn{padding:8px 12px;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:13px;background:var(--bg-primary);color:var(--color-primary);cursor:pointer;transition:all var(--transition-fast)}.filter-reset-btn:hover{background:#3182f61a;border-color:var(--color-primary)}.filter-reset-link{background:none;border:none;color:var(--color-primary);font-size:14px;cursor:pointer;text-decoration:underline}.filter-reset-link:hover{color:var(--color-primary-hover)}@media (max-width: 768px){.trash-toolbar{flex-direction:column}.trash-search{max-width:none}.trash-filters{width:100%}.trash-filter-select{flex:1;min-width:0}}.upload-panel-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.upload-panel{position:relative;width:480px;max-height:70vh;background:var(--bg-primary);border-radius:16px;box-shadow:0 20px 60px #0003;display:flex;flex-direction:column;animation:scaleIn .25s ease;overflow:hidden}@keyframes scaleIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.upload-panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:linear-gradient(135deg,var(--color-primary) 0%,#1B64DA 100%);color:#fff}.upload-panel-header h3{font-size:18px;font-weight:600;color:#fff;display:flex;align-items:center;gap:10px}.upload-panel-header h3:before{content:"";width:24px;height:24px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white' stroke-width='2'%3E%3Cpath d='M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12'/%3E%3C/svg%3E") no-repeat center;background-size:contain}.upload-panel-actions{display:flex;align-items:center;gap:8px}.panel-action-btn{font-size:13px;color:#ffffffe6;padding:6px 12px;border-radius:6px;transition:all var(--transition-fast);background:#ffffff26}.panel-action-btn:hover{background:#ffffff40;color:#fff}.panel-close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:#fffc;transition:all var(--transition-fast)}.panel-close-btn:hover{background:#fff3;color:#fff}.upload-panel-stats{display:flex;gap:16px;padding:12px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border-light);flex-wrap:wrap}.stat{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500}.stat:before{content:"";width:8px;height:8px;border-radius:50%}.stat.uploading:before{background:var(--color-primary)}.stat.transferring:before{background:#f59e0b}.stat.pending:before{background:var(--text-tertiary)}.stat.completed:before{background:var(--color-success)}.stat.error:before{background:var(--color-error)}.stat.uploading{color:var(--color-primary)}.stat.transferring{color:var(--color-warning)}.stat.pending{color:var(--text-tertiary)}.stat.completed{color:var(--color-success)}.stat.error{color:var(--color-error)}.stat.empty{color:var(--text-tertiary);font-weight:400}.stat.empty:before{display:none}.upload-panel-list{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}.upload-panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:48px 24px;color:var(--text-tertiary)}.upload-panel-empty svg{width:64px;height:64px;opacity:.4}.upload-panel-empty span{font-size:14px}.upload-panel-item{position:relative;display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-light);transition:all var(--transition-fast)}.upload-panel-item:hover{background:var(--bg-tertiary);border-color:var(--border-medium)}.upload-panel-item.completed{background:#22c55e0d;border-color:#22c55e33}.upload-panel-item.error{background:#ef44440d;border-color:#ef444433}.upload-panel-item.paused{background:#f59e0b0d;border-color:#f59e0b33}.item-info{display:flex;align-items:center;gap:12px}.status-icon{flex-shrink:0;width:20px;height:20px}.spinner-small{width:20px;height:20px;border:2px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.spinner-small.transfer{border-top-color:var(--color-warning)}.item-details{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.item-name{font-size:14px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-size{font-size:12px;color:var(--text-tertiary)}.item-progress{display:flex;flex-direction:column;gap:6px;padding-left:32px}.progress-bar-mini{height:6px;background:var(--border-light);border-radius:3px;overflow:hidden}.progress-bar-mini .progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary) 0%,#60A5FA 100%);border-radius:3px;transition:width .3s ease}.progress-bar-mini.paused .progress-fill,.progress-fill.paused{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.progress-info{display:flex;align-items:center;gap:8px}.progress-text{font-size:12px;color:var(--text-secondary);font-weight:500}.progress-text.paused{color:var(--color-warning)}.speed-text{font-size:11px;color:var(--color-primary);font-weight:600;padding:2px 8px;background:#3182f61a;border-radius:4px}.error-text{font-size:12px;color:var(--color-error);font-weight:500}.item-actions{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:flex;gap:4px;opacity:0;transition:opacity var(--transition-fast)}.upload-panel-item:hover .item-actions{opacity:1}.item-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:var(--text-tertiary);transition:all var(--transition-fast)}.item-btn:hover{background:var(--bg-primary);color:var(--text-primary)}.item-btn.remove:hover{background:#ef44441a;color:var(--color-error)}.upload-panel-item.transfer{border-left:4px solid #F59E0B;padding-left:12px}.upload-panel-item.transfer.move{border-left-color:var(--color-warning)}.upload-panel-item.transfer.copy{border-left-color:var(--color-admin-purple)}.upload-panel-item.transfer.completed{border-left-color:var(--color-success)}.upload-panel-item.transfer.error{border-left-color:var(--color-error)}.item-name-row{display:flex;align-items:center;gap:8px}.transfer-type-icon{display:flex;align-items:center;justify-content:center;color:var(--color-warning)}.upload-panel-item.copy .transfer-type-icon{color:var(--color-admin-purple)}.item-dest{font-size:12px;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transfer-status{font-size:12px;font-weight:500}.transfer-status.pending{color:var(--text-tertiary)}.progress-bar-mini.transfer{height:6px}.progress-fill.move{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.progress-fill.copy{background:linear-gradient(90deg,#8b5cf6,#a78bfa)}.speed-text.move{background:#f59e0b1a;color:var(--color-warning)}.speed-text.copy{background:#8b5cf61a;color:var(--color-admin-purple)}.current-file{font-size:11px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.file-count{font-size:11px;color:var(--text-secondary);font-weight:600;background:var(--bg-tertiary);padding:2px 8px;border-radius:4px;margin-left:auto}.transfer-complete-info{font-size:12px;color:var(--color-success);font-weight:500}.paused-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--color-warning)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal{background:var(--bg-primary);border-radius:16px;box-shadow:var(--shadow-xl);animation:modalSlideIn .3s cubic-bezier(.175,.885,.32,1.275)}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.auth-modal{width:400px;max-width:90vw}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-light)}.modal-header h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.close-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-tertiary);background:transparent;border:none;cursor:pointer;transition:all .15s ease}.close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.auth-form{display:flex;flex-direction:column;gap:16px;padding:24px}.auth-error{background:var(--color-error-light);border:1px solid var(--color-error);color:var(--color-error);padding:12px;border-radius:8px;font-size:14px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:14px;font-weight:500;color:var(--text-primary)}.form-group input{padding:12px 14px;border:1px solid var(--border-light);border-radius:8px;font-size:14px;transition:border-color .15s,box-shadow .15s;background:var(--bg-primary);color:var(--text-primary)}.form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-group input::placeholder{color:var(--text-tertiary)}.submit-btn{background:var(--color-primary-gradient);color:var(--text-on-primary);border:none;padding:14px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .15s ease;margin-top:8px;box-shadow:var(--shadow-primary)}.submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-primary-lg)}.submit-btn:active:not(:disabled){transform:translateY(0)}.submit-btn:disabled{background:var(--text-tertiary);cursor:not-allowed;box-shadow:none}.auth-hint{text-align:center;padding:16px 24px 24px;font-size:13px;color:var(--text-secondary);border-top:1px solid var(--border-light)}.auth-hint p{margin:0}.user-profile-modal{width:480px;max-width:90vw}.profile-tabs{display:flex;border-bottom:1px solid var(--border-light);padding:0 20px}.profile-tabs button{background:none;border:none;padding:12px 16px;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.profile-tabs button:hover{color:var(--text-primary)}.profile-tabs button.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.profile-content{padding:20px;min-height:300px}.profile-message{padding:12px;border-radius:8px;font-size:14px;margin-bottom:16px}.profile-message.success{background:var(--color-success-light);border:1px solid var(--color-success);color:var(--color-success)}.profile-message.error{background:var(--color-error-light);border:1px solid var(--color-error);color:var(--color-error)}.user-info{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-tertiary);border-radius:12px;margin-bottom:20px}.user-avatar{width:56px;height:56px;border-radius:50%;background:var(--color-primary-gradient);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:600}.user-details h3{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.user-provider{font-size:13px;color:var(--text-secondary)}.theme-toggle-btn{margin-left:auto;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--bg-secondary);color:var(--text-secondary);transition:all .2s;flex-shrink:0}.theme-toggle-btn:hover{background:var(--bg-hover);color:var(--color-primary);transform:rotate(15deg)}.theme-toggle-btn:active{transform:rotate(0) scale(.95)}.profile-content .form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.profile-content .form-group label{font-size:14px;font-weight:500;color:var(--text-primary)}.profile-content .form-group input{padding:10px 12px;border:1px solid var(--border-light);border-radius:8px;font-size:14px;background:var(--bg-primary);color:var(--text-primary);transition:border-color .15s,box-shadow .15s}.profile-content .form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.profile-content .form-group input:disabled{background:var(--bg-tertiary);color:var(--text-secondary)}.field-hint{font-size:12px;color:var(--text-secondary)}.field-error{color:var(--color-error);font-size:12px}.smb-info{display:flex;gap:12px;padding:16px;background:var(--color-primary-light);border-radius:12px;margin-bottom:20px}.smb-info svg{flex-shrink:0;color:var(--color-primary)}.smb-info p{margin:0;font-size:13px;color:var(--text-primary);line-height:1.5}.form-actions{margin-top:24px}.primary-btn{width:100%;background:var(--color-primary);color:var(--text-on-primary);border:none;padding:12px;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:background .15s}.primary-btn:hover:not(:disabled){background:var(--color-primary-hover)}.primary-btn:disabled{background:var(--text-tertiary);cursor:not-allowed}.profile-footer{padding:16px 20px;border-top:1px solid var(--border-light)}.logout-btn{display:flex;align-items:center;gap:8px;width:100%;padding:10px;background:var(--color-error-light);border:1px solid var(--color-error);border-radius:8px;color:var(--color-error);font-size:14px;font-weight:500;cursor:pointer;justify-content:center;transition:background .15s}.logout-btn:hover{background:var(--color-error-light);opacity:.8}.twofa-content{padding-top:8px}.twofa-status-badge{display:flex;align-items:center;gap:12px;padding:16px;border-radius:12px;margin-bottom:20px}.twofa-status-badge.enabled{background:var(--color-success-light);border:1px solid var(--color-success)}.twofa-status-badge.disabled{background:var(--bg-tertiary);border:1px solid var(--border-light)}.twofa-status-badge span{font-size:15px;font-weight:600}.twofa-status-badge.enabled span{color:var(--color-success)}.twofa-status-badge.disabled span{color:var(--text-secondary)}.twofa-enabled-info p,.twofa-disabled-info p{margin:0 0 16px;font-size:14px;color:var(--text-secondary);line-height:1.5}.twofa-backup-info{padding:12px;background:var(--color-primary-light);border-radius:8px;margin-bottom:16px;font-size:14px;color:var(--color-primary)}.twofa-actions{display:flex;gap:12px}.twofa-actions .secondary-btn,.twofa-actions .danger-btn{flex:1;padding:10px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s}.secondary-btn{background:var(--bg-tertiary);border:1px solid var(--border-light);color:var(--text-primary)}.secondary-btn:hover:not(:disabled){background:var(--bg-hover)}.danger-btn{background:var(--color-error-light);border:1px solid var(--color-error);color:var(--color-error)}.danger-btn:hover:not(:disabled){opacity:.8}.danger-btn:disabled,.secondary-btn:disabled{opacity:.6;cursor:not-allowed}.twofa-info-box{display:flex;gap:12px;padding:16px;background:var(--color-primary-light);border-radius:12px;margin-bottom:20px}.twofa-info-box svg{flex-shrink:0;color:var(--color-primary)}.twofa-info-box h4{margin:0 0 4px;font-size:15px;font-weight:600;color:var(--color-primary)}.twofa-info-box p{margin:0;font-size:13px;color:var(--color-primary);opacity:.8}.twofa-setup h4{margin:0 0 8px;font-size:15px;font-weight:600;color:var(--text-primary)}.twofa-setup p{margin:0 0 16px;font-size:13px;color:var(--text-secondary)}.qr-code-container{display:flex;justify-content:center;padding:20px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:12px;margin-bottom:16px}.qr-code-container img{width:200px;height:200px}.manual-entry{padding:12px;background:var(--bg-tertiary);border-radius:8px;margin-bottom:24px}.manual-entry p{margin:0 0 8px;font-size:12px;color:var(--text-secondary)}.secret-code{display:block;padding:8px 12px;background:var(--bg-secondary);color:var(--color-success);font-family:monospace;font-size:14px;border-radius:6px;word-break:break-all;border:1px solid var(--border-light)}.profile-content .form-group .verify-code-input{font-size:24px;text-align:center;letter-spacing:8px;font-family:SF Mono,Monaco,Courier New,monospace;padding:16px}.form-actions{display:flex;gap:12px}.form-actions .secondary-btn{flex:1}.form-actions .primary-btn{flex:2}.danger-warning{display:flex;gap:12px;padding:16px;background:var(--color-error-light);border:1px solid var(--color-error);border-radius:12px;margin-bottom:20px}.danger-warning svg{flex-shrink:0;color:var(--color-error)}.danger-warning h4{margin:0 0 4px;font-size:15px;font-weight:600;color:var(--color-error)}.danger-warning p{margin:0;font-size:13px;color:var(--color-error);opacity:.85}.backup-codes-display{padding:16px;background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:12px}.backup-codes-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.backup-codes-header svg{color:var(--color-warning)}.backup-codes-header h4{margin:0;font-size:15px;font-weight:600;color:var(--text-primary)}.backup-codes-warning{margin:0 0 16px;font-size:13px;color:var(--text-secondary);line-height:1.5}.backup-codes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px}.backup-codes-grid code{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:6px;font-family:monospace;font-size:14px;text-align:center;color:var(--text-primary)}.backup-codes-actions{display:flex;gap:12px}.backup-codes-actions .secondary-btn{display:flex;align-items:center;justify-content:center;gap:6px;flex:1}.backup-codes-actions .primary-btn{flex:2}.app-password-content{display:flex;flex-direction:column;gap:16px}.connection-info-section{background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:10px;overflow:hidden}.connection-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;background:transparent;border:none;cursor:pointer;font-size:13px;font-weight:500;color:var(--text-primary);transition:background .15s}.connection-toggle:hover{background:var(--bg-hover)}.connection-toggle span{flex:1;text-align:left}.connection-toggle .toggle-arrow{transition:transform .2s;color:var(--text-tertiary)}.connection-toggle.open .toggle-arrow{transform:rotate(180deg)}.connection-cards{display:flex;flex-direction:column;gap:10px;padding:0 12px 12px}.connection-card{padding:12px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:8px;transition:border-color .15s}.connection-card:hover{border-color:var(--border-medium)}.connection-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:var(--text-secondary)}.connection-header span{font-size:12px;font-weight:500}.connection-url{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:6px;cursor:pointer;transition:background .15s,border-color .15s}.connection-url:hover{background:var(--bg-hover);border-color:var(--color-primary)}.connection-url:active{background:var(--bg-tertiary)}.connection-url code{font-family:SF Mono,Monaco,Courier New,monospace;font-size:11px;color:var(--text-primary);word-break:break-all;flex:1}.connection-url svg{flex-shrink:0;color:var(--text-tertiary);transition:color .15s}.connection-url:hover svg{color:var(--color-primary)}.connection-hint{display:block;margin-top:6px;font-size:11px;color:var(--text-tertiary)}.app-password-form h4{margin:0 0 16px;font-size:14px;font-weight:600;color:var(--text-primary)}.initial-setup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}.initial-setup-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:440px;max-height:90vh;overflow-y:auto;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.initial-setup-header{text-align:center;padding:2rem 2rem 1rem;border-bottom:1px solid #eee}.initial-setup-icon{color:#2563eb;margin-bottom:1rem}.initial-setup-header h1{margin:0 0 .5rem;font-size:1.5rem;color:#1a1a2e}.initial-setup-header p{margin:0;color:#666;font-size:.9rem;line-height:1.5}.initial-setup-warning{margin-top:.75rem!important;padding:.5rem .75rem;background:#fff3cd;border-radius:6px;color:#856404!important;font-size:.85rem!important;font-weight:500}.initial-setup-form{padding:1.5rem 2rem}.initial-setup-form .form-group{margin-bottom:1.25rem}.initial-setup-form label{display:block;margin-bottom:.5rem;font-weight:500;color:#333;font-size:.9rem}.initial-setup-form input{width:100%;padding:.75rem 1rem;border:1px solid #ddd;border-radius:8px;font-size:1rem;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.initial-setup-form input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.initial-setup-form .form-hint{display:block;margin-top:.35rem;font-size:.8rem;color:#888}.initial-setup-form .form-error{display:block;margin-top:.35rem;font-size:.8rem;color:#dc3545}.initial-setup-form .form-success{display:block;margin-top:.35rem;font-size:.8rem;color:#28a745}.password-strength{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.password-strength-bar{flex:1;height:6px;background:#e9ecef;border-radius:3px;overflow:hidden}.password-strength-fill{height:100%;border-radius:3px;transition:width .3s,background-color .3s}.password-strength span{font-size:.8rem;font-weight:500;min-width:40px}.initial-setup-error{padding:.75rem 1rem;background:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24;margin-bottom:1.25rem;font-size:.9rem}.initial-setup-submit{width:100%;padding:.875rem;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.initial-setup-submit:hover:not(:disabled){background:#1d4ed8}.initial-setup-submit:disabled{background:#93c5fd;cursor:not-allowed}.initial-setup-footer{text-align:center;padding:1rem 2rem 1.5rem;border-top:1px solid #eee}.initial-setup-footer p{margin:0;font-size:.8rem;color:#999}@media (prefers-color-scheme: dark){.initial-setup-modal{background:#1a1a2e}.initial-setup-header{border-bottom-color:#333}.initial-setup-header h1{color:#fff}.initial-setup-header p{color:#aaa}.initial-setup-warning{background:#332900;color:#ffc107!important}.initial-setup-form label{color:#ddd}.initial-setup-form input{background:#0f0f1a;border-color:#333;color:#fff}.initial-setup-form input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}.initial-setup-form .form-hint{color:#777}.password-strength-bar{background:#333}.initial-setup-error{background:#3d1c1e;border-color:#5c2a2e;color:#f5c6cb}.initial-setup-footer{border-top-color:#333}.initial-setup-footer p{color:#666}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-primary);padding:var(--spacing-xl)}.login-container{width:100%;max-width:420px;background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal, var(--shadow-xl));overflow:hidden;animation:modalEnter var(--duration-spring, .5s) var(--spring, ease)}.login-header{text-align:center;padding:48px 40px 32px;background:var(--bg-primary)}.login-logo{width:80px;height:80px;margin:0 auto 24px;display:flex;align-items:center;justify-content:center}.login-logo img{width:100%;height:100%;object-fit:contain}.login-banner{margin:0 auto 24px;display:flex;align-items:center;justify-content:center}.login-banner img{max-width:280px;height:auto;object-fit:contain}.login-header h1{margin:0 0 8px;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);letter-spacing:var(--letter-spacing-tight, -.02em)}.login-header p{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary)}.login-form{padding:8px 40px 32px}.login-error{background:var(--color-error-light);color:var(--color-error);padding:14px 16px;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:24px;text-align:center}.login-form .form-group{margin-bottom:20px}.login-form .form-group label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin-bottom:8px}.login-form .form-group input{width:100%;padding:16px 18px;border:1.5px solid var(--border-light);border-radius:var(--radius-md);font-size:16px;transition:all var(--duration-fast, .15s) var(--ease-out-expo, ease);background:var(--bg-primary);color:var(--text-primary);box-sizing:border-box}.login-form .form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-light)}.login-form .form-group input::placeholder{color:var(--text-tertiary)}.form-group.remember-me{margin-bottom:10px}.checkbox-label{display:flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{width:18px;height:18px;margin-right:10px;accent-color:var(--color-primary);cursor:pointer}.checkbox-text{font-size:var(--font-size-sm);color:var(--text-secondary)}.login-btn{width:100%;padding:16px;background:var(--color-primary);color:var(--text-on-primary);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-normal, -.01em);cursor:pointer;transition:all var(--duration-fast, .15s) var(--ease-out-expo, ease);box-shadow:var(--shadow-primary);margin-top:16px}.login-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-primary-lg)}.login-btn:active:not(:disabled){transform:translateY(0) scale(.98)}.login-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.login-footer{text-align:center;padding:24px 40px 32px}.login-footer p{margin:0;font-size:var(--font-size-sm);color:var(--text-tertiary)}.twofa-logo{background:var(--btn-2fa-gradient);box-shadow:0 10px 25px #10b9814d}.otp-input{font-size:24px;text-align:center;letter-spacing:8px;font-family:SF Mono,Monaco,Courier New,monospace;padding:16px}.otp-hint{display:block;margin-top:8px;font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.5}.cancel-btn{width:100%;padding:14px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);margin-top:12px}.cancel-btn:hover:not(:disabled){background:var(--bg-tertiary)}.cancel-btn:disabled{opacity:.6;cursor:not-allowed}.sso-section{padding:20px 40px;display:flex;flex-direction:column;gap:12px}.sso-btn{width:100%;padding:14px 20px;display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);background:var(--bg-primary);color:var(--text-primary)}.sso-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.sso-btn:disabled{opacity:.6;cursor:not-allowed}.sso-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px}.sso-icon img{max-width:20px;max-height:20px;object-fit:contain}.sso-text{flex:1;text-align:center}.login-divider{display:flex;align-items:center;padding:0 40px;margin:5px 0}.login-divider:before,.login-divider:after{content:"";flex:1;border-bottom:1px solid var(--border-light)}.login-divider span{padding:0 16px;color:var(--text-tertiary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.sso-only-notice{padding:30px 40px;text-align:center}.sso-only-notice p{margin:0 0 8px;color:var(--text-secondary);font-size:var(--font-size-sm)}.sso-only-notice p:last-child{margin-bottom:0}.login-container>.login-error{margin:20px 40px 0}@media (max-width: 480px){.login-page{padding:var(--spacing-md)}.login-header{padding:30px 24px 24px}.login-form{padding:24px}.sso-section{padding:16px 24px}.login-divider{padding:0 24px}.login-footer{padding:16px 24px 24px}}.share-access-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;background:var(--bg-page-gradient)}.share-access-card{background:#fff;border-radius:24px;padding:48px 40px;width:100%;max-width:420px;box-shadow:0 4px 6px -1px #0000000d,0 10px 20px -2px #0000000a,0 20px 40px -4px #00000008;text-align:center;animation:slideUp .4s ease-out}.share-loading{display:flex;flex-direction:column;align-items:center;gap:20px}.share-spinner{width:40px;height:40px;border:3px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.share-loading p{color:var(--text-secondary);font-size:15px;font-weight:500}.share-error{display:flex;flex-direction:column;align-items:center;gap:16px}.share-error-icon{width:64px;height:64px;color:var(--color-error)}.share-error h2{font-size:22px;font-weight:700;color:var(--text-primary);margin:0}.share-error p{font-size:15px;color:var(--text-secondary);margin:0;line-height:1.5}.share-lock-icon{width:64px;height:64px;color:var(--color-primary);margin-bottom:8px}.share-login-required{display:flex;flex-direction:column;align-items:center;gap:16px}.share-login-required h2{font-size:22px;font-weight:700;color:var(--text-primary);margin:0}.share-login-required p{font-size:15px;color:var(--text-secondary);margin:0;line-height:1.5}.share-password-form{display:flex;flex-direction:column;align-items:center;gap:16px}.share-password-form h2{font-size:22px;font-weight:700;color:var(--text-primary);margin:0}.share-password-form p{font-size:15px;color:var(--text-secondary);margin:0;line-height:1.5}.share-password-form form{width:100%;display:flex;flex-direction:column;gap:12px;margin-top:8px}.share-password-input{width:100%;padding:16px 20px;font-size:16px;border:2px solid var(--border-light);border-radius:14px;outline:none;transition:all .2s ease;box-sizing:border-box;text-align:center;font-weight:500;letter-spacing:2px}.share-password-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px #228be61a}.share-password-input::placeholder{letter-spacing:normal;color:var(--text-tertiary)}.share-password-error{color:var(--color-error);font-size:14px;margin:0}.share-btn-primary{width:100%;padding:16px 24px;font-size:16px;font-weight:600;color:#fff;background:var(--btn-primary-gradient);border:none;border-radius:14px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.share-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #228be64d}.share-btn-primary:active:not(:disabled){transform:translateY(0)}.share-btn-primary:disabled{opacity:.6;cursor:not-allowed}.share-btn-secondary{padding:14px 24px;font-size:15px;font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);border:none;border-radius:14px;cursor:pointer;transition:all .2s ease;margin-top:8px}.share-btn-secondary:hover{background:var(--bg-hover)}.share-success{padding:40px}.share-file-preview{width:100px;height:100px;background:var(--bg-secondary-gradient);border-radius:24px;display:flex;align-items:center;justify-content:center;margin:0 auto 24px}.share-file-icon{width:56px;height:56px}.share-file-icon.folder{color:var(--color-warning)}.share-file-icon.file{color:var(--color-primary)}.share-file-info{margin-bottom:24px}.share-file-name{font-size:20px;font-weight:700;color:var(--text-primary);margin:0 0 8px;word-break:break-all;line-height:1.4}.share-file-meta{display:flex;justify-content:center;gap:12px}.share-file-size,.share-file-type{font-size:14px;color:var(--text-secondary);font-weight:500}.share-download-btn{margin-bottom:16px}.share-download-icon{width:20px;height:20px}.share-btn-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.share-expiry{font-size:13px;color:var(--text-tertiary);margin:0}.share-branding{margin-top:32px;font-size:13px;color:var(--text-tertiary);font-weight:500}.share-action-buttons{display:flex;flex-direction:column;gap:12px;width:100%;margin-bottom:16px}.share-btn-icon{width:20px;height:20px}.share-preview-btn{display:flex;align-items:center;justify-content:center;gap:8px}.share-download-btn{display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}.share-file-icon.video{color:var(--color-error)}.share-file-icon.image{color:var(--color-success)}.share-file-icon.audio{color:var(--color-admin-purple)}.share-preview-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000f2;z-index:1000;display:flex;flex-direction:column;animation:fadeIn .2s ease-out}.share-preview-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:var(--bg-overlay)}.share-preview-title{color:#fff;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;margin-right:16px}.share-preview-actions{display:flex;gap:8px}.share-preview-action-btn{width:40px;height:40px;border:none;background:#ffffff1a;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.share-preview-action-btn svg{width:20px;height:20px;color:#fff}.share-preview-action-btn:hover{background:#fff3}.share-preview-content{flex:1;display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto}.share-video-player{max-width:100%;max-height:100%;border-radius:8px;background:#000}.share-image-viewer{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}.share-audio-player-container{display:flex;flex-direction:column;align-items:center;gap:32px;padding:40px;background:#ffffff0d;border-radius:24px}.share-audio-icon{width:120px;height:120px;background:var(--gradient-purple);border-radius:24px;display:flex;align-items:center;justify-content:center}.share-audio-icon svg{width:60px;height:60px;color:#fff}.share-audio-player{width:100%;max-width:400px}@media (max-width: 480px){.share-access-card{padding:32px 24px;border-radius:20px}.share-file-preview{width:80px;height:80px;border-radius:20px}.share-file-icon{width:44px;height:44px}.share-file-name{font-size:18px}}.share-text-viewer-container{width:100%;height:100%;max-width:900px;max-height:80vh;background:var(--bg-code-editor);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.share-text-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;gap:16px;color:var(--text-tertiary)}.share-text-content{margin:0;padding:20px 24px;font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;font-size:13px;line-height:1.6;color:var(--color-code-text);background:var(--bg-code-editor);white-space:pre-wrap;word-wrap:break-word;overflow:auto;max-height:80vh;-moz-tab-size:2;tab-size:2}.share-text-content::-webkit-scrollbar{width:10px;height:10px}.share-text-content::-webkit-scrollbar-track{background:var(--bg-scrollbar-track)}.share-text-content::-webkit-scrollbar-thumb{background:var(--bg-scrollbar-thumb);border-radius:5px}.share-text-content::-webkit-scrollbar-thumb:hover{background:var(--bg-scrollbar-thumb-hover)}.share-file-icon.text{color:var(--color-info)}[data-theme=dark] .share-access-page{background:var(--bg-dark-page-gradient)}[data-theme=dark] .share-access-card{background:var(--bg-dark-card)}[data-theme=dark] .share-error h2,[data-theme=dark] .share-login-required h2,[data-theme=dark] .share-password-form h2,[data-theme=dark] .share-file-name{color:var(--text-dark-primary)}[data-theme=dark] .share-error p,[data-theme=dark] .share-login-required p,[data-theme=dark] .share-password-form p,[data-theme=dark] .share-loading p{color:var(--text-dark-secondary)}[data-theme=dark] .share-password-input{background:var(--bg-dark-input);border-color:var(--border-dark);color:var(--text-dark-primary)}[data-theme=dark] .share-password-input:focus{border-color:var(--color-primary)}[data-theme=dark] .share-btn-secondary{background:var(--bg-dark-input);color:var(--text-dark-primary)}[data-theme=dark] .share-btn-secondary:hover{background:var(--bg-dark-hover)}[data-theme=dark] .share-file-preview{background:var(--bg-dark-secondary-gradient)}[data-theme=dark] .share-spinner{border-color:var(--border-dark);border-top-color:var(--color-primary)}.share-edit-btn{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--gradient-success)}.share-edit-btn:hover:not(:disabled){box-shadow:0 8px 20px #40c0574d}.share-editor-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;z-index:1000;display:flex;flex-direction:column;animation:fadeIn .2s ease-out}.share-editor-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:var(--bg-secondary);border-bottom:1px solid var(--border-light)}.share-editor-title{font-size:16px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;margin-right:16px}.share-editor-close-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;color:var(--text-secondary);background:var(--bg-primary);border:1px solid var(--border-light);border-radius:8px;cursor:pointer;transition:all .2s ease}.share-editor-close-btn svg{width:16px;height:16px}.share-editor-close-btn:hover{background:var(--bg-secondary);border-color:var(--text-tertiary)}.share-editor-container{flex:1;overflow:hidden}[data-theme=dark] .share-editor-overlay{background:var(--bg-dark-card)}[data-theme=dark] .share-editor-header{background:var(--bg-dark-input);border-bottom-color:var(--border-dark)}[data-theme=dark] .share-editor-title{color:var(--text-dark-primary)}[data-theme=dark] .share-editor-close-btn{background:var(--bg-dark-hover);border-color:var(--border-dark-hover);color:var(--text-dark-primary)}[data-theme=dark] .share-editor-close-btn:hover{background:var(--border-dark-hover);border-color:var(--border-dark-active)}.upload-share-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;background:var(--bg-page-gradient)}.upload-share-card{background:#fff;border-radius:24px;padding:48px 40px;width:100%;max-width:420px;box-shadow:0 4px 6px -1px #0000000d,0 10px 20px -2px #0000000a,0 20px 40px -4px #00000008;text-align:center;animation:slideUp .4s ease-out}.upload-share-card.upload-share-main{max-width:520px;padding:32px}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.upload-share-loading{display:flex;flex-direction:column;align-items:center;gap:20px}.upload-share-spinner{width:40px;height:40px;border:3px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.upload-share-loading p{color:var(--text-secondary);font-size:15px;font-weight:500}.upload-share-error{display:flex;flex-direction:column;align-items:center;gap:16px}.upload-share-error-icon{width:64px;height:64px;color:var(--color-error)}.upload-share-error h2{font-size:22px;font-weight:700;color:var(--text-primary);margin:0}.upload-share-error p{font-size:15px;color:var(--text-secondary);margin:0;line-height:1.5}.upload-share-lock-icon{width:64px;height:64px;color:var(--color-primary);margin-bottom:8px}.upload-share-login-required,.upload-share-password-form{display:flex;flex-direction:column;align-items:center;gap:16px}.upload-share-login-required h2,.upload-share-password-form h2{font-size:22px;font-weight:700;color:var(--text-primary);margin:0}.upload-share-login-required p,.upload-share-password-form p{font-size:15px;color:var(--text-secondary);margin:0;line-height:1.5}.upload-share-password-form form{width:100%;display:flex;flex-direction:column;gap:12px;margin-top:8px}.upload-share-password-input{width:100%;padding:16px 20px;font-size:16px;border:2px solid var(--border-light);border-radius:14px;outline:none;transition:all .2s ease;box-sizing:border-box;text-align:center;font-weight:500;letter-spacing:2px}.upload-share-password-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px #228be61a}.upload-share-password-error{color:var(--color-error);font-size:14px;margin:0}.upload-share-btn-primary{width:100%;padding:16px 24px;font-size:16px;font-weight:600;color:#fff;background:var(--btn-primary-gradient);border:none;border-radius:14px;cursor:pointer;transition:all .2s ease}.upload-share-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #228be64d}.upload-share-btn-primary:disabled{opacity:.6;cursor:not-allowed}.upload-share-btn-secondary{padding:14px 24px;font-size:15px;font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);border:none;border-radius:14px;cursor:pointer;transition:all .2s ease}.upload-share-btn-secondary:hover{background:var(--bg-hover)}.upload-share-header{margin-bottom:24px}.upload-share-folder-icon{width:80px;height:80px;background:var(--gradient-warning);border-radius:20px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.upload-share-folder-icon svg{width:48px;height:48px;color:#fff}.upload-share-header h1{font-size:24px;font-weight:700;color:var(--text-primary);margin:0 0 8px;word-break:break-word}.upload-share-subtitle{font-size:15px;color:var(--text-secondary);margin:0}.upload-share-restrictions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:24px}.restriction-badge{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--bg-secondary);border-radius:20px;font-size:13px;font-weight:500;color:var(--text-secondary)}.restriction-badge svg{width:16px;height:16px;color:var(--text-secondary)}.restriction-badge.expiry{background:#228be61a;color:var(--color-primary)}.restriction-badge.expiry svg{color:var(--color-primary)}.upload-share-dropzone{border:2px dashed var(--border-light);border-radius:16px;padding:40px 24px;cursor:pointer;transition:all .2s ease;margin-bottom:24px}.upload-share-dropzone:hover,.upload-share-dropzone.active{border-color:var(--color-primary);background:#228be60d}.upload-share-dropzone-icon{width:48px;height:48px;color:var(--text-tertiary);margin-bottom:12px}.upload-share-dropzone.active .upload-share-dropzone-icon{color:var(--color-primary)}.upload-share-dropzone-text{font-size:15px;color:var(--text-secondary);margin:0}.upload-share-file-list{display:flex;flex-direction:column;gap:8px;margin-bottom:24px;max-height:300px;overflow-y:auto}.upload-share-file-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-secondary);border-radius:12px;gap:12px}.upload-share-file-item.completed{background:var(--color-success-light)}.upload-share-file-item.error{background:var(--color-error-light)}.file-info{flex:1;min-width:0;text-align:left}.file-name{display:block;font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:12px;color:var(--text-secondary)}.file-status{display:flex;align-items:center;gap:8px}.remove-btn{width:28px;height:28px;border:none;background:#0000001a;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.remove-btn:hover{background:#fa525233}.remove-btn svg{width:16px;height:16px;color:var(--text-secondary)}.upload-progress-container{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:140px}.progress-wrapper{display:flex;align-items:center;gap:8px;width:100%}.progress-bar{flex:1;height:6px;background:var(--color-primary);border-radius:3px;transition:width .2s ease}.progress-text{font-size:12px;font-weight:600;color:var(--color-primary);min-width:36px;text-align:right}.upload-info{display:flex;align-items:center;gap:8px;width:100%;justify-content:flex-end}.upload-speed{font-size:11px;color:var(--text-tertiary);font-weight:500}.cancel-btn{width:24px;height:24px;border:none;background:#fa525226;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.cancel-btn:hover{background:#fa52524d}.cancel-btn svg{width:14px;height:14px;color:var(--color-error)}.status-icon{width:24px;height:24px}.status-icon.success{color:var(--color-success)}.status-icon.error{color:var(--color-error)}.error-info{display:flex;align-items:center;gap:6px}.error-text{font-size:12px;color:var(--color-error);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-share-actions{display:flex;flex-direction:column;gap:12px}.upload-share-branding{margin-top:24px;font-size:13px;color:var(--text-tertiary);font-weight:500}[data-theme=dark] .upload-share-page{background:var(--bg-dark-page-gradient)}[data-theme=dark] .upload-share-card{background:var(--bg-dark-card)}[data-theme=dark] .upload-share-error h2,[data-theme=dark] .upload-share-login-required h2,[data-theme=dark] .upload-share-password-form h2,[data-theme=dark] .upload-share-header h1{color:var(--text-dark-primary)}[data-theme=dark] .upload-share-error p,[data-theme=dark] .upload-share-login-required p,[data-theme=dark] .upload-share-password-form p,[data-theme=dark] .upload-share-loading p,[data-theme=dark] .upload-share-subtitle,[data-theme=dark] .upload-share-dropzone-text{color:var(--text-dark-secondary)}[data-theme=dark] .upload-share-password-input{background:var(--bg-dark-input);border-color:var(--border-dark);color:var(--text-dark-primary)}[data-theme=dark] .upload-share-btn-secondary{background:var(--bg-dark-input);color:var(--text-dark-primary)}[data-theme=dark] .upload-share-btn-secondary:hover{background:var(--bg-dark-hover)}[data-theme=dark] .upload-share-dropzone{border-color:var(--border-dark)}[data-theme=dark] .upload-share-dropzone:hover,[data-theme=dark] .upload-share-dropzone.active{background:#228be61a}[data-theme=dark] .restriction-badge{background:var(--bg-dark-input);color:var(--text-dark-primary)}[data-theme=dark] .upload-share-file-item{background:var(--bg-dark-input)}[data-theme=dark] .upload-share-file-item.completed{background:#40c0571a}[data-theme=dark] .upload-share-file-item.error{background:#fa52521a}[data-theme=dark] .upload-share-page .file-name{color:var(--text-dark-primary)}[data-theme=dark] .upload-share-spinner{border-color:var(--border-dark);border-top-color:var(--color-primary)}@media (max-width: 480px){.upload-share-card{padding:32px 24px;border-radius:20px}.upload-share-card.upload-share-main{padding:24px}.upload-share-folder-icon{width:64px;height:64px;border-radius:16px}.upload-share-folder-icon svg{width:36px;height:36px}.upload-share-header h1{font-size:20px}.upload-share-dropzone{padding:32px 20px}}.file-list-skeleton{padding:1rem}.skeleton-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color, #e0e0e0)}.skeleton-breadcrumb,.skeleton-actions{display:flex;gap:.5rem}.skeleton-button{width:32px;height:32px;border-radius:4px;background:var(--skeleton-bg, #e0e0e0)}.skeleton-table-header{display:flex;gap:2rem;padding:.75rem 1rem;background:var(--header-bg, #f5f5f5);border-radius:4px;margin-bottom:.5rem}.skeleton-row{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-color, #f0f0f0);animation:fadeIn .3s ease-out forwards;opacity:0}.skeleton-icon{width:24px;height:24px;border-radius:4px;background:var(--skeleton-bg, #e0e0e0);flex-shrink:0}.skeleton-cell{display:flex;align-items:center}.skeleton-text{height:14px;border-radius:3px;background:var(--skeleton-bg, #e0e0e0)}.skeleton-animate{background:linear-gradient(90deg,var(--skeleton-bg, #e0e0e0) 25%,var(--skeleton-highlight, #f0f0f0) 50%,var(--skeleton-bg, #e0e0e0) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}[data-theme=dark] .file-list-skeleton{--skeleton-bg: #3a3a3a;--skeleton-highlight: #4a4a4a;--border-color: #404040;--header-bg: #2a2a2a}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:var(--color-primary-gradient)}.error-boundary-content{max-width:500px;padding:40px;background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);text-align:center}.error-boundary-icon{width:80px;height:80px;margin:0 auto 24px;color:var(--color-error)}.error-boundary-icon svg{width:100%;height:100%}.error-boundary-title{margin:0 0 12px;font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.error-boundary-message{margin:0 0 24px;font-size:var(--font-size-base);color:var(--text-secondary);line-height:var(--line-height-normal)}.error-boundary-details{margin-bottom:24px;padding:16px;background:var(--bg-secondary);border-radius:var(--radius-sm);text-align:left}.error-boundary-details summary{cursor:pointer;font-weight:var(--font-weight-medium);color:var(--text-primary);-webkit-user-select:none;user-select:none}.error-boundary-details pre{margin-top:12px;padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--color-error);font-size:var(--font-size-xs);overflow-x:auto;white-space:pre-wrap;word-break:break-word}.error-boundary-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.error-boundary-btn{padding:12px 24px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.error-boundary-btn.primary{background:var(--btn-primary-gradient);color:var(--text-on-primary)}.error-boundary-btn.primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-primary-lg)}.error-boundary-btn.secondary{background:var(--bg-secondary);color:var(--text-primary)}.error-boundary-btn.secondary:hover{background:var(--bg-tertiary)}.app{min-height:100vh;display:flex;flex-direction:column}.app-container{display:flex;flex:1;padding-top:60px}.main-content{flex:1;padding:var(--spacing-lg);overflow-y:auto;overflow-x:hidden;min-height:calc(100vh - 60px);margin-left:var(--sidebar-width)}@media (max-width: 768px){.app-container{padding-top:56px}.main-content{margin-left:0;padding:var(--spacing-sm);min-height:calc(100vh - 56px);padding-bottom:env(safe-area-inset-bottom)}}:root{--color-primary: #3182F6;--color-primary-hover: #1B64DA;--color-primary-light: rgba(49, 130, 246, .08);--color-primary-muted: #5B9EF7;--color-primary-gradient: linear-gradient(135deg, #3182F6 0%, #1B64DA 100%);--color-success: #34C759;--color-success-light: rgba(52, 199, 89, .1);--color-error: #FF3B30;--color-error-light: rgba(255, 59, 48, .1);--color-warning: #FF9500;--color-warning-light: rgba(255, 149, 0, .1);--color-info: #007AFF;--color-admin-purple: #8B5CF6;--color-admin-purple-light: rgba(139, 92, 246, .1);--color-admin-purple-hover: rgba(139, 92, 246, .2);--color-2fa-green: #10B981;--color-2fa-green-dark: #059669;--color-primary-dark: #1d4ed8;--color-primary-border: #bfdbfe;--color-primary-lighter: #eff6ff;--color-error-border: #fecaca;--color-error-lighter: #fef2f2;--color-error-dark: #c0392b;--color-success-lighter: #f4fce3;--color-disabled: #9ca3af;--color-info-light: #e0f2fe;--color-info-dark: #0369a1;--color-warning-lighter: #fef3c7;--color-warning-dark: #b45309;--color-indigo: #6366f1;--btn-primary-gradient: linear-gradient(135deg, #3182F6 0%, #1B64DA 100%);--btn-2fa-gradient: linear-gradient(135deg, #10B981 0%, #059669 100%);--gradient-success: linear-gradient(135deg, #40c057 0%, #37b24d 100%);--gradient-warning: linear-gradient(135deg, #fab005 0%, #f59f00 100%);--gradient-purple: linear-gradient(135deg, #9969e5 0%, #7c4dff 100%);--gradient-info-light: linear-gradient(135deg, #e8f4fd 0%, #dbeafe 100%);--bg-page-gradient: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);--bg-secondary-gradient: linear-gradient(135deg, #f1f3f4 0%, #e9ecef 100%);--color-form-border: #E5E7EB;--color-form-border-focus: var(--color-primary);--color-form-placeholder: #9CA3AF;--color-form-bg: #FFFFFF;--color-form-bg-disabled: #F9FAFB;--sidebar-width: 260px;--header-height: 60px;--bg-primary: #FFFFFF;--bg-secondary: #F9FAFB;--bg-tertiary: #F3F4F6;--bg-elevated: #FFFFFF;--bg-grouped: #EFEFF4;--bg-overlay: rgba(0, 0, 0, .4);--bg-hover: rgba(0, 0, 0, .04);--bg-active: rgba(0, 0, 0, .06);--text-primary: #1D1D1F;--text-secondary: #6E6E73;--text-tertiary: #AEAEB2;--text-quaternary: #C7C7CC;--text-on-primary: #FFFFFF;--border-light: #E5E5EA;--border-medium: #D1D1D6;--border-dark: #C7C7CC;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .02), 0 1px 3px rgba(0, 0, 0, .03);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .02), 0 4px 8px rgba(0, 0, 0, .04);--shadow-md: 0 4px 8px rgba(0, 0, 0, .03), 0 8px 24px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .04), 0 16px 48px rgba(0, 0, 0, .08);--shadow-xl: 0 16px 32px rgba(0, 0, 0, .06), 0 32px 64px rgba(0, 0, 0, .12);--shadow-card: 0 2px 8px rgba(0, 0, 0, .04), 0 4px 16px rgba(0, 0, 0, .02);--shadow-modal: 0 24px 80px rgba(0, 0, 0, .12), 0 12px 32px rgba(0, 0, 0, .08);--shadow-primary: 0 4px 14px rgba(49, 130, 246, .2);--shadow-primary-lg: 0 8px 24px rgba(49, 130, 246, .3);--shadow-focus: 0 0 0 4px rgba(49, 130, 246, .1);--bg-code-editor: #1e1e1e;--color-code-text: #d4d4d4;--bg-scrollbar-track: #2d2d2d;--bg-scrollbar-thumb: #4a4a4a;--bg-scrollbar-thumb-hover: #5a5a5a;--bg-dark-page-gradient: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);--bg-dark-card: #1f1f1f;--bg-dark-input: #2d2d2d;--bg-dark-hover: #3d3d3d;--bg-dark-tertiary: #111827;--bg-dark-secondary-gradient: linear-gradient(135deg, #2d2d2d 0%, #3d3d3d 100%);--text-dark-primary: #f8f9fa;--text-dark-secondary: #adb5bd;--border-dark-hover: #4d4d4d;--border-dark-active: #5d5d5d;--radius-xs: 6px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--radius-2xl: 36px;--radius-full: 9999px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--spacing-3xl: 64px;--spacing-4xl: 96px;--content-padding: 28px;--card-padding: 24px;--modal-padding: 32px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--transition-spring: .5s cubic-bezier(.175, .885, .32, 1.275);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-in-out-expo: cubic-bezier(.87, 0, .13, 1);--spring: cubic-bezier(.175, .885, .32, 1.275);--spring-bounce: cubic-bezier(.34, 1.56, .64, 1);--spring-gentle: cubic-bezier(.25, .46, .45, .94);--duration-instant: .1s;--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .35s;--duration-spring: .5s;--font-size-xs: 11px;--font-size-sm: 13px;--font-size-base: 15px;--font-size-lg: 17px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 28px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-snug: 1.35;--line-height-normal: 1.5;--line-height-relaxed: 1.65;--letter-spacing-tight: -.03em;--letter-spacing-normal: -.01em;--letter-spacing-wide: .02em}[data-theme=dark]{--color-primary: #4A9CFF;--color-primary-hover: #3182F6;--color-primary-light: rgba(74, 156, 255, .15);--color-primary-gradient: linear-gradient(135deg, #4A9CFF 0%, #3182F6 100%);--color-primary-dark: #1B64DA;--color-success: #34D399;--color-success-light: rgba(52, 211, 153, .15);--color-error: #F87171;--color-error-light: rgba(248, 113, 113, .15);--color-warning: #FBBF24;--color-warning-light: rgba(251, 191, 36, .15);--color-info: #60A5FA;--color-danger: #F87171;--color-admin-purple: #A78BFA;--color-admin-purple-light: rgba(167, 139, 250, .15);--color-admin-purple-hover: rgba(167, 139, 250, .25);--color-2fa-green: #34D399;--color-2fa-green-dark: #10B981;--btn-primary-gradient: linear-gradient(135deg, #4A9CFF 0%, #3182F6 100%);--btn-2fa-gradient: linear-gradient(135deg, #34D399 0%, #10B981 100%);--color-form-border: #3A3A3C;--color-form-border-focus: var(--color-primary);--color-form-placeholder: #6E6E73;--color-form-bg: #2C2C2E;--color-form-bg-disabled: #3A3A3C;--bg-primary: #1C1C1E;--bg-secondary: #2C2C2E;--bg-tertiary: #3A3A3C;--bg-elevated: #2C2C2E;--bg-grouped: #1C1C1E;--bg-overlay: rgba(0, 0, 0, .6);--bg-hover: rgba(255, 255, 255, .08);--text-primary: #F5F5F7;--text-secondary: #A1A1A6;--text-tertiary: #6E6E73;--text-quaternary: #48484A;--text-on-primary: #FFFFFF;--border-light: #3A3A3C;--border-medium: #48484A;--border-dark: #636366;--shadow-xs: 0 0 0 1px rgba(255, 255, 255, .03);--shadow-sm: 0 0 0 1px rgba(255, 255, 255, .05), 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 0 0 1px rgba(255, 255, 255, .08), 0 8px 32px rgba(0, 0, 0, .4);--shadow-lg: 0 0 0 1px rgba(255, 255, 255, .1), 0 16px 48px rgba(0, 0, 0, .5);--shadow-xl: 0 0 0 1px rgba(255, 255, 255, .1), 0 32px 64px rgba(0, 0, 0, .6);--shadow-card: 0 0 0 1px rgba(255, 255, 255, .05);--shadow-modal: 0 0 0 1px rgba(255, 255, 255, .1), 0 24px 80px rgba(0, 0, 0, .5);--shadow-primary: 0 4px 14px rgba(74, 156, 255, .25);--shadow-primary-lg: 0 8px 24px rgba(74, 156, 255, .35);--scrollbar-track: #2C2C2E;--scrollbar-thumb: #48484A;--scrollbar-thumb-hover: #636366}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Pretendard Variable,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"kern" 1}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:-.02em}button{font-family:inherit;font-size:inherit;font-weight:var(--font-weight-medium);cursor:pointer;border:none;background:none;outline:none;transition:all var(--transition-fast)}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}input,textarea,select{font-family:inherit;font-size:inherit;outline:none;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);transition:all var(--transition-fast)}input:focus,textarea:focus,select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--text-quaternary);border-radius:var(--radius-full);border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary);border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-corner{background:transparent}::selection{background:var(--color-primary);color:var(--text-on-primary)}:focus{outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.code-input{font-size:24px;text-align:center;letter-spacing:8px;font-family:SF Mono,Monaco,Courier New,monospace;padding:16px}@media (max-width: 768px){.hide-mobile{display:none}}@media (min-width: 769px){.hide-desktop{display:none}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s var(--ease-out-expo)}.modal-content{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);max-width:520px;width:90%;max-height:85vh;overflow:hidden;animation:modalEnter var(--duration-spring) var(--spring)}@keyframes modalEnter{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes bottomSheetEnter{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@media (max-width: 480px){.modal-overlay{align-items:flex-end}.modal-content{width:100%;max-width:none;max-height:90vh;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;animation:bottomSheetEnter var(--duration-spring) var(--ease-out-expo)}.modal-content:before{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:36px;height:4px;background:var(--border-medium);border-radius:2px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast: high){:root{--border-light: #1D1D1F;--text-secondary: #1D1D1F}[data-theme=dark]{--border-light: #FFFFFF;--text-secondary: #FFFFFF}}
