*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}body{background-color:#f5f5f5;color:#333}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.login-box{background:#fff;padding:40px;border-radius:10px;box-shadow:0 10px 40px rgba(0,0,0,.2);width:100%;max-width:400px}.login-box h1{text-align:center;margin-bottom:30px;color:#333}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#666;font-size:14px}.form-group input{width:100%;padding:12px;border:1px solid #ddd;border-radius:6px;font-size:16px;transition:border-color .3s}.form-group input:focus{outline:none;border-color:#667eea}.btn{width:100%;padding:12px;border:none;border-radius:6px;font-size:16px;cursor:pointer;transition:background-color .3s}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover{opacity:.9}.error-message{color:#e74c3c;font-size:14px;margin-top:10px;text-align:center}.dashboard-container{min-height:100vh}.header{background:#fff;padding:20px 40px;box-shadow:0 2px 10px rgba(0,0,0,.1);display:flex;justify-content:space-between;align-items:center}.header h1{font-size:24px;color:#333}.header-actions{display:flex;gap:15px;align-items:center}.btn-logout{background:#e74c3c;color:#fff;padding:10px 20px;border:none;border-radius:6px;cursor:pointer}.main-content{padding:40px;max-width:1400px;margin:0 auto}.upload-section{background:#fff;padding:30px;border-radius:10px;margin-bottom:30px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.upload-section h2{margin-bottom:20px;color:#333}.upload-options{margin-top:20px;padding-top:20px;border-top:1px solid #eee}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;color:#666;font-size:14px}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.upload-area{border-radius:12px;padding:48px 40px;text-align:center;cursor:pointer;transition:all .2s ease;position:relative}.upload-area:hover{background-color:#f5f5f5}.upload-area.dragging{background-color:#667eea;color:#fff}.upload-icon{font-size:48px;margin-bottom:15px}.upload-text{color:#666;margin-bottom:10px}.upload-hint{color:#999;font-size:14px}.file-list{background:#fff;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1);overflow:hidden}.file-list-header{padding:20px 30px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center}.file-list-header h2{color:#333}.file-count{color:#999;font-size:14px}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:20px;gap:20px;padding:30px}.file-item{background:#f9f9f9;border-radius:10px;overflow:hidden;transition:transform .3s,box-shadow .3s;cursor:pointer}.file-item:hover{transform:translateY(-5px);box-shadow:0 5px 20px rgba(0,0,0,.15)}.file-preview{height:150px;display:flex;align-items:center;justify-content:center;background:#f0f0f0;overflow:hidden}.file-preview img{max-width:100%;max-height:100%;object-fit:cover}.file-preview .file-icon{font-size:48px;color:#999}.file-info{padding:15px}.file-name{font-size:14px;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px}.file-size{font-size:12px;color:#999}.file-actions{padding:10px 15px;border-top:1px solid #eee;display:flex;gap:10px}.file-action-btn{flex:1 1;padding:8px;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:background-color .3s}.btn-copy{background:#667eea;color:#fff}.btn-delete{background:#e74c3c;color:#fff}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{max-width:90%;max-height:90%}.modal-content img{max-width:100%;max-height:90vh;border-radius:10px}.modal-close{position:absolute;top:20px;right:30px;font-size:30px;color:#fff;cursor:pointer}.upload-progress{margin-top:20px}.progress-bar{height:8px;background:#eee;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(135deg,#667eea,#764ba2);transition:width .3s}.progress-text{text-align:center;margin-top:10px;color:#666}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#333;color:#fff;padding:15px 30px;border-radius:6px;z-index:2000;animation:fadeIn .3s}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}.empty-state{text-align:center;padding:60px;color:#999}.empty-state-icon{font-size:64px;margin-bottom:20px}.pagination{display:flex;justify-content:center;align-items:center;gap:15px;padding:30px;border-top:1px solid #eee}.pagination-btn{padding:10px 24px;border:1px solid #ddd;border-radius:6px;background:#fff;color:#333;cursor:pointer;transition:all .2s}.pagination-btn:hover:not(:disabled){border-color:#667eea;color:#667eea}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-numbers{display:flex;gap:8px}.pagination-number{width:36px;height:36px;border:1px solid #ddd;border-radius:6px;background:#fff;color:#333;cursor:pointer;transition:all .2s}.pagination-number:hover{border-color:#667eea;color:#667eea}.pagination-number.active{background:#667eea;border-color:#667eea;color:#fff}.file-list-title{display:flex;align-items:center;gap:15px}.back-btn{padding:6px 12px;border:1px solid #ddd;border-radius:4px;background:#fff;color:#333;cursor:pointer;transition:all .2s}.back-btn:hover:not(:disabled){border-color:#667eea;color:#667eea}.back-btn:disabled{opacity:.5;cursor:not-allowed}